deepy-cli 0.2.20__tar.gz → 0.2.21__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- deepy_cli-0.2.21/PKG-INFO +370 -0
- deepy_cli-0.2.21/README.md +338 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/pyproject.toml +1 -1
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/__init__.py +1 -1
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/data/skills/skill-installer/SKILL.md +1 -1
- deepy_cli-0.2.20/PKG-INFO +0 -449
- deepy_cli-0.2.20/README.md +0 -417
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/__main__.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/background_tasks.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/cli.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/config/__init__.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/config/settings.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/data/__init__.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/data/skills/skill-creator/SKILL.md +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/data/tools/AskUserQuestion.md +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/data/tools/Search.md +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/data/tools/WebFetch.md +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/data/tools/WebSearch.md +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/data/tools/__init__.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/data/tools/apply_patch.md +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/data/tools/edit_text.md +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/data/tools/read_file.md +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/data/tools/shell.md +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/data/tools/task_list.md +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/data/tools/task_output.md +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/data/tools/task_stop.md +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/data/tools/test_shell.md +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/data/tools/todo_write.md +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/data/tools/write_file.md +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/errors.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/input_suggestions.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/llm/__init__.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/llm/agent.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/llm/compaction.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/llm/context.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/llm/events.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/llm/model_capabilities.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/llm/provider.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/llm/replay.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/llm/runner.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/llm/thinking.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/mcp.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/prompts/__init__.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/prompts/compact.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/prompts/init_agents.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/prompts/rules.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/prompts/runtime_context.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/prompts/system.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/prompts/tool_docs.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/session_cost.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/sessions/__init__.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/sessions/jsonl.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/sessions/manager.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/skill_market.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/skills.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/status.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/subagents.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/todos.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/tools/__init__.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/tools/agents.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/tools/builtin.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/tools/file_state.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/tools/result.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/tools/search.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/tools/shell_output.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/tools/shell_utils.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/tools/test_shell.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/tui/__init__.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/tui/app.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/tui/commands.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/tui/compat.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/tui/diff.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/tui/runner.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/tui/screens.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/tui/state.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/tui/widgets.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/types/__init__.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/types/sdk.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/types/tool_payloads.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/ui/__init__.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/ui/app.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/ui/ask_user_question.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/ui/exit_summary.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/ui/file_mentions.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/ui/loading_text.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/ui/local_command.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/ui/markdown.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/ui/message_view.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/ui/model_picker.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/ui/prompt_buffer.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/ui/prompt_input.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/ui/session_list.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/ui/session_picker.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/ui/skill_picker.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/ui/slash_commands.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/ui/status_footer.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/ui/styles.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/ui/terminal.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/ui/theme_picker.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/ui/thinking_state.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/ui/welcome.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/update_check.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/usage.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/utils/__init__.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/utils/debug_logger.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/utils/error_logger.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/utils/json.py +0 -0
- {deepy_cli-0.2.20 → deepy_cli-0.2.21}/src/deepy/utils/notify.py +0 -0
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: deepy-cli
|
|
3
|
+
Version: 0.2.21
|
|
4
|
+
Summary: Deepy - Vibe coding for DeepSeek models in your terminal
|
|
5
|
+
Keywords: deepseek,coding-agent,terminal,cli,agents
|
|
6
|
+
Author: kirineko
|
|
7
|
+
Author-email: kirineko <kirineko@qq.com>
|
|
8
|
+
Classifier: Development Status :: 3 - Alpha
|
|
9
|
+
Classifier: Environment :: Console
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
13
|
+
Classifier: Topic :: Software Development
|
|
14
|
+
Classifier: Topic :: Terminals
|
|
15
|
+
Requires-Dist: openai-agents>=0.17.0
|
|
16
|
+
Requires-Dist: openai>=2.26,<3
|
|
17
|
+
Requires-Dist: orjson>=3.10,<4
|
|
18
|
+
Requires-Dist: pathspec>=1.1.1
|
|
19
|
+
Requires-Dist: pydantic>=2.12,<3
|
|
20
|
+
Requires-Dist: prompt-toolkit>=3.0,<4
|
|
21
|
+
Requires-Dist: regex>=2026.5.9
|
|
22
|
+
Requires-Dist: pyyaml>=6.0,<7
|
|
23
|
+
Requires-Dist: rich>=14.2,<15
|
|
24
|
+
Requires-Dist: textual>=8.2,<9
|
|
25
|
+
Requires-Dist: tiktoken>=0.9,<1
|
|
26
|
+
Requires-Dist: tomli-w>=1
|
|
27
|
+
Requires-Python: >=3.12
|
|
28
|
+
Project-URL: Homepage, https://kirineko.github.io/deepy/
|
|
29
|
+
Project-URL: Repository, https://github.com/kirineko/deepy
|
|
30
|
+
Project-URL: Issues, https://github.com/kirineko/deepy/issues
|
|
31
|
+
Description-Content-Type: text/markdown
|
|
32
|
+
|
|
33
|
+
<p align="center">
|
|
34
|
+
<img src="asset/deepy-logo.webp" alt="Deepy logo" width="144">
|
|
35
|
+
</p>
|
|
36
|
+
|
|
37
|
+
<h1 align="center">Deepy</h1>
|
|
38
|
+
|
|
39
|
+
<p align="center">
|
|
40
|
+
A terminal-native coding agent for real project work.
|
|
41
|
+
</p>
|
|
42
|
+
|
|
43
|
+
<p align="center">
|
|
44
|
+
<a href="https://deepy.kirineko.tech/"><strong>Install Website</strong></a>
|
|
45
|
+
·
|
|
46
|
+
<a href="https://kirineko.github.io/deepy/">GitHub Pages</a>
|
|
47
|
+
·
|
|
48
|
+
<a href="README.zh-CN.md">中文文档</a>
|
|
49
|
+
</p>
|
|
50
|
+
|
|
51
|
+

