termio-device
See and drive the sibling agent sessions running alongside you on this machine via the…
Diagnose a termio hang, beachball, crash, or 'it froze again' from the evidence macOS and termio actually leave behind — live process samples, crash and CPU-burn reports, the unified log, the daemon's session roster — then redact the bundle and file it as a GitHub issue. Invoke
$ npx -y skills add termio-sh/termio --skill termio-bug-report --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/termio-bug-reportContext preview
The summary Claude sees to decide when to auto-load this skill.
Diagnose a termio hang, beachball, crash, or 'it froze again' from the evidence macOS and termio actually leave behind — live process samples, crash and CPU-burn reports, the unified log, the daemon's session roster — then redact the bundle and file it as a GitHub issue. Invoke
name: termio-bug-report description: "Diagnose a termio hang, beachball, crash, or 'it froze again' from the evidence macOS and termio actually leave behind — live process samples, crash and CPU-burn reports, the unified log, the daemon's session roster — then redact the bundle and file it as a GitHub issue. Invoke when the user says 'termio froze', 'it hangs', 'beachball', 'spinning wheel', 'it crashed', 'does termio have logs', 'help me file a bug', 'collect the logs', '卡死了', '又卡住了', '转圈', '崩溃了', 'termio 有日志吗', '帮我定位问题', '帮我报个 bug'."
Two jobs, in this order: work out what actually broke, then turn that into an issue someone can act on. Skipping the first half produces "termio froze on my Mac", which no one can fix.
Ask this first, in one line, and wait for the answer.
**If the app is currently beachballing, do not let the user force-quit it.** The main-thread stack that explains the freeze exists only while the process is alive. Force-quitting destroys the single most valuable piece of evidence, and it cannot be recovered afterwards from any log.
Capture it immediately:
./skills/termio-bug-report/scripts/collect.sh --minutes 60
The script samples every live termio and termiod process first, before it touches anything slower. It prints the bundle directory it created; everything below works on that directory. It needs no privileges and never copies `pair.token`.
If the freeze is already over, run the same command — the crash, CPU-burn, and unified-log evidence survives it, only the live stack is gone.
Read `manifest.md` first, then in this order — stopping as soon as something explains the symptom:
1. **`reports/index.md`** — one line per crash / CPU-burn report macOS wrote. A crash here usually ends the investigation on its own. 2. **`sample-*.txt`** — where each process's main thread actually is. 3. **`environment.md`** — versions, running processes, agent CLIs, memory. 4. **`unified-log-termio.txt`** — termio's own trail. 5. **`unified-log-system.txt`** — what the system said about the process. 6. **`daemon/tombstones.json`** — how sessions ended, when the complaint is "a session froze / vanished" rather than "the app froze".
`references/signatures.md` has the reading guide for each artifact and a table of every prior termio hang and crash with its root cause. **Read it before writing a diagnosis** — most reports match one of them, and naming the prior bug is worth more than a fresh theory.
Two things to keep honest:
are not recoverable after the fact. Say so rather than implying the daemon was silent.
pinned agent CLI is an agent bug, not a termio bug. Check before filing.
State the conclusion with the artifact that supports it, and say what would disprove it. "Probably a rendering issue" is not a diagnosis.
The bundle already knows the versions, the OS, the hardware, the crash, and what was running. Do not ask for any of it. Ask only:
Keep it to the ones the diagnosis actually turns on. Four questions is a maximum, not a target.
./skills/termio-bug-report/scripts/redact.py <bundle> ./skills/termio-bug-report/scripts/redact.py <bundle> --check
The first pass rewrites in place and prints what it matched. The second scans and exits non-zero if anything still looks sensitive. **Run both.** A rule that matched nothing looks exactly like a rule that was never needed, and only the scan tells them apart.
Private repository and directory names are not covered by default — they are ordinary paths. Ask the user whether any project path in the bundle is private, and pass each one:
./skills/termio-bug-report/scripts/redact.py <bundle> --path /Users/you/work/client-repo
`--check` takes `--path` too, and will flag the name if it survived.
Then show the user what is about to be published: the file list, and the actual text of anything you will paste inline. Do not attach a bundle whose `--check` is not clean. If a file cannot be made safe, drop it and say in the issue that it was withheld.
Make sure `gh` works before drafting, so a broken CLI is not discovered after the issue text exists:
command -v gh >/dev/null || brew install gh gh --version gh auth status || gh auth login
`gh auth login` is interactive — the user has to run it themselves. Hand them the command rather than trying to drive it.
Then check for a duplicate, because a comment on the open issue is worth more than a second one:
gh issue list --repo termio-sh/termio --state all --limit 20 --search "beachball hang freeze"
Write the issue against `.github/ISSUE_TEMPLATE/bug-report.yml` — What happened / Steps to reproduce / termio version / macOS version / Agent involved. Follow `VOICE.md`: direct and concrete, no AI attribution anywhere in the body.
Structure it as:
frame that supports it, and how confident you are.
crash line, the main-thread stack, ten log lines). For the full bundle, put it in a gist and link it — a wall of stack trace inline makes the issue unreadable:
gh gist create --public=false <bundle>/sample-termio-*.txt <bundle>/environment.md
**Show the user t
A terminal-first agentic development environment for agentic coding. Build for CLI/TUI agent. Runtime for Coding Agent, Tmux alternative
Repo: termio-sh/termio
See and drive the sibling agent sessions running alongside you on this machine via the…
See and drive the sibling agent sessions running alongside you in this Termio project via the…
Reverse-lookup glossary that turns a vague description of a web animation or motion effect…
Drive the running termio app via AppleScript / System Events to reach a UI state (focus the…
Apple's approach to interface design and fluid, physical motion, translated for the web. Use…
Drive App Store Connect from the terminal with the `asc` CLI — TestFlight builds, groups,…