deepseekcode is a terminal coding agent for DeepSeek models and
OpenAI-compatible chat-completions endpoints. It ships as a single Go binary
named dsc, with an interactive TUI, one-shot CLI mode, repository tools,
SQLite-backed sessions, and a conservative permission model.
dsc trace inspect shows prefixes==1 to prove a stable
run (docs/prefix-cache.md).<<<NEEDS_PRO>>> / error escalation is wired into the agent
loop, not just documented (docs/duet.md).low/medium/high/max effort, dialed down
automatically on simple tasks.DeepSeekCode is purpose-built for DeepSeek V4 models with verifiable advantages over generic coding agents:
dsc trace inspect (docs/prefix-cache.md).deepseek-v4-pro judgment, not every turn; keep costs low with a safety net
where it matters (docs/duet.md).Full story with local verification commands: docs/deepseek-v4-agent-story.md
Benchmark evidence: bench/README.md
dsc -p "prompt" mode.reasoning_effort control, long context,
prefix-cache metrics, and deepseek-v4-flash / deepseek-v4-pro support./undo for recent edit steps.SKILL.md discovery, MCP tools,
subagents, and isolated git worktrees.macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/amemiya02/deepseekcode/main/install.sh | sh
Homebrew:
brew install amemiya02/deepseekcode/deepseekcode
Scoop:
scoop bucket add deepseekcode https://github.com/amemiya02/deepseekcode-scoop
scoop install deepseekcode
Go:
go install github.com/amemiya02/deepseekcode/cmd/dsc@latest
From source:
git clone https://github.com/amemiya02/deepseekcode
cd deepseekcode
make build
./bin/dsc -version
Requirements:
go.mod or newer when building from source.DEEPSEEK_API_KEY, or another provider key configured in .deepseek/config.toml.export DEEPSEEK_API_KEY=sk-...
dsc # open the TUI
dsc -p "summarize this repo" # run one prompt and exit
dsc --read-only # inspect without write/edit/bash tools
dsc init # create starter project config
dsc doctor # check local setup
Session shortcuts:
dsc -c # continue the latest session in this project
dsc -r <session-id> # resume a specific session
dsc -new # force a new session
Configuration is layered from built-in defaults, user config, project config,
and CLI flags. Project config lives at ./.deepseek/config.toml; user config
lives at ~/.deepseek/config.toml.
Minimal DeepSeek config:
[active]
provider = "deepseek"
[providers.deepseek]
type = "deepseek"
base_url = "https://api.deepseek.com"
env_var = "DEEPSEEK_API_KEY"
first_token_timeout_ms = 45000
chunk_stall_timeout_ms = 20000
[defaults]
model = "deepseek-v4-flash"
thinking = true
OpenAI-compatible endpoint:
[active]
provider = "openai"
[providers.openai]
type = "openai-compat"
base_url = "https://api.openai.com"
env_var = "OPENAI_API_KEY"
default_model = "gpt-4o"
See docs/config.md and docs/PROVIDERS.md for the full reference.
make build # build ./bin/dsc
make test # go test ./...
make test-race # go test -race ./...
make lint # go vet ./...
make fmt # gofmt -s -w .
make run # build and launch the TUI
Before opening a pull request:
make fmt
make lint
make test
Issues and pull requests are welcome. Keep README changes synchronized between
README.md and README.zh-CN.md with matching ## structure. Document only
features that are implemented and testable in this repository.
MIT