# Project Instructions This file provides context for AI assistants working on this project. ## Project Type: Rust ### Commands - Build: `cargo build` - Test: `cargo test` - Run: `cargo run` - Check: `cargo check` - Format: `cargo fmt` - Lint: `cargo clippy` ### Project: deepseek-tui ### Documentation See README.md for project overview. ### Version Control This project uses Git. See .gitignore for excluded files. ## Advanced Capabilities ### Model Context Protocol (MCP) This CLI supports MCP for extending tool access. - Use `mcp_read_resource` to read context from external servers. - Use `mcp_get_prompt` to leverage pre-defined expert prompts from servers. - You can connect to HTTP/SSE servers by adding their URL to `mcp.json`. ### Multi-Agent Orchestration For complex, multi-step tasks, you should delegate work: - **Sub-agents**: Use `agent_spawn` (or its alias `delegate_to_agent`) to launch a background assistant for a specific sub-task. Use `agent_result` to get their output. - **Swarms**: Use `agent_swarm` to orchestrate multiple sub-agents with dependencies. This is ideal for parallel exploration or complex refactoring where different parts of the project can be analyzed concurrently. ### Project Mapping - Use `project_map` to get a comprehensive view of the codebase structure. This tool respects `.gitignore` and provides a summary of key files. ## Guidelines - **Proactive Investigation**: Always start by exploring the codebase using `project_map` and `file_search`. - **Parallelism**: When you need to read multiple files or search across different areas, use parallel tool calls if possible. - **Delegation**: If a task is large, break it down into sub-tasks and use `agent_swarm` or `agent_spawn`. - **Testing**: Rigorously verify changes using `cargo test` and `cargo check`. ## Important Notes - **Finance tool currently unavailable**: The finance tool relies on Stooq which frequently returns no data. As a workaround, use `web.run` to fetch financial data from web sources. - **Token/cost tracking inaccuracies**: Token counting and cost estimation may be inflated due to thinking token accounting bugs. Use `/compact` to manage context, and treat cost estimates as approximate. - **Web.run tool name**: Note that the tool is named `web.run` (single dot), not `web..run`. Some earlier versions of the CLI may have had this typo. ### DeepSeek-Specific Capabilities This project is built specifically for DeepSeek models, leveraging their unique features: **Thinking Tokens**: DeepSeek models can output thinking blocks (`ContentBlock::Thinking`) before providing final answers. The TUI supports streaming and displaying thinking tokens with visual distinction. You can use thinking tokens to reason step-by-step before committing to a response. **Reasoning Models**: DeepSeek offers specialized reasoning models (e.g., `deepseek-reasoner`, `deepseek-r1`) that excel at step-by-step problem solving. Consider using these models for complex tasks. **Large Context Window**: DeepSeek models have 128k context windows, allowing you to process large codebases. Use `project_map` and `file_search` to navigate efficiently. **DeepSeek API**: The CLI uses DeepSeek's OpenAI‑compatible API with support for the Responses API endpoint. The base URL can be configured for global (`api.deepseek.com`) or China (`api.deepseeki.com`). **Web Browsing**: For up‑to‑date information about DeepSeek models, documentation, or API changes, use `web.run` with citations. Example search: “DeepSeek API documentation”. ### Dogfooding Tips As a DeepSeek model working on this project, you are “dogfooding” your own tool. Use this opportunity to: - Test the toolset thoroughly and report any issues. - Suggest improvements that would make DeepSeek models more effective. - Keep changes small, focused, and well‑tested. Remember to run `cargo test` and `cargo check` after any changes.