一个面向单机 Git 项目的多 Agent 任务编排与实时看板工具。
当前仓库包含可运行的初版原型。设计依据仍在:
- 一个
taskopos服务实例只管理一个 Git 项目。 - 持久化状态位于该项目的
.taskopos/目录,格式以 Markdown、YAML front matter 与 JSON Lines 为主,便于 Git diff 与合并。 - 运行期缓存、套接字与锁位于 Git 忽略的
.taskopos/runtime/。
yarn
cp .env.example .env
# 在 .env 中填入 DEEPSEEK_API_KEY(仅 DeepSeek run 需要)
TASKOPOS_PROJECT=/absolute/path/to/git-project yarn dev:daemon
yarn dev:web --host 127.0.0.1打开 http://127.0.0.1:5173。CLI 与网页共用本机 daemon:
TASKOPOS_PROJECT=/absolute/path/to/git-project yarn taskopos task create "修复移动端导航" \
--description "说明验收条件和应运行的测试" --priority high --tag frontend \
--resource port:5174,database:dev --allow-provider
TASKOPOS_PROJECT=/absolute/path/to/git-project yarn taskopos task start <task-id> --engine deepseek
TASKOPOS_PROJECT=/absolute/path/to/git-project yarn taskopos run logs <task-id> <run-id> --reasoning- 默认
deepseek:使用 DeepSeek 的工具调用循环;模型只得到任务上下文与受控工具的输出。 - 可选
codex:使用官方@openai/codex-sdk,由本机 Codex runtime 在该 run 的 worktree 中执行。 - 每个 run 使用
taskopos/<task-id>/<run-id>分支和独立 worktree,最多并发数由TASKOPOS_MAX_CONCURRENT_RUNS(默认 3)控制。 - 可选资源 claim(如
port:5174、database:dev)采用同一 daemon 内的独占租约:冲突 run 自动等待,非冲突 run 仍可并发;取消与终态会释放租约。 .taskopos/tasks/的 Markdown、JSON 和 NDJSON 是可 review 的任务记录;.taskopos/runtime/是本地临时运行数据并写入 Git 的本地 exclude,不污染项目状态。
运行 DeepSeek 或 Codex 前,必须在创建表单勾选提供方数据披露确认,或为 CLI 使用 --allow-provider。任务变更只落在独立 worktree,主工作树不会被 Agent 直接修改。