Skip to content

Persistent Code Terminal

Verified

Persistent per-project coding terminal (tmux). Run Codex CLI (codex exec) inside a stable session; mobile/SSH friendly.

527 downloads
$ Add to .claude/skills/

About This Skill

# persistent-code-terminal

A persistent coding terminal for OpenClaw. It creates a tmux session per project:

`<project-name>-code-session`

  • This makes terminal-first AI coding (Codex CLI / Claude Code / any CLI tool) reliable and mobile/SSH friendly:
  • detach/reattach without losing output
  • keep shell state across turns
  • keep long-running tasks alive (dev server, watch mode, etc.)

OpenClaw natural-language routing

When user intent is "use natural language to drive Codex CLI in this repo", route through this skill first.

  • Intelligent auto-trigger:
  • Routing toggle: `openclaw.config.dev.autoCodeRouting` (default `false`).
  • If enabled, route coding workflow messages via:
  • - `{baseDir}/bin/persistent-code-terminal-route.sh "<user message>"`
  • The route script applies:
  • - intent detection (code change / fix / test / build / commit / push / codex phrases)
  • - safety filtering (must be git repo + action verbs; bypass on `不要执行,只分析`)
  • - execution chain:
  • - `persistent-code-terminal-auto.sh --max-retries 3 --instruction "<message>"`
  • - `persistent-code-terminal-summary.sh --lines 120`
  • - fallback for missing deps (`tmux`/`codex`) with doctor guidance.
  • Multi-project routing:
  • One message can include multiple project tasks split by newline / `;` / `;`
  • Supported patterns:
  • - `给 <project> 项目 <instruction>`
  • - `给<project>项目:<instruction>`
  • - `为 <project> 修复/增加/修改 ...`
  • - `<project> 项目 ...;<project> 项目 ...`
  • Execution is serial per project:
  • - `start.sh --project <project>`
  • - `auto.sh --max-retries 3 --instruction "<instruction>"`
  • - `summary.sh --lines 120 --json`
  • Invalid/unknown project tasks are reported as failed without blocking other tasks.
  • Trigger shortcuts (recommended):
  • If user message starts with `codex `, treat the remaining text as instruction.
  • Execute:
  • - `{baseDir}/bin/persistent-code-terminal-codex-exec.sh "<remaining text>"`
  • Then report with:
  • - `{baseDir}/bin/persistent-code-terminal-status.sh`
  • - `{baseDir}/bin/persistent-code-terminal-summary.sh --lines 120`
  • Preferred execution pattern in chat-driven runs:
  • `start.sh` (or implicit auto-create from `send.sh`)
  • `codex-exec.sh "<instruction>"` for Codex-driven work
  • `status.sh` / `summary.sh` for concise progress reporting

If user says "检查项目/继续会话/跑测试并总结", use this skill scripts instead of asking user to type long shell commands.

Core model (must follow)

start → send → read → decide

  • 1) Start/ensure session:
  • `{baseDir}/bin/persistent-code-terminal-start.sh`
  • 2) Send ONE command:
  • `{baseDir}/bin/persistent-code-terminal-send.sh "<command>"`
  • - Appends a pane sentinel on completion: `__PCT_EXIT_CODE__N`
  • - Supports: `--timeout <seconds>`, `--dry-run`, `--phase <name>`
  • 3) Read output:
  • `{baseDir}/bin/persistent-code-terminal-read.sh`
  • - Parses the latest sentinel and updates `.pct-state.json`
  • 4) Check state quickly (optional):
  • `{baseDir}/bin/persistent-code-terminal-status.sh`
  • `{baseDir}/bin/persistent-code-terminal-summary.sh --lines 120`
  • `{baseDir}/bin/persistent-code-terminal-doctor.sh`
  • `{baseDir}/bin/persistent-code-terminal-list.sh` (list `*-code-session`)
  • `{baseDir}/bin/persistent-code-terminal-switch.sh --project <name>`
  • State file:
  • `.pct-state.json` (current project directory)
  • Fields: `projectDir`, `session`, `lastCommand`, `lastExitCode`, `phase`, `updatedAt`
  • Structured output:
  • `{baseDir}/bin/persistent-code-terminal-read.sh --json`
  • `{baseDir}/bin/persistent-code-terminal-summary.sh --json`
  • `{baseDir}/bin/persistent-code-terminal-auto.sh --json`

Codex-first workflow (one-shot)

If Codex CLI is installed as `codex`, prefer:

  • `{baseDir}/bin/persistent-code-terminal-codex-exec.sh "<instruction>"`
  • Default behavior uses:
  • - `codex exec --full-auto --sandbox workspace-write --cd <current-dir> "<instruction>"`
  • You can pass additional flags before the instruction:
  • - `{baseDir}/bin/persistent-code-terminal-codex-exec.sh --json -o /tmp/codex.json "<instruction>"`
  • Set `PCT_CODEX_NO_DEFAULT_FLAGS=1` to disable default flags.
  • Example:
  • `{baseDir}/bin/persistent-code-terminal-codex-exec.sh "Implement feature X. Ensure build and tests pass. Commit and push to current branch. Do NOT force push."`

Safety

  • Never `git push --force` unless user explicitly requests.
  • Keep secrets out of terminal output.
  • Prefer feature branches; avoid direct pushes to main/master unless explicitly requested.
  • For network/privileged actions (for example `git push`), follow active Codex approval/sandbox policy.

Use Cases

  • Generate professional written content tailored to specific requirements
  • Analyze data and content to extract actionable insights
  • Generate structured output from specifications or requirements
  • Run automated tests to verify functionality and catch regressions
  • Track and manage session state for workflow continuity

Pros & Cons

Pros

  • +Well-adopted with 1,053+ downloads showing reliable real-world usage
  • +Clean CLI interface integrates well with automation pipelines and AI agents
  • +Well-structured approach ensures consistent and reliable results
  • +Integrates smoothly into existing workflows

Cons

  • -Focused scope means it may not cover edge cases outside its primary use case
  • -May require adaptation for non-standard project configurations

FAQ

What does Persistent Code Terminal do?
Persistent per-project coding terminal (tmux). Run Codex CLI (codex exec) inside a stable session; mobile/SSH friendly.
What platforms support Persistent Code Terminal?
Persistent Code Terminal is available on Claude Code, OpenClaw.
What are the use cases for Persistent Code Terminal?
Generate professional written content tailored to specific requirements. Analyze data and content to extract actionable insights. Generate structured output from specifications or requirements.

100+ free AI tools

Writing, PDF, image, and developer tools — all in your browser.

Next Step

Use the skill detail page to evaluate fit and install steps. For a direct browser workflow, move into a focused tool route instead of staying in broader support surfaces.