$worker
shell
v0.3.5Unix shell + filesystem worker — exec with allowlist/denylist/timeout/output caps and background jobs; fs::ls|stat|mkdir|rm|chmod|mv|grep|sed|read|write with host jail, denylist, size caps, and sandbox-target forwarding
- macOS: arm64 · x64
- Linux: arm64 · armv7 · x64
skill doc
skills/exec_bg.md
Spawning a long-running command as a background job
When to use
- Builds, long greps, watchers; anything that does not fit inside
max_timeout_ms. - Keeping the calling turn responsive while the command runs.
- "Run cargo build and report when it is done": pair with
shell::statuspolling.
Notes
- Same payload shape as
shell::exec. The same per-field deserialisers catch wrong-type fields up front. - Allowlist and denylist gate the spawn the same way; a blocked argv comes back as the trigger
Errand the job is never inserted into the table. - Host-targeted background jobs ignore
timeout_ms(preserves the unbounded host-bg semantic). Onlyshell::killor natural exit ends them. - Sandbox-targeted background jobs honour
timeout_ms; the value is clamped throughcfg.resolve_timeoutand forwarded tosandbox::exec. - Concurrency cap is
cfg.max_concurrent_jobs(default 16). Past the cap, the call returnsErrand the spawned child is killed before the trigger response. - Sandbox-backed jobs cannot be hard-killed:
shell::killflips the record tokilledimmediately, but the in-VM process keeps running until itstimeout_msexpires (orsandbox::stoptears the VM down).