• 请不要在回答技术问题时复制粘贴 AI 生成的内容
sdfw23xd
V2EX  ›  程序员

Vigil:让 Claude Code 在我睡觉的时候自己跑队列任务 —— 撞墙自动续、跑完自动 commit

  •  
  •   sdfw23xd · May 22 · 2080 views
    This topic created in 53 days ago, the information mentioned may be changed or developed.

    写代码的时候想刷 Claude Code ,但 5h 窗口动不动就打爆、网络抽筋一两次任务就死、人还得盯着, 所以做了个轮子,叫 Vigil (守夜人)—— 别人休息的时候保持警觉。

    简单说,你 vigil add 几条 prompt ,vigil start 一开就一条条 spawn claude -p 帮你跑。 每个任务跑在独立的 git worktree 里(~/.vigil/worktrees/<id>/,源仓库永远不会被动到), 分支叫 vigil/<id>-<slug>。跑完按 Conventional Commits 自动 commit + push 到 origin 。 早上起来你看到的是一摞等审的分支 —— 想要的 merge ,不要的 vigil discard 删掉。

    几个自己觉得有用的设计:

    • 5h 配额真实可见claude -p 的 stream-json 只发个鸡肋的 overage 标记,看不到真 5h 用量。 Vigil 跑一个长驻 PTY sidecar 通过 Claude Code 的 statusLine 拿到 Anthropic 真给的 five_hour / seven_day 数据,每个任务的 report 都带快照。

    • 撞墙不预测:只在 server 把 limiter 翻成 blocked(窗口越界)或 rejected(请求被 429 ) 时才暂停,resume_at = limiter.resets_at + 60s,直接用 Anthropic 自己给的数据。 不猜阈值、不预暂停。到点恢复时 --resume <session_id> 接回同一个 Claude session, 对话历史完整保留,不会丢上下文重新扫工程。

    • 瞬时失败自动重试:「 Stream idle timeout - partial response received 」这种网络层抽筋 自动重试 3 次( 30s / 60s / 120s backoff ),同样 --resume 接回同 session ,prompt cache 还热, 每次重试几分钱。第 4 次还失败才标 FAILED 。

    • 永远不自动合并:任务终态永远是一个等你审的分支。让无人值守 agent 自动 merge 是 丢系统信任的捷径,review 恰好是人类擅长的事。

    • Self-summary:跑完 --resume 让 Claude 自己出一份结构化 JSON 总结(决策 / 假设 / 跳过 / 合并风险 / 置信度),cache 命中几分钱。

    • Scope hook:任务可声明 --scope-write 'src/auth/**',PreToolUse hook 拦截 Edit/Write/ MultiEdit/NotebookEdit ,越界写文件被结构化拒绝。

    • DAG 任务依赖--depends-on t001 自动从前置任务的分支末梢 fork ,串行重构能拿到上一步成果。

    • Web 仪表盘vigil web 起一个本地 SPA ,列表 + 筛选 + 单任务详情 + 删除 / 清空。

    技术栈 Python 3.11+ / Click / SQLite / FastAPI 。需要本地装好 claude CLI (已登录)、git 2.30+。 MIT license 。

    v0.1 预发布,功能完整正在试用,欢迎拍砖。

    GitHub: https://github.com/jzb1006/claude-vigil

    14 replies    2026-05-26 21:58:47 +08:00
    KOMA1NIUJUNSHENG
        1
    KOMA1NIUJUNSHENG  
       May 22
    我很好奇你们每天这么会有那么多东西可以做,这些灵感都是哪里来的,能让 ClaudeCode 一直有活干
    lisxour
        2
    lisxour  
       May 22
    @KOMA1NIUJUNSHENG 哈哈哈,好问题
    sdfw23xd
        3
    sdfw23xd  
    OP
       May 22
    @KOMA1NIUJUNSHENG 哈哈哈 好问题 有时候项目比较紧的时候 下班可以让任务挂起来自己跑 明天起来 review 合并代码
    HetFrame
        4
    HetFrame  
       May 22
    @sdfw23xd #3 然后老板觉得这就是你本来能完成的工作量
    sdfw23xd
        5
    sdfw23xd  
    OP
       May 22
    @HetFrame 你被开除了.jpg
    gap
        6
    gap  
       May 22 via iPhone
    -p 现在不是不给订阅用户用了吗?
    Adven
        7
    Adven  
       May 22
    Codex 能支持吗?或者 Claude Code 使用的第三方模型服务提供商的是否能支持呢
    Rorschachx
        8
    Rorschachx  
       May 22
    真不错,已 star
    nullyouraise
        9
    nullyouraise  
       May 22
    claude -p 的用量自 6 月 15 日起已经从订阅额度中拆出来独立计算了
    https://support.claude.com/en/articles/15036540-use-the-claude-agent-sdk-with-your-claude-plan
    sdfw23xd
        10
    sdfw23xd  
    OP
       May 22
    @Adven Codex 还没支持 ,claude -p 命令如果能用理论上都可以的。
    sdfw23xd
        11
    sdfw23xd  
    OP
       May 22
    @gap 此功能将于 2026 年 6 月 15 日起在 Pro 、Max 、Team 和 Enterprise 套餐中提供。使用 API 密钥的 Claude Platform 账户不享受任何优惠。按需付费模式保持不变。
    Adven
        12
    Adven  
       May 23
    我目前尝试的方案是通过 多 Agent 队列任务调度程序客户端 => 多 Agent 队列任务云端调度服务 => 定时 IM 消息 => 飞书群 => OpenClaw => 多智能体 => GitHub Cli => 编码/测试/提交代码/发起 PR/解决冲突 的路线驱动,不依赖特定模型供应商和 CodingAgent ,后续 ACP 协议成熟后,流程可以进一步简化;
    sdfw23xd
        13
    sdfw23xd  
    OP
       May 25
    @Adven 你的这个实现就已经违背了无人值守的宗旨了吧 理论上比如深夜或者假期期间 不应该受到这些的打扰
    Adven
        14
    Adven  
       May 26
    @sdfw23xd 想不受打扰完全可以屏蔽飞书群消息或者关闭手机或者选择一个不会感觉被打扰的时间来安排队列任务呀,调度服务会自动监督任务队列的执行和队列中每个任务的状态流转,任务都是操作的人自己下达的,时间也是自己定的,不明白违背哪一点?你说的打扰具体又是指的什么呢?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5406 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 79ms · UTC 07:15 · PVG 15:15 · LAX 00:15 · JFK 03:15
    ♥ Do have faith in what you're doing.