Tooluck logoTooluck
SKILL.md

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)

core/framework/skills/_preset_skills/terminal-tools-troubleshooting/SKILL.md

Apache-2.0Full file
1# Troubleshooting terminal-tools
2
3Recipes for surprising results. Match the symptom to the section.
4
5## Empty `stdout` despite the command "should have" produced output
6
7Possible 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.
13
14## `exit_code: null`
15
16| 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"` |
22
23## `output_handle` returned `expired: true`
24
255-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.
26
27To 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).
28
29## "too many jobs" / `JobLimitExceeded`
30…

Excerpt shown under the repository's Apache-2.0 license.

More skills in hive

Newsletter

Join the Community

Subscribe to our newsletter for the latest news and updates