Local-first personal agent that captures what you do, turns completed work into reusable achievements, and helps you write weekly reports and 述职 materials — powered by your own LLM API key, with your data staying on your own machine.
你的个人项目驾驶舱——不替你干活,替你记住你干过什么、要干什么。
Cockpit 是一个给互联网产品/运营/技术人员的"工作流记忆外挂"。用对话式 agent 帮你记录任务、完成时沉淀成就,季度述职前不再抓瞎。
📦 GitHub: CookieJobs/cockpit
- 完成即沉淀 — 任务做完不是消失了,而是沉淀成成就资产,越用越值钱
- 本地优先 — 默认数据存本机 SQLite,隐私可控
- AI 主动执行 — 自然语言直接建项目/任务,agent 自己拆解、自己动手,不等用户说"创建"
- 多 LLM 后端 — 支持 Anthropic Claude / DeepSeek / MiniMax / 自定义 OpenAI 兼容端点
- 多端配置 — 运行时通过 Web UI 配 API key,不用改 .env
- 中文场景深耕 — 中文 prompt / 中文工具描述 / 飞书/钉钉生态适配
- 单人独立工具 — 专注"个人项目管理",不抢团队协作
✅ v0.2 MVP — 核心功能完成,可日常使用:
- 项目 / 任务 / 成就 CRUD
- FastAPI 后端 + Next.js 15 前端
- SQLAlchemy 2.0 async + aiosqlite
- LLM 集成 + function calling(14 工具)
- Markdown tool call fallback(弱模型兼容)
- 多 session 聊天历史持久化
- 5 个 LLM 后端(Anthropic / DeepSeek / MiniMax / OpenAI / Custom)
- Web UI 配 LLM(DB 优先,.env fallback)
- 任务 inline 编辑(priority / due / description)
- 项目删除 + task 删除
cockpit/
├── app/ # FastAPI 后端
│ ├── core/ # 业务核心(数据模型 + 存储 + 排序)
│ │ ├── models.py
│ │ ├── storage.py
│ │ ├── focus.py
│ │ └── chat.py # LLM dispatch + 关键词 fallback
│ ├── api/ # API 路由
│ │ ├── projects.py
│ │ ├── tasks.py
│ │ ├── achievements.py
│ │ ├── chat.py
│ │ ├── chat_sessions.py
│ │ ├── llm.py
│ │ └── llm_settings.py
│ ├── llm/ # LLM 集成
│ │ ├── base.py # LLMClient 抽象
│ │ ├── anthropic.py
│ │ ├── openai.py # OpenAI 兼容(DeepSeek / MiniMax / Ollama-removed)
│ │ ├── router.py # DB-priority config
│ │ ├── tools.py # 14 个 function-calling 工具
│ │ └── chat_engine.py # 多轮 tool-calling + markdown fallback
│ └── tests/ # 单元测试(66 tests)
├── web/ # Next.js 15 前端
│ ├── app/ # App Router
│ ├── components/ # MainBoard / ChatWindow / Markdown
│ └── lib/api.ts # API client
├── scripts/ # 启动辅助脚本
│ ├── setup.sh # make setup 背后的幂等环境准备
│ └── dev-all.sh # make all 背后的一终端双服务脚本
├── docs/
│ ├── PRD.md # 产品需求文档
│ └── ...
├── Makefile # make setup / dev / web / all / stop
├── pyproject.toml
├── README.md
└── LICENSE
- Python 3.11+ — macOS 自带是 3.9,需要装新版
- macOS 推荐:
brew install python@3.12 - Linux / 想要多版本管理:
brew install pyenv && pyenv install 3.12
- macOS 推荐:
- Node.js 18+(前端)— macOS 推荐
brew install node - macOS / Linux
- 国内网络 建议设代理(npm/pip/brew 拉国外源会撞墙,几 KB/s):
export HTTPS_PROXY=http://127.0.0.1:7890 export HTTP_PROXY=http://127.0.0.1:7890 # 端口换成你自己的代理(macOS 系统设置 → 网络 → 代理 里看)
- 没有 Homebrew?装一下:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
venv 名字提示:
make setup默认建在.venv,但如果你的环境对.venv路径有特殊权限(比如某些 IDE/沙箱), 会落到.venv312之类的非标名字 — 不影响跑,启动命令相应换成.venv312/bin/uvicorn即可。
cd cockpit
make setup # 首次:venv + pip + npm install + .env(幂等,跑过就跳过)make setup 跑完后,挑一个日常用法:
选项 A:两个终端分开(前后端日志独立显示,看日志更清楚)
make dev # 终端 1:后端 http://localhost:7842
make web # 终端 2:前端 http://localhost:3000选项 B:一个终端搞定(颜色区分后端/前端输出,任一挂掉自动关另一个)
make all打开 http://localhost:3000,右上角 ⚙ 设置 → 选 LLM 后端 → 填 key → 测试 → 保存。配置存在本地 db,重启不丢。
make # 查看所有命令
make stop # 停掉所有 dev 进程
make clean # 清 Python 缓存不想用 Makefile 也可以手动:
# 后端
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .env
# 编辑 .env 至少填一个 LLM API key(也可跳过,去 Web UI 配)
uvicorn app.main:app --reload --port 7842
# 前端(另一个终端)
cd web
npm install
cp .env.example .env.local # ⚠️ 这一步必做:不建前端会打错端口(404)
npm run dev
# 访问 http://localhost:3000# 后端测试(66 tests)
pytest app/tests/ -v
# 前端类型检查
cd web && npx tsc --noEmit5 个后端,全部支持自定义 API key + base URL:
| 后端 | 适用 | 备注 |
|---|---|---|
| Anthropic | Claude Sonnet / Opus | 工具调用最稳 |
| DeepSeek | deepseek-v4-flash / v4-pro | 国产,便宜,1M 上下文 |
| MiniMax | MiniMax-M3 | 国产,1M 上下文 / Coding & Agent 强 |
| OpenAI | GPT-4o / 月之暗面 / 其他 | OpenAI 兼容 |
| Custom | 自定义 | 完全自定义 base URL + model |
UI 配 LLM:右上角 ⚙ 设置 → 选后端 → 填 key → 测试 → 保存。配置存在本地 db,重启不丢。
使用 DeepSeek R1 / MiniMax M3 等推理模型时注意:模型在
content字段会写<think>...</think>CoT 块,已在后端chat_engine.strip_think_blocks+ 前端ChatWindow.stripThinkBlocks双重剥离,不用担心。
- SQLite 数据库:
~/.cockpit/cockpit.db(macOS/Linux) - LLM 配置:DB
settings表(key-value) - 项目 / 任务 / 成就:DB
projects/tasks/achievements表 - 聊天历史:DB
chat_sessions/chat_messages表
完全本地,无云同步,隐私可控。
# 推荐:Makefile 启服务(见上文"一键启动")
make dev # 后端
make web # 前端
make all # 一终端起两边
# 测试
pytest app/tests/ # 后端
cd web && npx tsc --noEmit # 前端类型
make clean # 清 Python 缓存改 Python 代码不生效时,先 make clean 或 rm -rf app/llm/__pycache__ 再重启 uvicorn。
- 📄 产品需求文档 (PRD)
- 📄 设计文档(如有)
- 🛠️ task-cockpit — 同名 skill 仓库,给 Claude Code / Cursor 等 agent 用,与本产品形态不同、用户不同,独立维护
MIT