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:
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
[](https://github.com/Hmbown/DeepSeek-TUI/actions/workflows/ci.yml)
|
||||
[](https://crates.io/crates/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)
|
||||
|
||||
Reference in New Issue
Block a user