DeepSeek 驱动的终端 UI 红队辅助工具 —— 哪吒之魔童降世角色人格

Ctrl+1/2/3 或 Ctrl+Tab 快速切换 Agent(哪吒 / 代码审计专家 / 威胁情报分析师)write_file / read_file / create_directory / list_directoryY 确认 / N 拒绝read_file 输出自动截断 200 行rusqlite 内嵌 SQLite,无需系统安装/save 保存当前对话,/load <id> 加载历史对话/history 列出所有已保存对话auto_save 偏好)/model /theme /agent /save /load /history /new /close/theme daylight)Ctrl+N)用户按键 / API 事件 / Tick
│
▼
Action (mpsc 通道) ──► update() ──► 修改 App 状态
│
▼
render() 重绘界面
App 全局状态(标签页、Agent 配置、记忆库、余额、确认对话框)update() 处理 30+ Action 变体| 依赖 | 版本 | 用途 |
|---|---|---|
ratatui |
0.29 | 终端 UI 框架 |
crossterm |
0.28 | 终端控制 |
tokio |
1 | 异步运行时 |
reqwest |
0.12 | HTTP + SSE 流 |
rusqlite |
0.31 (bundled) | 对话持久化 |
serde + serde_json + serde_yaml |
1 / 1 / 0.9 | 序列化 |
uuid |
1 | 消息唯一标识 |
chrono |
0.4 | 时间戳 |
unicode-width |
0.2 | 中日韩字符宽度 |
dotenvy |
0.15 | .env 文件加载 |
总计 14 个直接依赖,编译为单一二进制文件。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shgit clone https://gitcode.com/ctkqiang_sr/nezha_cyber.git
cd nezha_cyber
echo 'DEEPSEEK_TOKEN=sk-你的token' > .env
cargo build --release
./target/release/nezha_cyber
cargo install --git https://gitcode.com/ctkqiang_sr/nezha_cyber.git
| 方式 | 说明 |
|---|---|
.env 文件 |
项目根目录创建 .env → DEEPSEEK_TOKEN=sk-xxx |
export |
export DEEPSEEK_TOKEN=sk-xxx && nezha_cyber |
config.yaml |
YAML 配置文件中的 api_key 字段 |
优先级:.env → config.yaml → 环境变量。同时支持旧版 DEEPSEEK_API_KEY。
api_base: 'https://api.deepseek.com'
default_model: 'deepseek-v4-pro'
default_pricing:
prompt_price_per_m: 2.0
completion_price_per_m: 8.0
agents:
- name: '自定义Agent'
description: '功能描述'
system_prompt: '系统提示词...'
model: 'deepseek-v4-pro'
tools: []
Enter 发送| 方式 | 操作 |
|---|---|
| 快捷键 | Ctrl+1 Ctrl+2 Ctrl+3 或 Ctrl+Tab 循环 |
| 命令面板 | Ctrl+K → /agent 哪吒 |
用户: "帮我写一个 Python FastAPI 项目"
→ 哪吒: 调用 list_directory 查看当前目录
→ 弹出确认对话框 ─ 按 Y 确认
→ 哪吒规划架构 → 调用 create_directory + write_file × N
→ 每次写入弹出确认 ─ 按 Y/N 决定是否落盘
→ 项目创建完成
| 命令 | 功能 |
|---|---|
/save |
保存当前对话 |
/load <id> |
加载历史对话 |
/history |
列出所有已保存对话 |
魔丸降世,性格叛逆又正义,嘴毒心软。自称”小爷”,说话带少年痞气。红队高手。
源代码安全审查、漏洞分析、安全编码规范。
APT 攻击分析、恶意软件行为、攻击链追踪、IOC 提取。
POST https://api.deepseek.com/chat/completionsGET https://api.deepseek.com/user/balanceBearer Token| 快捷键 | 功能 |
|---|---|
Ctrl+C |
退出 |
Ctrl+N |
新建标签页 |
Ctrl+K |
命令面板 |
Ctrl+B |
折叠侧边栏 |
Ctrl+1/2/3 |
切换 Agent |
Ctrl+Tab |
下一个 Agent |
Esc |
关闭面板/拒绝工具调用 |
| 快捷键 | 功能 |
|---|---|
Enter |
发送消息 |
Backspace |
删除字符 |
Up/Down |
滚动消息 |
PgUp/PgDn |
滚动 5 行 |
| 按键 | 操作 |
|---|---|
Y |
确认执行(写文件/读文件/建目录) |
N |
拒绝 |
Esc |
忽略(同拒绝) |
nezha_cyber/
├── Cargo.toml
├── .env # API Token(不入版本控制)
├── config.yaml # 应用配置(可选)
├── agents.yaml # 智能体定义(可选)
├── src/
│ ├── main.rs # 入口 + 事件循环 + 键盘处理
│ ├── action.rs # Action 枚举(30+ 变体)
│ ├── app.rs # App 全局状态 + update()
│ ├── api/
│ │ ├── types.rs # 数据结构(Message, Usage, Role 等)
│ │ └── deepseek.rs # DeepSeek SSE 流式客户端
│ ├── agent/
│ │ └── config.rs # YAML 配置解析 + AppConfig
│ ├── persistence/
│ │ ├── mod.rs
│ │ └── db.rs # SQLite CRUD(MemoryStore)
│ ├── tools/
│ │ ├── mod.rs
│ │ └── executor.rs # 文件工具本地执行器 + 路径沙箱
│ └── ui/
│ ├── layout.rs # 布局计算
│ ├── theme.rs # 2 套主题
│ └── render.rs # 9 个渲染函数
└── tests/
└── integration_test.rs
git clone https://gitcode.com/ctkqiang_sr/nezha_cyber.git
cd nezha_cyber
echo 'DEEPSEEK_TOKEN=sk-xxx' > .env
cargo build && cargo run
cargo test # 107 passed, 0 failed
cargo build --release
.env 中的 Token 是否有效且以 sk- 开头curl -H "Authorization: Bearer $DEEPSEEK_TOKEN" https://api.deepseek.com/user/balancehttps://api.deepseek.com(无 /v1)Ctrl+C 退出重进@ 文件附件自动补全/compact /fork /export 命令执行引擎main 创建分支.trae/rules/project.md)cargo build 零 warning,cargo test 全绿MIT License — 详见 LICENSE