diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3619af51..e32191db 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -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 diff --git a/README.md b/README.md index b12b6bbb..83aeb16b 100644 --- a/README.md +++ b/README.md @@ -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)

- DeepSeek CLI + DeepSeek TUI

-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 +```
Other install methods @@ -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 ```
-## 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)