跳到正文
cccskills
免费在 GitHub 公开

hive.terminal-tools-job-control

Run builds, tests, and other long commands in the background while continuing other work. Explains how to read new log output, check completion, send input, and stop processes using the available platform controls.

中文简介正在准备中。当前显示英语简介。

原文查看原文说明

Use when launching anything that runs longer than a minute, anything that streams logs, anything you want to keep running while doing other work — or when terminal_exec auto-backgrounded on you and returned a job_id. Teaches the start→poll→wait pattern with terminal_job_logs offset bookkeeping, bounded blocking polls, platform-specific process control via terminal_job_manage capabilities, and the hard rule that jobs die when the terminal-tools server restarts. Read before calling terminal_job_start, or right after terminal_exec auto-backgrounded.

查看安装方法

适用场景

  • Running long builds or tests in the background
  • Monitoring development servers and streaming logs
  • Taking over an automatically backgrounded command
  • Sending input to a running job or stopping it

包含的文件(2)

  • SKILL.md5.6 KB
  • references/signals.md2.3 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Background job control

Background jobs are how you do things that take time without blocking your conversation. Three tools cover the surface: terminal_job_start, terminal_job_logs, terminal_job_manage.

When to use a job

  • Builds, deploys, long tests
  • Processes you want to monitor (streaming a log file, a dev server)
  • Anything that auto-backgrounded from terminal_exec (you have a job_id; pivot to this skill's idioms)

For one-shot work expected to finish quickly, terminal_exec is simpler. The auto-promotion mechanic in terminal_exec is your safety net — start with terminal_exec, take over with this skill if needed.

Lifecycle

terminal_job_start(command, ...)
  → { job_id, pid, started_at }

terminal_job_logs(job_id, since_offset=0, max_bytes=64000)
  → { data, offset, next_offset, status: "running"|"exited", exit_code, ... }

# Repeat with since_offset = previous next_offset until status == "exited"
# Or block once with wait_until_exit=True:
terminal_job_logs(job_id, since_offset=N, wait_until_exit=True, wait_timeout_sec=30)
  → blocks server-side until exit or timeout

After exit, the job is retained for inspection (terminal_job_manage(action="list")) until evicted by FIFO (50 most recent exits kept).

Offset bookkeeping — the only rule that matters

The job's output lives in a 4 MB ring buffer per stream. Each call to terminal_job_logs returns:

  • data — bytes between since_offset and next_offset
  • next_offset — pass this as since_offset on your next call
  • truncated_bytes_dropped — non-zero when your since_offset was older than the ring's floor (you fell behind)

Always carry next_offset forward. Don't replay from 0 — that's an offset reset, you'll see the same data twice and miss the part that fell off.

When truncated_bytes_dropped > 0, the buffer evicted N bytes between your last call and now. Treat it as a signal that the job is producing output faster than you're consuming. Either poll more often or accept the gap and read from next_offset going forward.

merge_stderr — interleaved or separate

merge_stderr=False  → two streams, request "stdout" or "stderr" by name
merge_stderr=True   → one stream ("merged"), order preserved

Pick merge_stderr=True when:

  • The job's logs are designed to be read together (most servers, build tools)
  • You don't need to distinguish "this was stderr"

Pick merge_stderr=False when:

  • stderr is genuinely error-only and stdout is data
  • You'll process them differently

Signal escalation

First query the actions implemented on the server's platform:

terminal_job_manage(action="capabilities")
# Returns platform, supported_actions, signals (action → semantics), note.

On POSIX, request signal_int, wait and inspect the job, then use signal_term if needed. signal_term gives the process group up to 2 seconds before forced cleanup; signal_kill forces termination immediately. Cleanup in response to SIGINT/SIGTERM depends on the application.

On Windows, signal_term and signal_kill both forcefully terminate the job process tree. Neither invokes application cleanup handlers. signal_int / Ctrl-C and the other POSIX signals are unsupported and return unsupported_action with the supported actions. If a program has a documented shutdown command on stdin, that can be used before forced termination.

After signaling, check exit with terminal_job_logs(job_id, wait_until_exit=True, wait_timeout_sec=2).

Stdin

terminal_job_manage(action="stdin", job_id=..., data="some input\n")
terminal_job_manage(action="close_stdin", job_id=...)

For tools that read stdin to EOF, close_stdin after writing flushes them. For interactive tools that read line-by-line, just write each line.

Take-over: when terminal_exec auto-backgrounds

When terminal_exec returned auto_backgrounded: true, job_id: <X>, the process is already in the JobManager with its output flowing into the ring buffer. Your transition is seamless:

# Already saw the start of output in terminal_exec's stdout/stderr.
# Pick up reading where the env left off — use the byte count of the
# initial stdout as your since_offset, OR just request tail output:
terminal_job_logs(job_id="job_xxx", tail=True, max_bytes=64000)

Or block until exit and grab everything:

terminal_job_logs(job_id="job_xxx", since_offset=0, wait_until_exit=True, wait_timeout_sec=30)

Hard rules

  • Jobs die when the server restarts. The desktop runtime restarts terminal-tools when Hive restarts. There's no re-attach. nohup does not escape managed process-tree cleanup; durable services need a separate service manager.
  • Server-wide hard cap on concurrent jobs (TERMINAL_TOOLS_MAX_JOBS, default 32). Past the cap, terminal_job_start returns an error. Wait for jobs to exit or kill old ones.
  • No cross-restart output. Output handles and ring buffers are in-memory only.

See references/signals.md for the full signal catalog.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Troubleshoot browser automation when clicks, typing, scrolling, or page snapshots fail on complex websites. Inspect page structure and errors, apply waits or alternative interaction methods, and verify the fix on both problematic and simple pages.

中文简介正在准备中。当前显示英语简介。

  • Fix scrolling that misses a feed’s scrollable container
  • Investigate clicks and text entry that have no effect
  • Handle stalled or outdated page snapshots
aden-hive/hive1.1万2026年10月20日 更新

Automate an existing Chrome session through hive-browser commands. Covers page inspection, screenshot-based clicks, text entry, and result checks, including controls hidden inside nested web components and recovery steps for connection timeouts.

中文简介正在准备中。当前显示英语简介。

  • Fill in web forms through Chrome
  • Click visible controls missing from page snapshots
  • Check that a rich-text editor accepted input
aden-hive/hive1.1万2026年10月20日 更新

Create charts for numeric data and diagrams for processes or relationships. Explains how to choose ECharts or Mermaid, apply clear formatting, and use chart_render to display the result in chat and save a downloadable PNG.

中文简介正在准备中。当前显示英语简介。

  • Comparing revenue across regions or products
  • Showing trends across multiple metrics
  • Turning workflows or system relationships into diagrams
aden-hive/hive1.1万2026年10月20日 更新

Track shared work across AI agents using a SQLite database. The skill claims tasks, records progress and evidence for each step, skips completed work, and checks required procedures before marking a task complete.

中文简介正在准备中。当前显示英语简介。

  • Assigning work from a shared queue to multiple agents
  • Resuming tasks while skipping completed steps
  • Checking required procedures before task completion
aden-hive/hive1.1万2026年10月20日 更新

Preserve essential information during long agent tasks by extracting URLs, IDs, relevant fields, and conclusions into working notes. It also specifies where to record task handoff details before older tool results leave the agent’s context.

中文简介正在准备中。当前显示英语简介。

  • Keep source URLs and key excerpts during research
  • Preserve API fields and IDs needed later
  • Record analysis conclusions before context pruning
aden-hive/hive1.1万2026年10月20日 更新

Handle failed tool calls with a clear recovery process. The skill distinguishes temporary problems from input or setup issues, chooses whether to retry or change approach, and records failures so unsuccessful tasks are not silently lost.

中文简介正在准备中。当前显示英语简介。

  • Deciding whether to retry a failed tool call
  • Correcting inputs after setup or validation errors
  • Switching approaches after repeated tool failures
aden-hive/hive1.1万2026年10月20日 更新

查看 aden-hive 的全部技能

报告此技能的问题