✓ Verified 💻 Development ✓ Enhanced Data

Claude Code Legacy

Trigger Claude Code development tasks in observable tmux sessions with stable startup, progress visi

Rating
4.4 (253 reviews)
Downloads
1,114 downloads
Version
1.0.0

Overview

Trigger Claude Code development tasks in observable tmux sessions with stable startup, progress visibility.

Complete Documentation

View Source →

Claude Code Orchestrator (tmux-first)

Use tmux-based orchestration for long coding tasks to avoid silent hangs and make progress observable.

Standard workflow

  • Create prompt file (avoid long shell quote issues).
  • Start a dedicated tmux session.
  • Launch claude --dangerously-skip-permissions in interactive mode.
  • Paste prompt into Claude.
  • Require callback command in prompt (via wrapper):
bash {baseDir}/scripts/wake.sh "..." now
  • Share socket/session attach command with user.
  • On completion, review diff + lint/build + risk summary.

Start command

bash
bash {baseDir}/scripts/start-tmux-task.sh \
  --label "gallery-detail-polish" \
  --workdir "/Users/yaxuan/.openclaw/workspace/work/active/02-gallery-ops" \
  --prompt-file "/Users/yaxuan/Downloads/gallery-website-design-system.md" \
  --task "参考这个修改我当前的画廊官网,注意优先打磨细节和质感,对整体结构展示先不用大改。"

Monitor commands

bash
# attach
bash {baseDir}/scripts/monitor-tmux-task.sh --attach --session <session>

# capture last 200 lines
bash {baseDir}/scripts/monitor-tmux-task.sh --session <session> --lines 200

Task overview

List all running cc-* tasks at a glance — useful for "butler-style" summaries.

bash
# Human-readable one-liner per task
bash {baseDir}/scripts/list-tasks.sh

# Structured JSON array (pipe to jq, feed to OpenClaw, etc.)
bash {baseDir}/scripts/list-tasks.sh --json | jq .

Options:

  • --lines — number of trailing pane lines to capture per task (default 20).
  • --socket — tmux socket path (default $TMPDIR/clawdbot-tmux-sockets/clawdbot.sock).
  • --json — emit JSON array instead of human table.
  • --target ssh --ssh-host — list sessions on a remote host.
Each entry contains: label, session, status, sessionAlive, reportExists, reportJsonPath, lastLines, updatedAt.

Combine with OpenClaw to generate a periodic butler summary:

text
# In an OpenClaw prompt / cron:
bash {baseDir}/scripts/list-tasks.sh --json | \
  openclaw gateway call summarize-tasks --stdin

Rules

  • Prefer interactive Claude in tmux for visibility (not long claude -p one-shot for large tasks).
  • Always include callback via wrapper bash {baseDir}/scripts/wake.sh "..." now in prompt.
  • Startup script now uses robust submit (ready-check + multi-Enter retry + execution-state detection) to avoid "prompt pasted but not submitted".
  • If no pane output for >2-3 min, inspect and restart session.
  • Kill stale Claude processes before restart.
  • Always return: session name + attach command + current status.

Status check (zero-token)

If wake not received within expected time, check task status before consuming tokens:

bash
bash {baseDir}/scripts/status-tmux-task.sh --label <label>

Output: STATUS=running|likely_done|stuck|idle|dead|done_session_ended

  • likely_done / done_session_ended → proceed to completion loop
  • running → wait
  • stuck → inspect (attach or capture-pane)
  • dead → session lost, run complete-tmux-task.sh fallback
  • idle → Claude may be waiting for input, inspect

Completion loop (mandatory)

When wake event "Claude Code done (...)" arrives, complete this loop immediately:

  • Acknowledge user within 60s: "已收到完成信号,正在评估改动".
  • Preferred path: read completion report generated by Claude Code task:
  • /tmp/cc-
  • If report missing, run local fallback immediately:
  • bash {baseDir}/scripts/complete-tmux-task.sh --label
  • Mandatory deep-read: read full JSON/MD report before replying.
  • Read context before replying:
  • Read completion report file(s) (/tmp/cc-)
  • Read recent tmux transcript (monitor script) to capture what Claude actually did/failed/tried
  • Incorporate the latest user constraints from current chat
  • Then provide assistant analysis (not a fixed template):
  • what was actually completed
  • what is reliable vs uncertain
  • key risks/tradeoffs in the user's context
  • concrete next-step options
  • Ask explicit decision from user if scope drift exists.
