taskode
v0.4.4
Published
Taskode - Symphony-aligned Node orchestrator for AI issue execution
Downloads
514
Readme
🚀 Taskode — 任务即代码
把任务变成代码,让 AI 为你开发。
✨ 什么是 Taskode?
Taskode 是一个本地优先(local-first)的 AI 开发操作系统, 同时也是一个 对齐 Symphony 设计理念的 Node.js 编排器实现。
只需一条命令:
taskode你就可以在当前项目中获得一个完整的 AI 开发环境:
- 🧠 内置任务 / Issue 管理系统
- 🤖 AI 自动执行任务(生成代码、修改代码、补充测试)
- 📊 实时可视化 AI 工作过程
- 🧩 支持多任务源(Local / Linear / GitHub)
- ⚙️ 可配置 Agent、并发与执行策略
🧠 核心理念
任务即代码(Task = Code)
传统开发:
人 → 写代码 → 提交Taskode:
任务 → AI执行 → 生成代码 → 人审核开发者从“写代码的人”,变成“管理 AI 工程团队的人”。
🧩 核心能力
🗂️ 内置任务系统
- 创建 / 编辑 / 管理任务(Todo / Issue)
- 看板式流程(Todo / In Progress / Review / Done)
- 支持任务依赖与拆解
- 支持优先级与状态管理
🤖 AI 自动执行任务
每个任务由 AI 在隔离环境中执行,输出:
- 代码修改(diff)
- 新增文件
- 测试代码
- 执行日志
- 任务总结
🧠 Agent 调度系统
- 任务队列管理
- 多 Agent 并发执行
- 自动失败重试
- 状态持久化与恢复
🔁 Retry Queue(持久化)
- 支持失败任务自动重试
- 状态持久化(支持重启恢复)
- 最大重试次数可配置
🧩 Workspace 生命周期管理
每个任务运行在独立 workspace:
.taskode/workspaces/{task-id}支持:
- 自动创建 / 复用
after_create / before_run / after_run / before_removehooks- workspace 路径安全校验
- SSH worker 远程 workspace
- 终态自动清理
📊 可视化控制台
启动后访问:
http://localhost:4317可查看:
- 任务状态
- Agent 执行过程
- 日志与输出
- 代码变更(diff)
- 系统运行状态
🔌 多任务源支持
支持:
- Local(默认)
- Linear(双向同步)
- GitHub Issues(扩展)
🔗 Linear 双向闭环
- 拉取任务
- 评论同步
- 状态迁移
- 动态工具
linear_graphql
🔍 Review / Apply 流程
- 自动生成 diff / patch
- Web 端审核运行结果
- 审批后应用 workspace 变更回主项目
- 可回写任务评论 / 状态
🧠 App-Server 会话模式
支持两种执行模式:
1️⃣ App-server 模式(推荐)
- 多轮对话(turn-based)
- token 使用可观测
- JSON-RPC thread / turn 会话
- 支持动态工具调用
- 更接近真实 AI 编程
2️⃣ Shell 模式
- 单次命令执行
- 简单、快速
🔐 安全与策略控制
- API Token 鉴权
- 命令 allow / deny 策略
- 审计日志(Audit Log)
- 工作区路径逃逸防护
- 默认
workspace-writeturn sandbox policy
♻️ WORKFLOW 热重载
- 运行中自动检测
WORKFLOW.md变化 - 重载失败保留 last-known-good 配置
- 支持更严格的前置配置校验
🧪 测试门禁
支持:
- Unit Test
- Integration Test
- E2E Test
可作为 AI 执行的质量门禁。
🚀 快速开始
1️⃣ 安装
npm install -g taskode2️⃣ 初始化项目
taskode init3️⃣ 启动系统
npm run start或:
taskode4️⃣ 打开控制台
http://localhost:4317⚙️ 配置
创建:
taskode.config.ts示例:
export default {
project: {
name: "my-project",
root: ".",
},
web: {
port: 4317,
},
database: {
provider: "sqlite",
url: "./.taskode/data.db",
},
tracker: {
type: "local", // local | linear | github
},
agent: {
provider: "codex",
concurrency: 2,
},
git: {
baseBranch: "main",
workspaceDir: "./.taskode/workspaces",
},
};🧩 WORKFLOW.md(核心运行配置)
tracker:
kind: local # or linear
agent:
poll_interval_ms: 3000
max_concurrent_agents: 2
max_retry_attempts: 5
max_turns: 20
codex:
mode: app-server # shell mode also supported
command: "codex app-server"
timeout_ms: 120000
approval_policy: never
policy:
allow_commands: ["*"]
deny_commands: []
auth:
token: $TASKODE_API_TOKEN
hooks:
after_create: |
echo "workspace created"
before_remove: |
echo "cleanup start"
after_remove: |
echo "cleanup done"📁 项目目录结构
.taskode/
├── data.db
├── logs/
├── workspaces/
├── runs/
└── config.json🔌 API
Public
GET /api/health
Protected(需要 token)
GET /api/tasksPOST /api/tasksPATCH /api/tasks/:idGET /api/runsGET /api/logsGET /api/auditGET /api/v1/stateGET /api/v1/:issueIdentifierPOST /api/v1/refresh
🧪 Testing
npm run test:unit
npm run test:integration
npm run test:e2e
npm test📌 Notes
- Linear 模式需要
LINEAR_API_KEY - App-server 模式需要可运行的 agent 服务
- 未配置 auth token 时 API 默认开放
🧠 设计原则
- Local-first(本地优先)
- 可观测(AI行为透明)
- 可控(人类最终决策)
- 可扩展(任务源 / agent / workflow)
🤝 贡献
欢迎 PR。
📄 License
MIT
🧠 最后一句
不要写代码。 让 AI 写代码。
