Agent Tracker

AI 编程任务的本地调度台 —— 把「让 AI 做一个功能」变成可恢复、可跳转、可追踪的 tmux 工作流

🖥 tmux 🤖 AI 📦 Git

1 它是什么

agent-tracker 不是 AI 模型,不是 Claude、Codex 或 opencode。它是底层工作台,把以下东西串成一个完整流程:

📂

隔离 Repo 副本

每个功能独立工作目录,不干扰主分支

🪟

标准 tmux 布局

AI / Git / Run 三个 pane,一个 window 搞定

📡

任务状态追踪

active → waiting → completed 状态流转

🔔

通知 & 跳转

状态栏提醒 + 系统通知 + 自动 acknowledge

🎛

Agent Palette

一键调起面板:创建、销毁、切换、管理

♻️

可恢复

工作间持久化,随时 resume 回到上次状态

2 工作台布局

执行 agent start my-feature 后得到的 tmux window:

tmux window: my-feature

┌──────────────────────────────┬─────────────────────┐
│  AI paneGit pane            │
│  自动进入 agent repo          │  lazygit             │
│  默认启动 op                  │  看 diff / commit    │
├──────────────────────────────┼─────────────────────┤
│                              │  Run pane            │
│                              │  dev server / flutter│
│                              │  测试运行             │
└──────────────────────────────┴─────────────────────┘

它会记住的元信息:

agent 名字 原始 repo 工作目录 tmux session/window/pane id pane 角色分配 任务状态 通知开关

3 文件结构

在 git repo 中启动 agent 后自动创建:

project/
├── .agent.yaml ← 当前 repo 的 agent 配置
└── .agents/
    └── my-feature/
        ├── agent.json ← feature、port、device、url 等运行信息
        ├── logs/ ← bootstrap / run 相关日志
        └── repo/ ← 独立 repo 副本

4 核心组件

agent CLI

入口命令位于 ~/.config/agent-tracker/bin/agent

sh agent init # 初始化 repo agent start my-feature # 创建新工作间 agent resume my-feature # 恢复已有工作间 agent list # 查看所有 agent agent destroy my-feature# 删除工作间 agent tracker state # 查看 tracker 状态

tracker-server

后台服务,通过 Unix socket 接收事件并广播任务状态:

start_task finish_task update_task acknowledge delete_task notify notifications_toggle
tracker state 输出示例
json // agent tracker state 输出示例 {"kind":"state","message":"Active 0 · Waiting 0 · 5:02PM"}

tmux 集成

以下 tmux 事件会自动触发 agent-tracker:

client attached pane focus in pane died select window session changed

所以它能感知你切到了哪个 pane、某个 agent pane 是否已被查看、哪个任务可以自动 acknowledge、状态栏何时刷新。

5 快捷键

快捷键功能
M-s打开 Agent Palette
M-a聚焦 AI pane
M-g聚焦 Git pane
M-r聚焦 Run pane
M-m跳到最新通知 pane
M-M跳回上一个来源 pane
prefix + P开关 push notifications

M- = Mac 上的 Option · prefix = Ctrl-s

6 Agent Palette

M-s 打开 tmux popup,日常操作最方便的入口:

7 和 AI 客户端的关系

agent-tracker 是底座,AI 客户端是上层。本机 wrapper:

op opencode wrapper
se opencode Search agent
cl Claude wrapper
co Codex wrapper

8 理想工作流

启动 agent → 你运行 agent start
创建工作台 → agent-tracker 构建 tmux 三 pane 布局
AI 开始编码 → AI pane 中运行 op / claude / codex
标记 active → AI 工作中,状态变为活跃
完成 / 等待 → AI 完成或需要你响应,标记 waiting / completed
通知提醒 → tmux 状态栏或系统通知告知你
自动 acknowledge → 你切到 pane 后自动确认

9 Flutter / Web 项目

如果 repo 含 pubspec.yaml,会被识别为 Flutter 项目,默认行为:

🌐 Web Server

device 默认 web-server

🔌 端口分配

从 9100 开始自动分配

📝 agent.json

自动生成运行配置

🛠 Helper Scripts

生成辅助脚本

这说明它不是通用 tmux launcher,而是针对 Flutter/Web + AI 编程流做过定制。

10 使用指南

sh # 第一次在 repo 中使用 agent init # 创建一个新功能工作间 agent start login-fix # 回到已有工作间 agent resume login-fix # 查看已有 agents agent list # 删除某个 agent agent destroy login-fix
💡 心智模型

不要把它理解成「另一个 AI 工具」。更准确的理解:

agent-tracker = AI 编程任务的本地调度台

它管工作区、tmux 布局、任务状态、通知、跳转和恢复;AI 客户端只负责在其中一个 pane 里真正写代码。