hive.terminal-tools-troubleshooting
Agent skill fromaden-hive/hive
Read when a terminal-tools call returned something surprising — empty stdout despite no error, exit_code is null, output_handle came back expired, "too many jobs" / "session busy" / "too many PTYs", warning was set unexpectedly, semantic_status disagrees with exit_code. Diagnostic recipes only — load on demand. Don't preload; the foundational skill covers the happy path.
How to install hive.terminal-tools-troubleshooting
install hive.terminal-tools-troubleshooting
# install the hive pack with the skills CLI
npx skills add aden-hive/hive# or add only this skill to Claude Code: copy the folder
core/framework/skills/_preset_skills/terminal-tools-troubleshooting/
# into
~/.claude/skills/terminal-tools-troubleshooting/ (all projects)
.claude/skills/terminal-tools-troubleshooting/ (one project)
1# Troubleshooting terminal-tools23Recipes for surprising results. Match the symptom to the section.45## Empty `stdout` despite the command "should have" produced output67Possible causes:81. Output went to **stderr** instead. Check `stderr` in the envelope (or use `merge_stderr=True` for jobs).92. Output was **fully truncated** because `max_output_kb` is too small. Check `stdout_truncated_bytes > 0`. Bump `max_output_kb` or paginate via `output_handle`.103. Command produced no output (correct, just unexpected — `silent` flags, no matches).114. Pipeline issue: the last stage of a pipe ran but stdout went elsewhere (`> /dev/null`, redirected via `2>&1`).125. Process is buffering its output and didn't flush before exit. Add `stdbuf -oL` (line-buffered) or `unbuffer` to the command.1314## `exit_code: null`1516| Cause | Other field |17|---|---|18| Auto-backgrounded | `auto_backgrounded: true, job_id: <X>` |19| Hard timeout, process killed | `timed_out: true` |20| Pre-spawn failure (command not found) | `error: ...` set, `pid: null` |21| Still running (in `terminal_job_logs`) | `status: "running"` |2223## `output_handle` returned `expired: true`24255-minute TTL. Either (a) you waited too long, or (b) the store evicted it under memory pressure (64 MB total cap, LRU eviction). Re-run the command.2627To reduce risk: paginate the handle as soon as you receive it, or use `terminal_job_*` for huge outputs (4 MB ring buffer with offsets — no expiry).2829## "too many jobs" / `JobLimitExceeded`30…
Excerpt shown under the repository's Apache-2.0 license.