|
|
52
|
+
|
|
53
|
+
## What Deepy Is
|
|
54
|
+
|
|
55
|
+
Deepy is a Python CLI coding agent for real project work. It stays in your
|
|
56
|
+
terminal and combines OpenAI Agents SDK tool orchestration, project Rules,
|
|
57
|
+
Agent Skills, MCP, subagents, sessions, and visible UI to read code, edit files,
|
|
58
|
+
run commands, search the web, and resume long tasks. It is DeepSeek-first while
|
|
59
|
+
also supporting OpenAI-compatible providers.
|
|
60
|
+
|
|
61
|
+
## Why Use It
|
|
62
|
+
|
|
63
|
+
- **DeepSeek-first agent loop**: tuned for DeepSeek V4 thinking mode while still
|
|
64
|
+
supporting OpenAI-compatible providers such as OpenRouter and Xiaomi MiMo.
|
|
65
|
+
- **Transparent terminal execution**: thinking, tool calls, diffs, shell output,
|
|
66
|
+
usage, and context pressure stay visible in the transcript.
|
|
67
|
+
- **Project memory and continuity**: `AGENTS.md` rules, JSONL sessions,
|
|
68
|
+
`/resume`, `/compact`, automatic compacting, and context-window status keep
|
|
69
|
+
long project work recoverable.
|
|
70
|
+
- **Extensible agent ecosystem**: Agent Skills, MCP servers, subagents, and
|
|
71
|
+
skill-market installation give Deepy reusable workflows beyond built-in tools.
|
|
72
|
+
- **Practical coding controls**: stale-write protection, direct `!cmd` local
|
|
73
|
+
commands, managed background tasks, and `/ps` / `/stop` keep local execution
|
|
74
|
+
reviewable.
|
|
75
|
+
- **Cross-platform shell support**: POSIX shell, PowerShell, cmd, Windows paths,
|
|
76
|
+
UTF-8 output, CRLF editing, and non-interactive Windows local command mode.
|
|
77
|
+
|
|
78
|
+
## Quick Start
|
|
79
|
+
|
|
80
|
+
1. Install `uv`:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# macOS / Linux
|
|
84
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
85
|
+
|
|
86
|
+
# Windows PowerShell
|
|
87
|
+
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
2. Install Deepy:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
uv tool install deepy-cli
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
3. Start Deepy in a project:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
cd your-project
|
|
100
|
+
deepy
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
If Deepy has not been configured yet, the first run guides you through provider,
|
|
104
|
+
API key, model, and theme setup. You can later run `deepy config setup` to
|
|
105
|
+
reconfigure manually.
|
|
106
|
+
|
|
107
|
+
Upgrade or uninstall:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
uv tool upgrade deepy-cli
|
|
111
|
+
uv tool uninstall deepy-cli
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## First Session
|
|
115
|
+
|
|
116
|
+
Try requests like these inside `deepy`:
|
|
117
|
+
|
|
118
|
+
```text
|
|
119
|
+
Summarize this project and point out the main entry points.
|
|
120
|
+
Read @src/app.py and explain how the request flow works.
|
|
121
|
+
Fix the failing test, run the focused test, and summarize the diff.
|
|
122
|
+
Search the web for the current API behavior, then update the integration notes.
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Useful interactive inputs:
|
|
126
|
+
|
|
127
|
+
```text
|
|
128
|
+
@src/app.py Mention a file in the current project
|
|
129
|
+
!pytest -q Run a local non-interactive command directly
|
|
130
|
+
/model Select provider, model, and thinking mode
|
|
131
|
+
/status Show usage, context pressure, and DeepSeek balance
|
|
132
|
+
/resume Resume a previous project session
|
|
133
|
+
/new Start a fresh session
|
|
134
|
+
/compact Compact the active session context
|
|
135
|
+
/mcp Show MCP server status and tools
|
|
136
|
+
/skills Manage local and market Skills
|
|
137
|
+
/ps Show managed background shell tasks
|
|
138
|
+
/stop Choose background shell tasks to stop
|
|
139
|
+
Esc Interrupt the current model turn
|
|
140
|
+
Ctrl+D Press twice to quit
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## What It Looks Like
|
|
144
|
+
|
|
145
|
+
### Terminal-Centered Agent Loop
|
|
146
|
+
|
|
147
|
+
Deepy keeps model reasoning, WebFetch, shell output, and status lines visible in
|
|
148
|
+
one transcript.
|
|
149
|
+
|
|
150
|
+