Do not stop at wake-only notification. Wake is trigger, not final delivery.

Anti-pattern to avoid

  • Forbidden: one-line fixed reply after wake without reading transcript + report.
  • Forbidden: only relaying "done + report path" without analysis in user context.
  • Forbidden: rigid templated output that ignores current conversation context.

Hard guardrails added

  • Prompt now enforces “no wake without report”:
  • task must write /tmp/cc- + .md
  • final wake must include report=
  • Recovery command exists for deterministic fallback:
  • scripts/complete-tmux-task.sh reproduces evidence and emits structured report
  • Delivery SLA remains mandatory:
  • wake received -> ack <= 60s -> report

Installation

Terminal bash

openclaw install claude-code-legacy
    
Copied!

💻Code Examples

bash {baseDir}/scripts/monitor-tmux-task.sh --session <session> --lines 200

bash-basedirscriptsmonitor-tmux-tasksh---session-session---lines-200.txt
## Task overview

List all running `cc-*` tasks at a glance — useful for "butler-style" summaries.

bash {baseDir}/scripts/list-tasks.sh --json | jq .

bash-basedirscriptslist-taskssh---json--jq-.txt
Options:
- `--lines <n>` — number of trailing pane lines to capture per task (default 20).
- `--socket <path>` — tmux socket path (default `$TMPDIR/clawdbot-tmux-sockets/clawdbot.sock`).
- `--json` — emit JSON array instead of human table.
- `--target ssh --ssh-host <alias>` — list sessions on a remote host.

Each entry contains: **label**, **session**, **status**, **sessionAlive**, **reportExists**, **reportJsonPath**, **lastLines**, **updatedAt**.

Combine with OpenClaw to generate a periodic butler summary:

openclaw gateway call summarize-tasks --stdin

-openclaw-gateway-call-summarize-tasks---stdin.txt
## Rules

- Prefer interactive Claude in tmux for visibility (not long `claude -p` one-shot for large tasks).
- Always include callback via wrapper `bash {baseDir}/scripts/wake.sh "..." now` in prompt.
- Startup script now uses robust submit (ready-check + multi-Enter retry + execution-state detection) to avoid "prompt pasted but not submitted".
- If no pane output for >2-3 min, inspect and restart session.
- Kill stale Claude processes before restart.
- Always return: session name + attach command + current status.

## Status check (zero-token)

If wake not received within expected time, check task status before consuming tokens:
example.sh
bash {baseDir}/scripts/start-tmux-task.sh \
  --label "gallery-detail-polish" \
  --workdir "/Users/yaxuan/.openclaw/workspace/work/active/02-gallery-ops" \
  --prompt-file "/Users/yaxuan/Downloads/gallery-website-design-system.md" \
  --task "参考这个修改我当前的画廊官网,注意优先打磨细节和质感,对整体结构展示先不用大改。"
example.sh
# attach
bash {baseDir}/scripts/monitor-tmux-task.sh --attach --session <session>

# capture last 200 lines
bash {baseDir}/scripts/monitor-tmux-task.sh --session <session> --lines 200
example.sh
# Human-readable one-liner per task
bash {baseDir}/scripts/list-tasks.sh

# Structured JSON array (pipe to jq, feed to OpenClaw, etc.)
bash {baseDir}/scripts/list-tasks.sh --json | jq .
example.txt
# In an OpenClaw prompt / cron:
bash {baseDir}/scripts/list-tasks.sh --json | \
  openclaw gateway call summarize-tasks --stdin

Tags

#coding_agents-and-ides #code

Quick Info

Category Development
Model Claude 3.5
Complexity One-Click
Author yaxuan42
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install claude-code-legacy