Vigil:让 Claude Code 在我睡觉的时候自己跑队列任务 撞墙自动续、跑完自动 commit - V2EX
请不要在回答技术问题时复制粘贴 AI 生成的内容
sdfw23xd

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

  •  
  •   sdfw23xd 8h 1m ago 910 views

    写代码的时候想刷 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

    9 replies    2026-05-22 14:54:54 +08:00
    KOMA1NIUJUNSHENG
        1
    KOMA1NIUJUNSHENG  
       7h 35m ago
    我很好奇你们每天这么会有那么多东西可以做,这些灵感都是哪里来的,能让 ClaudeCode 一直有活干
    lisxour
        2
    lisxour  
       7h 28m ago
    @KOMA1NIUJUNSHENG 哈哈哈,好问题
    sdfw23xd
        3
    sdfw23xd  
    OP
       7h 20m ago
    @KOMA1NIUJUNSHENG 哈哈哈 好问题 有时候项目比较紧的时候 下班可以让任务挂起来自己跑 明天起来 review 合并代码
    HetFrame
        4
    HetFrame  
       7h 15m ago
    @sdfw23xd #3 然后老板觉得这就是你本来能完成的工作量
    sdfw23xd
        5
    sdfw23xd  
    OP
       7h 4m ago
    @HetFrame 你被开除了.jpg
    gap
        6
    gap  
       4h 6m ago via iPhone
    -p 现在不是不给订阅用户用了吗?
    Adven
        7
    Adven  
       3h 38m ago
    Codex 能支持吗?或者 Claude Code 使用的第三方模型服务提供商的是否能支持呢
    Rorschachx
        8
    Rorschachx  
       3h 35m ago
    真不错,已 star
    nullyouraise
        9
    nullyouraise  
       2h 19m ago
    claude -p 的用量自 6 月 15 日起已经从订阅额度中拆出来独立计算了
    https://support.claude.com/en/articles/15036540-use-the-claude-agent-sdk-with-your-claude-plan
    About     Help     Advertise     Blog     API     FAQ     Solana     5314 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 80ms UTC 09:14 PVG 17:14 LAX 02:14 JFK 05:14
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86