|
|
151
|
+
|
|
152
|
+
### Code Editing With Reviewable Diff
|
|
153
|
+
|
|
154
|
+
File edits are shown with path information and readable diff output.
|
|
155
|
+
|
|
156
|
+

|
|
157
|
+
|
|
158
|
+
### Search, Fetch, And Local Commands
|
|
159
|
+
|
|
160
|
+
Use WebSearch / WebFetch for external context, `@` for file mentions, and `!`
|
|
161
|
+
for direct local commands.
|
|
162
|
+
|
|
163
|
+

|
|
164
|
+
|
|
165
|
+
## Stable UI And Experimental TUI
|
|
166
|
+
|
|
167
|
+
The default `deepy` command starts the stable Rich/prompt-toolkit terminal UI.
|
|
168
|
+
The opt-in Textual interface is available with:
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
deepy tui
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
The TUI has a scrollable transcript, live thinking blocks, richer tool output
|
|
175
|
+
blocks, slash-command and `@file` suggestions, status/help screens, and a
|
|
176
|
+
Deepy-owned diff view. It remains experimental and may change between releases.
|
|
177
|
+
|
|
178
|
+

|
|
179
|
+
|
|
180
|
+
`/status` shows session/project usage, context-window pressure, and DeepSeek
|
|
181
|
+
balance in one panel. Exiting the TUI prints the same compact session summary
|
|
182
|
+
as the stable terminal UI.
|
|
183
|
+
|
|
184
|
+
See [docs/deepy-ui-and-tui.md](docs/deepy-ui-and-tui.md) for the full feature
|
|
185
|
+
comparison and current limitations.
|
|
186
|
+
|
|
187
|
+
## Rules
|
|
188
|
+
|
|
189
|
+
Rules are project and personal instructions that shape how Deepy should work.
|
|
190
|
+
Deepy automatically loads them from `AGENTS.md` files:
|
|
191
|
+
|
|
192
|
+
- `~/.deepy/AGENTS.md` for Deepy-wide personal guidance
|
|
193
|
+
- `AGENTS.md` files from the git root down to the current working directory
|
|
194
|
+
|
|
195
|
+
Project `AGENTS.md` files are loaded from broad to specific. A file in a nested
|
|
196
|
+
directory appears after the repository root file and takes precedence when rules
|
|
197
|
+
conflict. Direct user instructions still take precedence over loaded
|
|
198
|
+
`AGENTS.md` guidance.
|
|
199
|
+
|
|
200
|
+
Run `/init` in the interactive terminal to have Deepy inspect the repository and
|
|
201
|
+
create or refresh the project root `AGENTS.md`.
|
|
202
|
+
|
|
203
|
+
## Skills
|
|
204
|
+
|
|
205
|
+
Skills are reusable capability packs. Deepy discovers three kinds:
|
|
206
|
+
|
|
207
|
+
- **Project skills**: `<project>/.agents/skills/<name>/SKILL.md`. These are
|
|
208
|
+
shared with the current repository and take priority over user or built-in
|
|
209
|
+
skills with the same name.
|
|
210
|
+
- **User skills**: `~/.agents/skills/<name>/SKILL.md`. These are personal
|
|
211
|
+
skills available across projects and override built-in skills with the same
|
|
212
|
+
name.
|
|
213
|
+
- **Built-in skills**: packaged with Deepy for common workflows. They are always
|
|
214
|
+
available, but they are not editable or uninstallable through the skill UI.
|
|
215
|
+
|
|
216
|
+
Skills use the standard Agent Skills progressive-disclosure flow: Deepy shows
|
|
217
|
+
Skill metadata first, and the model reads the full `SKILL.md` only when the task
|
|
218
|
+
matches that skill.
|
|
219
|
+
|
|
220
|
+
The skill market is a curated source for installable Skills. Market-installed
|
|
221
|
+
Skills can be installed into user or project scope, updated, and uninstalled
|
|
222
|
+
through Deepy's Skills UI. Deepy records market-installed Skill metadata under
|
|
223
|
+
`~/.deepy/skill-market/`.
|
|
224
|
+
|
|
225
|
+
Use `/skills` to manage local and market Skills, or invoke a Skill directly:
|
|
226
|
+
|
|
227
|
+
```text
|
|
228
|
+
/skills
|
|
229
|
+
/<name> [request]
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+

|
|
233
|
+
|
|
234
|
+
## MCP
|
|
235
|
+
|
|
236
|
+
Deepy can load MCP servers through the OpenAI Agents SDK. MCP is how you connect
|
|
237
|
+
external tools such as search providers, databases, local services, or
|
|
238
|
+
organization-specific context providers.
|
|
239
|
+
|
|
240
|
+
Most users only need `~/.deepy/mcp.json`. Project-level MCP configuration is
|
|
241
|
+
ignored by default because stdio MCP servers can start local commands. Enable it
|
|
242
|
+
only for repositories you trust.
|
|
243
|
+
|
|
244
|
+
See [docs/mcp.md](docs/mcp.md) for setup, fields, search preference, subagent
|
|
245
|
+
MCP inheritance, and troubleshooting.
|
|
246
|
+
|
|
247
|
+
## Trust Boundaries
|
|
248
|
+
|
|
249
|
+
- File edits are rendered with path information and readable diffs.
|
|
250
|
+
- Existing file replacement uses stale-write protection.
|
|
251
|
+
- `!cmd` is direct local command mode; model-started shell commands are shown in
|
|
252
|
+
the transcript.
|
|
253
|
+
- MCP stdio servers start local commands. Project MCP config is ignored by
|
|
254
|
+
default and should only be enabled for repositories you trust.
|
|
255
|
+
- Built-in subagents do not receive source mutation tools by default.
|
|
256
|
+
- The tester subagent uses constrained `test_shell`, not raw unrestricted
|
|
257
|
+
`shell`.
|
|
258
|
+
|
|
259
|
+
## Learning Resources
|
|
260
|
+
|
|
261
|
+
| Topic | English | Chinese |
|
|
262
|
+
| --- | --- | --- |
|
|
263
|
+
| Tutorial videos | [docs/tutorial-videos.md](docs/tutorial-videos.md) | [docs/tutorial-videos.zh-CN.md](docs/tutorial-videos.zh-CN.md) |
|
|
264
|
+
| MCP setup and troubleshooting | [docs/mcp.md](docs/mcp.md) | [docs/mcp.zh-CN.md](docs/mcp.zh-CN.md) |
|
|
265
|
+
| Subagents and custom subagents | [docs/subagents.md](docs/subagents.md) | [docs/subagents.zh-CN.md](docs/subagents.zh-CN.md) |
|
|
266
|
+
| Stable UI versus experimental TUI | [docs/deepy-ui-and-tui.md](docs/deepy-ui-and-tui.md) | [docs/deepy-ui-and-tui.zh-CN.md](docs/deepy-ui-and-tui.zh-CN.md) |
|
|
267
|
+
|
|
268
|
+
## Command Reference
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
deepy --version
|
|
272
|
+
deepy config setup
|
|
273
|
+
deepy config reset
|
|
274
|
+
deepy config theme
|
|
275
|
+
deepy doctor
|
|
276
|
+
deepy doctor --live --json
|
|
277
|
+
deepy status
|
|
278
|
+
deepy tui
|
|
279
|
+
deepy skills list
|
|
280
|
+
deepy skills show <name>
|
|
281
|
+
deepy sessions list
|
|
282
|
+
deepy sessions show <session-id>
|
|
283
|
+
deepy run "summarize this project"
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
Inside the interactive terminal:
|
|
287
|
+
|
|
288
|
+
```text
|
|
289
|
+
/help Show interactive help
|
|
290
|
+
/model Select provider, model, and thinking mode
|
|
291
|
+
/status Show usage, context pressure, and DeepSeek balance
|
|
292
|
+
/resume Resume a previous project session
|
|
293
|
+
/new Start a fresh session
|
|
294
|
+
/compact Compact the active session context
|
|
295
|
+
/mcp Show MCP server status and tools
|
|
296
|
+
/skills Manage local and market Skills
|
|
297
|
+
/<name> [request] Invoke a Skill directly
|
|
298
|
+
/init Create or update project AGENTS.md
|
|
299
|
+
/theme Show or change terminal UI theme
|
|
300
|
+
/ps Show managed background shell tasks
|
|
301
|
+
/stop Choose background shell tasks to stop
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
## Configuration
|
|
305
|
+
|
|
306
|
+
Deepy stores configuration in `~/.deepy/config.toml`. The interactive first-run
|
|
307
|
+
setup creates this file for most users.
|
|
308
|
+
|
|
309
|
+
Minimal resolved shape:
|
|
310
|
+
|
|
311
|
+
```toml
|
|
312
|
+
[model]
|
|
313
|
+
api_key = "sk-..."
|
|
314
|
+
provider = "deepseek"
|
|
315
|
+
name = "deepseek-v4-pro"
|
|
316
|
+
base_url = "https://api.deepseek.com"
|
|
317
|
+
thinking = true
|
|
318
|
+
reasoning_effort = "max"
|
|
319
|
+
|
|
320
|
+
[context]
|
|
321
|
+
window_tokens = 1048576
|
|
322
|
+
compact_trigger_ratio = 0.8
|
|
323
|
+
reserved_context_tokens = 50000
|
|
324
|
+
compact_preserve_recent_messages = 2
|
|
325
|
+
|
|
326
|
+
[ui]
|
|
327
|
+
theme = "dark" # dark or light
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
Manual configuration commands:
|
|
331
|
+
|
|
332
|
+
```bash
|
|
333
|
+
deepy config setup
|
|
334
|
+
deepy config init --api-key sk-... --provider deepseek --model deepseek-v4-pro
|
|
335
|
+
deepy config init --api-key sk-or-... --provider openrouter --model xiaomi/mimo-v2.5-pro
|
|
336
|
+
deepy config init --api-key sk-or-... --provider openrouter --model anthropic/claude-sonnet-4.5 --thinking minimal
|
|
337
|
+
deepy config init --api-key sk-... --provider xiaomi --model mimo-v2.5-pro
|
|
338
|
+
deepy config theme light
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
Supported provider/model pairs:
|
|
342
|
+
|
|
343
|
+
- `deepseek`: `deepseek-v4-pro`, `deepseek-v4-flash`; thinking modes `none`,
|
|
344
|
+
`high`, `max`.
|
|
345
|
+
- `openrouter`: UI model selection offers `xiaomi/mimo-v2.5-pro`,
|
|
346
|
+
`xiaomi/mimo-v2.5`; setup/init may also use a model id copied from
|
|
347
|
+
OpenRouter. Thinking modes are `enabled`, `disabled`, `xhigh`, `high`,
|
|
348
|
+
`medium`, `low`, `minimal`, `none`.
|
|
349
|
+
- `xiaomi`: `mimo-v2.5-pro`, `mimo-v2.5`; thinking modes `enabled`,
|
|
350
|
+
`disabled`.
|
|
351
|
+
|
|
352
|
+
WebSearch uses Deepy's hosted SearXNG endpoint by default. You can override it:
|
|
353
|
+
|
|
354
|
+
```toml
|
|
355
|
+
[tools.web_search]
|
|
356
|
+
searxng_url = "https://your-searxng.example/"
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
## Development
|
|
360
|
+
|
|
361
|
+
```bash
|
|
362
|
+
uv sync --group dev
|
|
363
|
+
uv run pytest
|
|
364
|
+
uv run ruff check
|
|
365
|
+
uv run ty check src
|
|
366
|
+
uv build
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
The Python package is built from `src/deepy`. GitHub Pages files and screenshot
|
|
370
|
+
assets live outside the package directory and are not included in the wheel.
|
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="asset/deepy-logo.webp" alt="Deepy logo" width="144">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">Deepy</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
A terminal-native coding agent for real project work.
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="https://deepy.kirineko.tech/"><strong>Install Website</strong></a>
|
|
13
|
+
·
|
|
14
|
+
<a href="https://kirineko.github.io/deepy/">GitHub Pages</a>
|
|
15
|
+
·
|
|
16
|
+
<a href="README.zh-CN.md">中文文档</a>
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+

