fix(ci): target deepseek-tui binary for eval, clean up README

- Fix CI eval step to use `cargo run -p deepseek-tui` instead of bare
  `cargo run` which fails with multiple binaries
- Add --workspace flag to clippy, test, and doc CI steps
- Rewrite README: lead with install command, tighten verbiage,
  consolidate quickstart, drop verbose architecture section
This commit is contained in:
Hunter Bown
2026-03-03 10:00:59 -06:00
parent f2881e7e3d
commit cc0ac49822
2 changed files with 42 additions and 77 deletions
+4 -4
View File
@@ -23,7 +23,7 @@ jobs:
- name: Check formatting
run: cargo fmt --all -- --check
- name: Clippy
run: cargo clippy --all-targets --all-features
run: cargo clippy --workspace --all-targets --all-features
test:
name: Test
@@ -36,9 +36,9 @@ jobs:
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Run tests
run: cargo test --all-features
run: cargo test --workspace --all-features
- name: Run Offline Eval Harness
run: cargo run --all-features -- eval
run: cargo run -p deepseek-tui --all-features -- eval
build:
name: Build
@@ -62,6 +62,6 @@ jobs:
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Build docs
run: cargo doc --no-deps
run: cargo doc --workspace --no-deps
env:
RUSTDOCFLAGS: -Dwarnings
+38 -73
View File
@@ -1,37 +1,34 @@
# DeepSeek TUI
A terminal-native TUI and CLI for [DeepSeek](https://platform.deepseek.com) models, built in Rust.
`npm i -g deepseek-tui`
A coding agent for [DeepSeek](https://platform.deepseek.com) models that runs in your terminal.
[![CI](https://github.com/Hmbown/DeepSeek-TUI/actions/workflows/ci.yml/badge.svg)](https://github.com/Hmbown/DeepSeek-TUI/actions/workflows/ci.yml)
[![crates.io](https://img.shields.io/crates/v/deepseek-tui)](https://crates.io/crates/deepseek-tui)
[![npm](https://img.shields.io/npm/v/deepseek-tui)](https://www.npmjs.com/package/deepseek-tui)
<p align="center">
<img src="assets/hero.png" alt="DeepSeek CLI" width="800">
<img src="assets/hero.png" alt="DeepSeek TUI" width="800">
</p>
For DeepSeek models (current and future model IDs). Not affiliated with DeepSeek Inc.
## What is this
A terminal-native agent loop that gives DeepSeek the tools it needs to actually write code: file editing, shell execution, web search, git operations, task tracking, and MCP server integration. Coherence-aware memory compaction keeps long sessions on track without blowing up the context window.
Three modes:
- **Plan** — design-first, proposes before acting
- **Agent** — multi-step autonomous tool use
- **YOLO** — full auto-approve, no guardrails (preloads tools by default)
**Recent highlights**: workspace architecture (modular crates mirroring [Codex](https://github.com/openai/codex) layout), sub-agent orchestration (background workers, parallel tool calls, dependency-aware swarms), parallel tool execution (`multi_tool_use.parallel`), runtime HTTP/SSE API (`deepseek serve --http`), background task queue (`/task`), interactive configuration (`/config`), model discovery (`/models`), command palette (`Ctrl+K`), expandable tool payloads (`v`), persistent sidebar for live plan/todo/sub-agent state, and model context-window suffix hints (`-32k`, `-256k`).
## Install
## Quickstart
```bash
# Recommended — no Rust toolchain needed
npm install -g deepseek-tui
```
This downloads prebuilt binaries for your platform (macOS, Linux, Windows). After install, both `deepseek` and `deepseek-tui` commands are available.
Set your API key:
```bash
mkdir -p ~/.deepseek && echo 'api_key = "YOUR_DEEPSEEK_API_KEY"' > ~/.deepseek/config.toml
```
Then run:
```bash
deepseek-tui
```
<details>
<summary>Other install methods</summary>
@@ -43,84 +40,52 @@ cargo install deepseek-tui --locked
# From source
git clone https://github.com/Hmbown/DeepSeek-TUI.git
cd DeepSeek-TUI
cargo install --path crates/tui --locked # TUI (interactive terminal)
cargo install --path crates/cli --locked # CLI (dispatcher + server)
cargo install --path crates/tui --locked
```
</details>
## Setup
## What it does
Create `~/.deepseek/config.toml`:
An agent loop with file editing, shell execution, web search, git operations, task tracking, and [MCP](https://modelcontextprotocol.io) server integration. Context-aware memory compaction keeps long sessions on track.
```toml
api_key = "YOUR_DEEPSEEK_API_KEY"
```
Three modes (**Tab** to switch):
Then run:
```bash
deepseek-tui # interactive TUI
# or
deepseek # CLI dispatcher (delegates to deepseek-tui for interactive use)
```
**Tab** switches modes, **F1** opens help, **Esc** cancels a running request.
| Mode | Behavior |
|------|----------|
| **Plan** | Design-first — proposes before acting |
| **Agent** | Multi-step autonomous tool use |
| **YOLO** | Full auto-approve, no guardrails |
## Usage
```bash
deepseek-tui # interactive TUI
deepseek-tui -p "explain this in 2 sentences" # one-shot prompt
deepseek-tui --yolo # agent mode, all tools auto-approved
deepseek doctor # check your setup
deepseek-tui --yolo # YOLO mode
deepseek doctor # check setup
deepseek models # list available models
deepseek serve --http # start HTTP/SSE API server
deepseek serve --http # HTTP/SSE API server
```
Within the TUI, use `/config`, `/models`, `/task`, and `Ctrl+K` command palette.
## Workspace Architecture
```
crates/
cli/ deepseek-tui-cli → deepseek CLI dispatcher + server
tui/ deepseek-tui → deepseek-tui Interactive terminal UI
app-server/ deepseek-app-server HTTP/SSE + JSON-RPC server
core/ deepseek-core Agent loop + engine
protocol/ deepseek-protocol Request/response framing
config/ deepseek-config Configuration + profiles
state/ deepseek-state SQLite session persistence
tools/ deepseek-tools Tool registry + specs
mcp/ deepseek-mcp MCP server integration
hooks/ deepseek-hooks Lifecycle hooks
execpolicy/ deepseek-execpolicy Approval policy engine
agent/ deepseek-agent Model/provider registry
tui-core/ deepseek-tui-core TUI state machine scaffold
```
## Model IDs
Common model IDs: `deepseek-chat`, `deepseek-reasoner`.
Any valid `deepseek-*` model ID is accepted (including future releases). Model IDs can include context-window suffix hints (`-32k`, `-256k`). To see live IDs from your configured endpoint:
```bash
deepseek models
```
**F1** opens help. **Esc** cancels a running request. **Ctrl+K** opens command palette.
## Configuration
Everything lives in `~/.deepseek/config.toml`. See [config.example.toml](config.example.toml) for the full set of options.
`~/.deepseek/config.toml` — see [config.example.toml](config.example.toml) for all options.
Common environment overrides: `DEEPSEEK_API_KEY`, `DEEPSEEK_BASE_URL`, `DEEPSEEK_CONFIG_PATH`, `DEEPSEEK_PROFILE`, `DEEPSEEK_ALLOW_SHELL`, `DEEPSEEK_TRUST_MODE`, and `DEEPSEEK_CAPACITY_*`.
Key environment overrides: `DEEPSEEK_API_KEY`, `DEEPSEEK_BASE_URL`, `DEEPSEEK_PROFILE`.
For the full config/env matrix (profiles, feature flags, capacity tuning, sandbox controls), see [docs/CONFIGURATION.md](docs/CONFIGURATION.md).
Full reference: [docs/CONFIGURATION.md](docs/CONFIGURATION.md).
## Docs
Detailed docs are in the [docs/](docs/) folder — architecture, modes, MCP integration, runtime API, etc.
[docs/](docs/) — architecture, modes, MCP integration, runtime API.
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md). Not affiliated with DeepSeek Inc.
## License
MIT
[MIT](LICENSE)