╔───────────────────────────────────────────╗
│ │
│ __ ___ .___________. │
│ | | / \ | | │
│ | | / ^ \ `---| |----` │
│ .--. | | / /_\ \ | | │
│ | `--' | / _____ \ | | │
│ \______/ /__/ \__\ |__| │
│ │
│ ◇ Supervise the Swarm ◇ │
│ │
╚───────────────────────────────────────────╝JAT——自主代理,是否受监督
特工发货,建议,重复。你监督——或者他们自己运行。
JAT是用于代理开发的完整、自包含的环境。任务管理、代理编排、代码编辑器、git集成、终端访问——所有这些都统一在一个IDE中。连接RSS、Slack、Telegram、Gmail——事件会自动创建任务并生成代理。无需安装插件,无需配置服务,无需组装组件。亲自监督蜂群,或者在你睡觉的时候让它自主运行。


JAT IDE *JAT IDE:统一的代理会话、任务管理和代码编辑器*
______________________________________________________________________
范式转变
Traditional IDE: You write code, tools assist
Copilot IDE: You write code, AI suggests completions
Agentic IDE: Agents write code, you supervise and approve
Autonomous Platform: Events trigger agents, work ships while you sleepJAT支持这四种。亲自管理20多个代理,或连接外部资源,让代理自行生成。
______________________________________________________________________
快速开始
# Install (one command)
curl -sSL https://raw.githubusercontent.com/joewinke/jat/master/tools/scripts/bootstrap.sh | bash
# Restart shell
source ~/.bashrc
# Launch
jat打开http://localhost:3333 → 添加项目→ 任务→ 生成一个代理→ 监督
备选方案(开发商):
git clone https://github.com/joewinke/jat.git ~/code/jat
cd ~/code/jat && ./install.shVPS/远程服务器 (Arch Linux或Ubuntu):
curl -sSL https://raw.githubusercontent.com/joewinke/jat/master/tools/scripts/vps-setup.sh | bash设置一切——swap、Node.js、Tailscale、Claude Code、防火墙、JAT和一个在启动时自动启动并在崩溃时重新启动的systemd服务。通过以下方式访问 http://:3333.
______________________________________________________________________
完整的IDE功能
键盘快捷键
每条路由都支持vim风格 j/k 导航。按 ? 在任何页面上都可以查看完整的快捷方式覆盖。
| 快捷方式 | 功能 |
|---|---|
j / k | 导航 --任何路线上的任何列表、表格或卡片网格 |
Enter | 打开 --所选项目(任务详细信息、文件、会话等) |
? | 快捷方式覆盖 --特定路线的快捷方式参考 |
Cmd+K | 全局搜索 --文件、任务、代理 |
Cmd+Shift+T | 终端 --与代理会话集成 |
Ctrl+S | 保存 --保存当前文件 |
Alt+N | 新任务 --从任何地方创建 |
Alt+E | Epic Swarm --启动并行代理 |
每条路线的完整参考: ide/docs/keyboard-navigation.md.
语音命令
保持 Ctrl+Space 和说话。JAT运行一个两层调度程序:固定短语触发键盘快捷键(亚秒,无LLM);自然语言话语通过LLM路由,该LLM在一个镜头中提取参数并链接动作。
"Create a bug for the login crash and spawn an agent"
→ opens new-task drawer (title="login crash", type=bug)
→ spawns an agent on the new task
"Close the auth task" → confirms, then closes
"Set the auth task to P1 and assign it to Mike" → updates two fields in one call
"Spawn four agents on the triage epic" → opens swarm dialog pre-filled
"Kill the EarlyShore session" → confirms, then kills打开应用内 语音词汇表 (麦克风按钮或 ? overlay)查看您所在页面上的每个可用命令,并附上示例语句。完整指南: ide/docs/voice-commands.md.
代码编辑器(/files)
完整的摩纳哥编辑器(VS Code的引擎):
┌─────────────────────────────────────────────────────────────┐
│ 📁 Files │ 🔀 Git │
├─────────────────────────────────────────────────────────────┤
│ ▼ src/ │ ┌─────┬─────┬─────┐ │
│ lib/ │ │ a.ts│ b.ts│ c.ts│ ← Drag-drop tabs │
│ routes/ │ └─────┴─────┴─────┘ │
│ ▼ tests/ │ ┌──────────────────────────────────────────┐ │
│ │ │ Monaco Editor │ │
│ │ │ • 25+ languages │ │
│ │ │ • Syntax highlighting │ │
│ │ │ • Multi-cursor editing │ │
│ │ └──────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘- 使用右键单击上下文菜单延迟加载文件树
- 具有持久顺序的多文件选项卡
- 键盘导航(F2重命名,删除删除)
- 文件类型图标
Git源代码管理(/files → Git选项卡)
完整的git集成:
┌─────────────────────────────────────────────────────────────┐
⎇ master ↑2 ↓0 [⟳ Fetch] │
├─────────────────────────────────────────────────────────────┤
│ ▼ STAGED CHANGES (3) [− All] │
│ M src/lib/api.ts │
│ A src/lib/auth.ts │
├─────────────────────────────────────────────────────────────┤
│ [ Commit message... ] [✓ Commit] │
├─────────────────────────────────────────────────────────────┤
│ ▼ CHANGES (2) [+ All] │
│ M src/routes/+page.svel te [+] [↻] │
├─────────────────────────────────────────────────────────────┤
│ [↑ Push] [↓ Pull] │
├─────────────────────────────────────────────────────────────┤
│ ▼ TIMELINE │
│ ● abc123 2h ago Add authentication │
│ ○ def456 1d ago Fix login bug │
└─────────────────────────────────────────────────────────────┘- 暂存/取消暂存单个文件或所有文件
- 承诺与
Ctrl+Enter - 带前进/后退指示灯的推/拉
- 带搜索功能的分支切换器
- Diff预览抽屉(单击任何文件)
- 提交包含详细信息的时间表
代理会话(/tasks)
所有正在运行的代理的实时终端输出:
- 实时流媒体输出
- 智能问题UI(代理问题→ 可点击按钮)
- 州徽章:工作、需要输入、审查、已完成
- 将输入直接发送给代理
- 代币使用和成本跟踪
任务管理(/tasks)
JAT任务支持问题跟踪:
- 创建具有优先级的任务(P0-P4)
- 具有子任务生成功能的史诗级工作流
- 依赖关系可视化
- 批量操作(选择多个,添加到史诗)
源代码管理(/source)
完整的提交历史和存储库管理:
- 浏览所有提交的详细信息
- 多选提交用于樱桃选择或还原
- 按消息或作者搜索提交
- 用于任何提交的差异查看器
______________________________________________________________________
代理飞轮
┌──────────────────────────────────────────────────────────────┐
│ │
│ 1. PLAN WITH AI Describe your feature, get PRD │
│ ↓ │
│ 2. /JAT:TASKTREE Convert PRD → structured tasks │
│ ↓ │
│ 3. EPIC SWARM Spawn agents on subtasks │
│ ↓ │
│ 4. PARALLEL WORK Watch agents code simultaneously │
│ ↓ │
│ 5. SMART QUESTIONS "OAuth or JWT?" → click button │
│ ↓ │
│ 6. REVIEW IN /tasks See diffs, approve changes │
│ ↓ │
│ 7. COMMIT & PUSH Stage, message, push │
│ ↓ │
│ 8. AUTO-PROCEED Low-priority tasks complete auto │
│ ↓ │
│ 9. SUGGESTED TASKS Agent proposes next work │
│ ↓ │
│ ╰──────────────── Auto-accept → back to 3 ───────────╯│
│ │
│ ∞ Perpetual motion. Ship continuously. ∞ │
│ │
└──────────────────────────────────────────────────────────────┘______________________________________________________________________
集成和自主触发器
JAT连接到外部源。当事件到达时,会创建任务并生成代理——不需要人工参与循环。
内置集成
| 集成 | 来源 | 示例 |
|---|---|---|
| 电报 | 聊天消息 | 向您的机器人发送请求,代理立即采取行动 |
| Slack | 渠道消息 | 来自#support-spawn代理的团队请求 |
| 简易信息聚合 | 任何RSS/Atom提要 | 监控博客、CI提要、黑客新闻 |
| Gmail | 电子邮件收件箱 | 转发客户端电子邮件,代理处理它们 |
| 自定义 | 插件系统 | 任何API或数据源(塞子.md) |
触发模式
| 模式 | 代理生成时 | 用例 |
|---|---|---|
| 立即 | 即时事件 | 电报:消息JAT,代理现在开始 |
| 延迟 | N分钟/小时后 | 午餐后开始处理早上的电子邮件 |
| 日程 | 在特定时间 | “上午9点处理进料项目” |
| 克龙 | 定期日程 | “每个工作日上午9点,查看PR” |
示例:电报发送代码
1. You message your Telegram bot: "Add dark mode to the settings page"
2. JAT ingest daemon receives the message
3. Task created: "Add dark mode to the settings page" (P1, immediate trigger)
4. Agent spawns automatically, picks up the task
5. Agent writes code, commits, opens PR
6. You wake up to a completed PR任务计划程序
内置的调度守护进程(jat scheduler start)处理cron和一键触发。它轮询任务数据库,为到期任务生成代理,并自动管理重复计划。看 调度程序文档.
自定义集成
使用插件系统构建自己的适配器。看 塞子.md 用于适配器接口。
______________________________________________________________________
路线
| 路线 | 目的 |
|---|---|
/tasks | 代理会话、任务管理、史诗、问题、状态跟踪 |
/files | Monaco编辑器,文件树,阶段性/非阶段性更改 |
/source | 完整的提交历史、樱桃选择、还原、差异 |
/integrations | 外部源连接(RSS、Slack、Telegram、Gmail) |
/servers | 开发服务器控件、任务调度程序管理 |
/config | API密钥、项目机密、自动化规则、快捷方式 |
______________________________________________________________________
是什么让JAT与众不同
| 特性 | 描述 |
|---|---|
| 多代理管理 | 在代码库中同时运行20多个代理 |
| Task → 代理→ 审查 | 从任务到完成的一键式工作流 |
| 智能提问界面 | 代理问题变成了可点击的按钮 |
| Epic Swarm | 在子任务上生成并行代理 |
| 自动继续规则 | 按类型/优先级配置自动完成 |
| 外部集成 | RSS、Slack、Telegram、Gmail将事件馈送到任务中 |
| 自主触发器 | 事件自动生成代理(立即/延迟/计划/定时) |
| 任务调度 | 基于Cron的重复任务和一次性计划生成 |
| 错误恢复 | 故障的自动重试模式 |
| PRD → Tasks | /jat:tasktree 将需求转化为结构化任务 |
| 技能市场 | 安装社区技能,自动同步到所有代理 |
包括完整的Monaco编辑器和git集成,但神奇之处在于代理编排。
______________________________________________________________________
JAT与其他AI编码工具
| 功能 | JAT | 光标 | 风帆 | Cline/Aider |
|---|---|---|---|---|
| 多代理(20+) | ✅ | ❌ | ❌ | ❌ |
| 可视化集成开发环境 | ✅ | ❌ | ❌ | ❌ |
| 任务管理 | ✅ 内置 | ❌ | ❌ | ❌ |
| Epic Swarm(平行) | ✅ | ❌ | ❌ | ❌ |
| 代理协调 | ✅ 代理注册表 | ❌ | ❌ | ❌ |
| 外部集成 | ✅ RSS、Slack、Telegram、Gmail | ❌ | ❌ | ❌ |
| 自主触发器 | ✅ | ❌ | ❌ | ❌ |
| 自动继续规则 | ✅ | ❌ | ❌ | ❌ |
| 代码编辑器 | ✅ 摩纳哥 | ✅ VS代码 | ✅ VS代码 | ❌ |
| Git集成 | ✅ | ✅ | ✅ | 部分 |
| 技能市场 | ✅ 安装并自动同步 | ❌ | ❌ | ❌ |
| Supabase集成 | ✅ 迁移 | ❌ | ❌ | ❌ |
| 100%本地 | ✅ | ❌ 云 | ❌ 云 | ✅ |
| 开源 | ✅ MIT | ❌ | ❌ | ✅ |
JAT并没有试图取代你的编辑器——它是你的代理群的控制塔,无论你是在控制还是睡着了。
______________________________________________________________________
建筑
~/code/jat/
├── ide/ # SvelteKit app (the IDE)
│ └── src/
│ ├── routes/ # /tasks, /files, /source, /integrations, /servers, /config
│ └── lib/
│ ├── components/files/ # FileTree, GitPanel, Editor
│ ├── components/work/ # SessionCard, WorkPanel
│ ├── components/source/ # CommitHistory, DiffViewer
│ ├── components/ingest/ # Integration management UI
│ └── stores/ # State management
├── tools/ # 50+ CLI tools
│ ├── core/ # Database, monitoring
│ ├── mail/ # Agent coordination (am-*)
│ ├── browser/ # Browser automation
│ ├── ingest/ # Feed ingest daemon (RSS, Slack, Telegram, Gmail)
│ ├── scheduler/ # Task scheduling daemon (cron + one-shot)
│ └── signal/ # State sync
├── commands/ # /jat:start, /jat:complete, /jat:tasktree
└── shared/ # Agent documentation______________________________________________________________________
需求
- Node.js 20+
- 终端复用器 (代理会话)
- 克劳德代码 或类似的AI助手
- sqlite3, jq (自动安装)
______________________________________________________________________
认证
不需要API密钥。 JAT使用您现有的AI助手订阅。
大多数编码代理通过自己的订阅进行身份验证-不需要单独的API密钥:
| 代理 | 身份验证方法 | 设置 |
|---|---|---|
| 克劳德代码 | 克劳德Pro/Max订阅 | claude auth |
| Codex CLI | ChatGPT Plus/Pro订阅 | codex login |
| Gemini CLI | 谷歌帐户(包括免费版) | 首次运行会触发OAuth |
| 助手 | 仅限API密钥 | 在env中设置提供程序密钥 |
JAT的内置AI功能(任务建议、化身)使用 自动回退 系统:
- 无烟煤API键 --如果已配置(可选)
- Claude 命令行界面 --通过以下方式退回您的Claude订阅
claude -p
如果你安装了Claude Code并进行了身份验证,那么AI功能就可以开箱即用,无需配置。
______________________________________________________________________
配置
~/.config/jat/projects.json:
{
"projects": {
"myapp": {
"path": "~/code/myapp",
"port": 3000
}
},
"defaults": {
"max_sessions": 12,
"model": "opus",
"scheduler_autostart": true,
"timezone": "America/New_York"
}
}可选: API密钥和项目机密可以在 /config → API密钥选项卡,或存储在 ~/.config/jat/credentials.json:
{
"apiKeys": {
"anthropic": { "key": "sk-ant-..." }
},
"customApiKeys": {
"stripe": { "value": "sk_live_...", "envVar": "STRIPE_API_KEY" }
},
"projectSecrets": {
"myapp": { "supabase_anon_key": { "value": "..." } }
}
}脚本中的访问机密:
jat-secret stripe # Get value
eval $(jat-secret --export) # Load all as env varsIDE设置位于 /config:
- API密钥和自定义机密(可选)
- 每个项目的证书(Supabase、数据库)
- 代理路由规则
- 自动化规则
- 键盘快捷键
______________________________________________________________________
文档
| 文件 | 目的 |
|---|---|
| QUICKSTART.md | 5分钟教程 |
| CLAUDE.md | 完整的技术参考 |
| ide/CLAUDE.md | IDE开发指南 |
| ide/docs/键盘-navigation.md | 键盘快捷键参考 |
| ide/docs/voice-commands.md | 语音命令指南 |
| shared/scheduler.md | 计划程序守护进程引用 |
| 工具/摄取/堵塞.md | 自定义集成插件指南 |
| 共享/ | 代理文件 |
______________________________________________________________________
常见问题
哪些AI助手在工作? 任何基于终端的AI:Claude Code、Aider、Cline、Codex等。
我可以运行多少个代理? 用20+测试。受限于您的机器和API限制,而不是JAT。
我可以使用现有的项目吗? 对。跑 jt init 在任何git仓库中初始化任务跟踪,然后通过以下方式添加项目 /config → 项目选项卡,或使用任务页面上的“添加项目”按钮。
JAT可以处理Slack/Telegram消息吗? 对。摄取守护进程连接到Telegram机器人、Slack频道、RSS提要和Gmail。传入的事件会自动创建任务并生成代理——立即、延迟、计划时间或定时。看 集成.
我可以安排重复任务吗? 对。在任何任务上设置一个cron表达式,调度程序守护进程将自动生成代理。看 调度程序文档.
是否有托管版本? 没有托管服务。JAT在您自己的机器或您自己的VPS上运行——代码永远不会离开您控制的基础设施。
______________________________________________________________________
社区
______________________________________________________________________
贡献
我们欢迎捐款!看 贡献.md 作为指导方针。
贡献者快速入门:
git clone https://github.com/joewinke/jat.git ~/code/jat
cd ~/code/jat/ide
npm install && npm run dev打开一个PR master所有捐款均已获得麻省理工学院的许可。
______________________________________________________________________
学分
- 乔·温克 --创造者
- 代理注册表 --原始Agent Comms的灵感(Dicklesworthstone/mcp_agent_mail)
- 珠子 --原创任务管理灵感(史蒂夫耶格/珠子)
- 马里奥·泽希纳 --对代理人有不同的看法(如果你不需要MCP怎么办?)
- 安德烈·卡帕西 -命名问题(一些强大的外星工具)
- DHH -以开发人员为中心的操作系统(奥马奇)
- 子速率复用器 -终端多路复用器(尼古拉斯万豪酒店)
- 摩纳哥 --代码编辑器引擎(微软)
- SvelteKit 的 --IDE框架(里奇·哈里斯)
- Tailwind CSS --实用程序优先CSS(Adam Wathan)
- 黛西在 --组件库(Pouya Saadeghi)
- Git --版本控制(托瓦兹)
- 简单git --Node.js Git包装器(斯蒂夫·金)
- D3.js --数据可视化(迈克·博斯托克)
- 维特 --构建工具(尤雨溪)
- SQLite --嵌入式数据库(D.理查德·希普)
- TypeScript --类型安全(安德斯·海尔斯伯格)
- 克劳德 --写了很多代码(人类)
______________________________________________________________________
许可证
麻省理工学院-这是我送给所有伟大的人的礼物,他们给了我们所有人如此多的天赋。如果你使用这个软件,用它来制作你回馈开源的东西。
______________________________________________________________________
明星历史

______________________________________________________________________
JAT:监督蜂群——或者让它自主运行。