|
|
20
|
+
|
|
21
|
+
## What Deepy Is
|
|
22
|
+
|
|
23
|
+
Deepy is a Python CLI coding agent for real project work. It stays in your
|
|
24
|
+
terminal and combines OpenAI Agents SDK tool orchestration, project Rules,
|
|
25
|
+
Agent Skills, MCP, subagents, sessions, and visible UI to read code, edit files,
|
|
26
|
+
run commands, search the web, and resume long tasks. It is DeepSeek-first while
|
|
27
|
+
also supporting OpenAI-compatible providers.
|
|
28
|
+
|
|
29
|
+
## Why Use It
|
|
30
|
+
|
|
31
|
+
- **DeepSeek-first agent loop**: tuned for DeepSeek V4 thinking mode while still
|
|
32
|
+
supporting OpenAI-compatible providers such as OpenRouter and Xiaomi MiMo.
|
|
33
|
+
- **Transparent terminal execution**: thinking, tool calls, diffs, shell output,
|
|
34
|
+
usage, and context pressure stay visible in the transcript.
|
|
35
|
+
- **Project memory and continuity**: `AGENTS.md` rules, JSONL sessions,
|
|
36
|
+
`/resume`, `/compact`, automatic compacting, and context-window status keep
|
|
37
|
+
long project work recoverable.
|
|
38
|
+
- **Extensible agent ecosystem**: Agent Skills, MCP servers, subagents, and
|
|
39
|
+
skill-market installation give Deepy reusable workflows beyond built-in tools.
|
|
40
|
+
- **Practical coding controls**: stale-write protection, direct `!cmd` local
|
|
41
|
+
commands, managed background tasks, and `/ps` / `/stop` keep local execution
|
|
42
|
+
reviewable.
|
|
43
|
+
- **Cross-platform shell support**: POSIX shell, PowerShell, cmd, Windows paths,
|
|
44
|
+
UTF-8 output, CRLF editing, and non-interactive Windows local command mode.
|
|
45
|
+
|
|
46
|
+
## Quick Start
|
|
47
|
+
|
|
48
|
+
1. Install `uv`:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# macOS / Linux
|
|
52
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
53
|
+
|
|
54
|
+
# Windows PowerShell
|
|
55
|
+
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
2. Install Deepy:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
uv tool install deepy-cli
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
3. Start Deepy in a project:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
cd your-project
|
|
68
|
+
deepy
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
If Deepy has not been configured yet, the first run guides you through provider,
|
|
72
|
+
API key, model, and theme setup. You can later run `deepy config setup` to
|
|
73
|
+
reconfigure manually.
|
|
74
|
+
|
|
75
|
+
Upgrade or uninstall:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
uv tool upgrade deepy-cli
|
|
79
|
+
uv tool uninstall deepy-cli
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## First Session
|
|
83
|
+
|
|
84
|
+
Try requests like these inside `deepy`:
|
|
85
|
+
|
|
86
|
+
```text
|
|
87
|
+
Summarize this project and point out the main entry points.
|
|
88
|
+
Read @src/app.py and explain how the request flow works.
|
|
89
|
+
Fix the failing test, run the focused test, and summarize the diff.
|
|
90
|
+
Search the web for the current API behavior, then update the integration notes.
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Useful interactive inputs:
|
|
94
|
+
|
|
95
|
+
```text
|
|
96
|
+
@src/app.py Mention a file in the current project
|
|
97
|
+
!pytest -q Run a local non-interactive command directly
|
|
98
|
+
/model Select provider, model, and thinking mode
|
|
99
|
+
/status Show usage, context pressure, and DeepSeek balance
|
|
100
|
+
/resume Resume a previous project session
|
|
101
|
+
/new Start a fresh session
|
|
102
|
+
/compact Compact the active session context
|
|
103
|
+
/mcp Show MCP server status and tools
|
|
104
|
+
/skills Manage local and market Skills
|
|
105
|
+
/ps Show managed background shell tasks
|
|
106
|
+
/stop Choose background shell tasks to stop
|
|
107
|
+
Esc Interrupt the current model turn
|
|
108
|
+
Ctrl+D Press twice to quit
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## What It Looks Like
|
|
112
|
+
|
|
113
|
+
### Terminal-Centered Agent Loop
|
|
114
|
+
|
|
115
|
+
Deepy keeps model reasoning, WebFetch, shell output, and status lines visible in
|
|
116
|
+
one transcript.
|
|
117
|
+
|
|
118
|
+

