dsx is a terminal coding agent powered by DeepSeek V4 that runs locally on your machine.
>_ dsx
dsx lives in your terminal and works alongside you on real code: it reads the repo, runs commands in a sandbox, edits files, searches the web, and reasons out loud -- driven entirely by DeepSeek V4. It's local-first and API-key only: no account, no login, no cloud session.
- DeepSeek V4, end to end.
deepseek-v4-proruns your tasks;deepseek-v4-flashhandles auto-summaries, context compaction, and side work. Routing between them is automatic. - Live reasoning. Talks the DeepSeek Anthropic-compatible Messages wire and streams
<think>reasoning as it works. - Built-in web. A
web_searchtool (keyless DuckDuckGo by default, pluggable backend) and aread_urltool that fetches a page and extracts readable text -- so the agent can look things up mid-task. - Agentic by default. Plans, runs shell commands under a sandbox with approval controls, applies edits, and verifies its own work before handing back.
- Made to feel like dsx. A spouting-whale welcome screen and a DeepSeek-blue UI, in your terminal.
- Local & private. Just a
DEEPSEEK_API_KEYin your environment; nothing else leaves your machine.
curl -fsSL https://github.com/cklxx/dsx/releases/download/v0.2.0/dsx-0.2.0-darwin-arm64.tar.gz | tar xz
sudo mv dsx /usr/local/bin/More platforms and a Homebrew formula are on the way. For now, build from source:
git clone https://github.com/cklxx/dsx.git
cd dsx/codex-rs
cargo build --release --bin dsx
ln -sf "$PWD/target/release/dsx" ~/.local/bin/dsxSet your DeepSeek API key (get one) and run:
export DEEPSEEK_API_KEY=sk-...
dsxThat drops you into the interactive TUI. For a one-shot:
dsx exec "explain what this repo does"dsx ships with a Vue 3 + Naive UI browser GUI behind a tokenized loopback proxy to dsx app-server:
./dsx-gui/start.shThe launcher opens a per-run tokenized URL on 127.0.0.1:9021. See dsx-gui/README.md for details.
Config lives at $DSX_HOME/config.toml (default ~/.dsx/config.toml):
model = "deepseek-v4-pro" # or deepseek-v4-flash
model_provider = "deepseek" # the only built-in providerThe deepseek provider reads DEEPSEEK_API_KEY from the environment -- there is no login flow. Switch models in-session with /model.
dsx uses $DSX_HOME, defaulting to ~/.dsx. Copy only the settings you still need from Codex, then review them before starting dsx:
mkdir -p ~/.dsx
cp ~/.codex/config.toml ~/.dsx/config.tomlRemove Codex/ChatGPT-specific settings such as chatgpt_base_url and forced_chatgpt_workspace_id. Do not copy auth.json: dsx uses DEEPSEEK_API_KEY and has no ChatGPT login. CODEX_HOME is accepted only as a compatibility fallback; prefer DSX_HOME.
dsx is layered: a core engine, a headless server (dsx app-server, JSON-RPC over stdio/unix/ws), and front-ends that drive it -- so a native UI can sit on the same core. Key pieces:
- DeepSeek Anthropic wire --
codex-rs/codex-api/src/{anthropic.rs, sse/anthropic.rs, endpoint/anthropic.rs} - Provider + model catalog --
codex-rs/model-provider-info/andcodex-rs/models-manager/models.json - Web tools --
codex-rs/core/src/tools/web.rs
Built on OpenAI Codex and licensed under Apache-2.0. DeepSeek and the DeepSeek V4 models are products of DeepSeek; dsx is an independent, unofficial client.