deepseek-ai/chat-demo
Productivity & UtilitiesA static browser chat client for the DeepSeek API with local storage and no backend.
What it is
chat-demo is a static chat front end for the DeepSeek API. There is no application backend: the browser talks directly to the configured API service, and API keys, settings, conversations and attachments stay in the browser. It targets people who want a ready-made DeepSeek chat UI, either hosted online or run locally from a static build.
The interface supports multiple conversations with automatic titles and branching, streaming replies, deep thinking, web search and link reading with citations, attachments, voice input and read-aloud, Markdown with syntax highlighting, KaTeX and Mermaid, plus English/Chinese UI and light/dark themes.
Quick start
Try it online
Open the hosted demo and enter your API key under Settings before the first chat.
Run locally from source
Install Node.js 22.12+ and pnpm, then:
git clone https://github.com/deepseek-ai/chat-demo.git
cd chat-demo
pnpm install
pnpm dev
Open http://localhost:8090. To produce a static site, run pnpm build; the output goes to dist/, which can be served by a static web server or opened directly as dist/index.html. Opening the file directly requires browser storage support on file:// pages and an API service that allows those cross-origin requests.
Alternatively, download the archive from Releases, extract it and double-click index.html for local use without installing or building.
Configuration and constraints
The default API origin is https://api.deepseek.com, set in rspack.config.ts; createConfig({ apiOrigin, devServer }) customizes the origin and dev-server proxy. Chat defaults to deepseek-flash through Anthropic-compatible Messages/Files APIs, and speech uses ASR/TTS endpoints. The configured service must support the extensions used for search, link reading, titles and latest_reminder; supported attachment formats are decided by server-side validation.
Data handling matters in practice: the API key and settings live in localStorage, while conversations and original attachments are stored in IndexedDB, isolated by browser profile and site origin. Sending messages, uploading attachments and using speech send that content to the configured API service. History import/export uses ZIP archives; import replaces all local conversations and attachments after validation, and exports exclude API keys, settings and non-image original attachments. "Delete all chats" clears local conversations, attachments and drafts but keeps the API key and settings, and does not delete files already uploaded to the API service.
Development scripts cover type checking, linting with oxlint and formatting with oxfmt. The project is MIT-licensed, and the build copies the license into dist/LICENSE for redistribution.
HotRepo's take
HotRepo recorded the project on its new-project list on 2026-11-13, gaining 194 stars and 26 forks in the roughly one-hour window from 14:45 to 15:45 UTC, reaching 298 stars and 60 forks. That is a single short snapshot, not a trend, and no all-language daily rank was recorded. The technical picture is a compact TypeScript static client from the DeepSeek organization with an online demo, a build path and documented storage behavior — a practical reference for a browser-direct API client rather than a new model or inference stack.
Written by AI from the project's README, updated . The project's own docs are the source of truth.
You might also like
- QuixiAI/QuixiDeskA native Rust desktop workspace that combines multi-provider LLM chat, local folders, and built-in computer and browser tools.
- lawandrorder/mateA runnable demo of a text-first shopping agent for cashback, discount codes, tracking and price alerts.
- siddharthvaddem/openscreenRecord screen demos with zooms, captions and cursor effects, then export MP4 or GIF; for product walkthroughs and tutorials.
- PandaSI-Labs/littleaiboxA bring-your-own-key AI chat client that stores conversations and parsed documents on the device.
- dbcaskml183-dotcom/dsh-preludeA DeepSeek Harness plugin that audits chat drafts and refines prompts with method cards.