|
|
119
|
+
|
|
120
|
+
### Code Editing With Reviewable Diff
|
|
121
|
+
|
|
122
|
+
File edits are shown with path information and readable diff output.
|
|
123
|
+
|
|
124
|
+

|
|
125
|
+
|
|
126
|
+
### Search, Fetch, And Local Commands
|
|
127
|
+
|
|
128
|
+
Use WebSearch / WebFetch for external context, `@` for file mentions, and `!`
|
|
129
|
+
for direct local commands.
|
|
130
|
+
|
|
131
|
+

|
|
132
|
+
|
|
133
|
+
## Stable UI And Experimental TUI
|
|
134
|
+
|
|
135
|
+
The default `deepy` command starts the stable Rich/prompt-toolkit terminal UI.
|
|
136
|
+
The opt-in Textual interface is available with:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
deepy tui
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
The TUI has a scrollable transcript, live thinking blocks, richer tool output
|
|
143
|
+
blocks, slash-command and `@file` suggestions, status/help screens, and a
|
|
144
|
+
Deepy-owned diff view. It remains experimental and may change between releases.
|
|
145
|
+
|
|
146
|
+

|
|
147
|
+
|
|
148
|
+
`/status` shows session/project usage, context-window pressure, and DeepSeek
|
|
149
|
+
balance in one panel. Exiting the TUI prints the same compact session summary
|
|
150
|
+
as the stable terminal UI.
|
|
151
|
+
|
|
152
|
+
See [docs/deepy-ui-and-tui.md](docs/deepy-ui-and-tui.md) for the full feature
|
|
153
|
+
comparison and current limitations.
|
|
154
|
+
|
|
155
|
+
## Rules
|
|
156
|
+
|
|
157
|
+
Rules are project and personal instructions that shape how Deepy should work.
|
|
158
|
+
Deepy automatically loads them from `AGENTS.md` files:
|
|
159
|
+
|
|
160
|
+
- `~/.deepy/AGENTS.md` for Deepy-wide personal guidance
|
|
161
|
+
- `AGENTS.md` files from the git root down to the current working directory
|
|
162
|
+
|
|
163
|
+
Project `AGENTS.md` files are loaded from broad to specific. A file in a nested
|
|
164
|
+
directory appears after the repository root file and takes precedence when rules
|
|
165
|
+
conflict. Direct user instructions still take precedence over loaded
|
|
166
|
+
`AGENTS.md` guidance.
|
|
167
|
+
|
|
168
|
+
Run `/init` in the interactive terminal to have Deepy inspect the repository and
|
|
169
|
+
create or refresh the project root `AGENTS.md`.
|
|
170
|
+
|
|
171
|
+
## Skills
|
|
172
|
+
|
|
173
|
+
Skills are reusable capability packs. Deepy discovers three kinds:
|
|
174
|
+
|
|
175
|
+
- **Project skills**: `<project>/.agents/skills/<name>/SKILL.md`. These are
|
|
176
|
+
shared with the current repository and take priority over user or built-in
|
|
177
|
+
skills with the same name.
|
|
178
|
+
- **User skills**: `~/.agents/skills/<name>/SKILL.md`. These are personal
|
|
179
|
+
skills available across projects and override built-in skills with the same
|
|
180
|
+
name.
|
|
181
|
+
- **Built-in skills**: packaged with Deepy for common workflows. They are always
|
|
182
|
+
available, but they are not editable or uninstallable through the skill UI.
|
|
183
|
+
|
|
184
|
+
Skills use the standard Agent Skills progressive-disclosure flow: Deepy shows
|
|
185
|
+
Skill metadata first, and the model reads the full `SKILL.md` only when the task
|
|
186
|
+
matches that skill.
|
|
187
|
+
|
|
188
|
+
The skill market is a curated source for installable Skills. Market-installed
|
|
189
|
+
Skills can be installed into user or project scope, updated, and uninstalled
|
|
190
|
+
through Deepy's Skills UI. Deepy records market-installed Skill metadata under
|
|
191
|
+
`~/.deepy/skill-market/`.
|
|
192
|
+
|
|
193
|
+
Use `/skills` to manage local and market Skills, or invoke a Skill directly:
|
|
194
|
+
|
|
195
|
+
```text
|
|
196
|
+
/skills
|
|
197
|
+
/<name> [request]
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+

|
|
201
|
+
|
|
202
|
+
## MCP
|
|
203
|
+
|
|
204
|
+
Deepy can load MCP servers through the OpenAI Agents SDK. MCP is how you connect
|
|
205
|
+
external tools such as search providers, databases, local services, or
|
|
206
|
+
organization-specific context providers.
|
|
207
|
+
|
|
208
|
+
Most users only need `~/.deepy/mcp.json`. Project-level MCP configuration is
|
|
209
|
+
ignored by default because stdio MCP servers can start local commands. Enable it
|
|
210
|
+
only for repositories you trust.
|
|
211
|
+
|
|
212
|
+
See [docs/mcp.md](docs/mcp.md) for setup, fields, search preference, subagent
|
|
213
|
+
MCP inheritance, and troubleshooting.
|
|
214
|
+
|
|
215
|
+
## Trust Boundaries
|
|
216
|
+
|
|
217
|
+
- File edits are rendered with path information and readable diffs.
|
|
218
|
+
- Existing file replacement uses stale-write protection.
|
|
219
|
+
- `!cmd` is direct local command mode; model-started shell commands are shown in
|
|
220
|
+
the transcript.
|
|
221
|
+
- MCP stdio servers start local commands. Project MCP config is ignored by
|
|
222
|
+
default and should only be enabled for repositories you trust.
|
|
223
|
+
- Built-in subagents do not receive source mutation tools by default.
|
|
224
|
+
- The tester subagent uses constrained `test_shell`, not raw unrestricted
|
|
225
|
+
`shell`.
|
|
226
|
+
|
|
227
|
+
## Learning Resources
|
|
228
|
+
|
|
229
|
+
| Topic | English | Chinese |
|
|
230
|
+
| --- | --- | --- |
|
|
231
|
+
| Tutorial videos | [docs/tutorial-videos.md](docs/tutorial-videos.md) | [docs/tutorial-videos.zh-CN.md](docs/tutorial-videos.zh-CN.md) |
|
|
232
|
+
| MCP setup and troubleshooting | [docs/mcp.md](docs/mcp.md) | [docs/mcp.zh-CN.md](docs/mcp.zh-CN.md) |
|
|
233
|
+
| Subagents and custom subagents | [docs/subagents.md](docs/subagents.md) | [docs/subagents.zh-CN.md](docs/subagents.zh-CN.md) |
|
|
234
|
+
| Stable UI versus experimental TUI | [docs/deepy-ui-and-tui.md](docs/deepy-ui-and-tui.md) | [docs/deepy-ui-and-tui.zh-CN.md](docs/deepy-ui-and-tui.zh-CN.md) |
|
|
235
|
+
|
|
236
|
+
## Command Reference
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
deepy --version
|
|
240
|
+
deepy config setup
|
|
241
|
+
deepy config reset
|
|
242
|
+
deepy config theme
|
|
243
|
+
deepy doctor
|
|
244
|
+
deepy doctor --live --json
|
|
245
|
+
deepy status
|
|
246
|
+
deepy tui
|
|
247
|
+
deepy skills list
|
|
248
|
+
deepy skills show <name>
|
|
249
|
+
deepy sessions list
|
|
250
|
+
deepy sessions show <session-id>
|
|
251
|
+
deepy run "summarize this project"
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
Inside the interactive terminal:
|
|
255
|
+
|
|
256
|
+
```text
|
|
257
|
+
/help Show interactive help
|
|
258
|
+
/model Select provider, model, and thinking mode
|
|
259
|
+
/status Show usage, context pressure, and DeepSeek balance
|
|
260
|
+
/resume Resume a previous project session
|
|
261
|
+
/new Start a fresh session
|
|
262
|
+
/compact Compact the active session context
|
|
263
|
+
/mcp Show MCP server status and tools
|
|
264
|
+
/skills Manage local and market Skills
|
|
265
|
+
/<name> [request] Invoke a Skill directly
|
|
266
|
+
/init Create or update project AGENTS.md
|
|
267
|
+
/theme Show or change terminal UI theme
|
|
268
|
+
/ps Show managed background shell tasks
|
|
269
|
+
/stop Choose background shell tasks to stop
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
## Configuration
|
|
273
|
+
|
|
274
|
+
Deepy stores configuration in `~/.deepy/config.toml`. The interactive first-run
|
|
275
|
+
setup creates this file for most users.
|
|
276
|
+
|
|
277
|
+
Minimal resolved shape:
|
|
278
|
+
|
|
279
|
+
```toml
|
|
280
|
+
[model]
|
|
281
|
+
api_key = "sk-..."
|
|
282
|
+
provider = "deepseek"
|
|
283
|
+
name = "deepseek-v4-pro"
|
|
284
|
+
base_url = "https://api.deepseek.com"
|
|
285
|
+
thinking = true
|
|
286
|
+
reasoning_effort = "max"
|
|
287
|
+
|
|
288
|
+
[context]
|
|
289
|
+
window_tokens = 1048576
|
|
290
|
+
compact_trigger_ratio = 0.8
|
|
291
|
+
reserved_context_tokens = 50000
|
|
292
|
+
compact_preserve_recent_messages = 2
|
|
293
|
+
|
|
294
|
+
[ui]
|
|
295
|
+
theme = "dark" # dark or light
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
Manual configuration commands:
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
deepy config setup
|
|
302
|
+
deepy config init --api-key sk-... --provider deepseek --model deepseek-v4-pro
|
|
303
|
+
deepy config init --api-key sk-or-... --provider openrouter --model xiaomi/mimo-v2.5-pro
|
|
304
|
+
deepy config init --api-key sk-or-... --provider openrouter --model anthropic/claude-sonnet-4.5 --thinking minimal
|
|
305
|
+
deepy config init --api-key sk-... --provider xiaomi --model mimo-v2.5-pro
|
|
306
|
+
deepy config theme light
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
Supported provider/model pairs:
|
|
310
|
+
|
|
311
|
+
- `deepseek`: `deepseek-v4-pro`, `deepseek-v4-flash`; thinking modes `none`,
|
|
312
|
+
`high`, `max`.
|
|
313
|
+
- `openrouter`: UI model selection offers `xiaomi/mimo-v2.5-pro`,
|
|
314
|
+
`xiaomi/mimo-v2.5`; setup/init may also use a model id copied from
|
|
315
|
+
OpenRouter. Thinking modes are `enabled`, `disabled`, `xhigh`, `high`,
|
|
316
|
+
`medium`, `low`, `minimal`, `none`.
|
|
317
|
+
- `xiaomi`: `mimo-v2.5-pro`, `mimo-v2.5`; thinking modes `enabled`,
|
|
318
|
+
`disabled`.
|
|
319
|
+
|
|
320
|
+
WebSearch uses Deepy's hosted SearXNG endpoint by default. You can override it:
|
|
321
|
+
|
|
322
|
+
```toml
|
|
323
|
+
[tools.web_search]
|
|
324
|
+
searxng_url = "https://your-searxng.example/"
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
## Development
|
|
328
|
+
|
|
329
|
+
```bash
|
|
330
|
+
uv sync --group dev
|
|
331
|
+
uv run pytest
|
|
332
|
+
uv run ruff check
|
|
333
|
+
uv run ty check src
|
|
334
|
+
uv build
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
The Python package is built from `src/deepy`. GitHub Pages files and screenshot
|
|
338
|
+
assets live outside the package directory and are not included in the wheel.
|