
Iii Exec
- 7 installs
- 18.6k repo stars
- Updated August 5, 2026
- iii-hq/iii
Run a sequential pipeline of shell commands at iii engine startup, keeping the final command alive for the engine's lifetime with optional file-watch restarts.
About
The iii-exec worker runs an ordered pipeline of shell commands as part of engine startup, holding the final command open as a long-lived process for the engine's lifetime. A developer uses it to let the engine manage the lifecycle of a separate daemon or run prep steps that must succeed before a long-lived server starts.
- Optional watch globs restart the whole pipeline when matching files change
- Startup-only, not a runtime command executor or scheduler
Iii Exec by the numbers
- 7 all-time installs (skills.sh)
- Ranked #3,637 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/iii-hq/iii --skill iii-execAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 7 |
|---|---|
| repo stars | ★ 18.6k |
| Last updated | August 5, 2026 |
| Repository | iii-hq/iii ↗ |
What it does
Run a sequential pipeline of shell commands at iii engine startup, keeping the final command alive for the engine's lifetime with optional file-watch restarts.
Files
iii-exec
The iii-exec worker runs a sequential pipeline of shell commands as part of engine startup. Each entry in the configured exec: array launches as a separate child process and must exit 0 before the next entry starts; the final entry is kept running as a long-lived process for the engine's lifetime. An optional watch: glob list restarts the whole pipeline whenever a matching file changes.
The worker exposes no callable functions and no trigger types — its surface is entirely declarative. There is nothing for an agent to call at runtime; configure exec: (and optionally watch:) on the worker and the engine manages the lifecycle, supervising and shutting the process down alongside itself.
When to Use
- The engine should manage the lifecycle of a separate long-running app or daemon (boot, supervise, shut down together).
- You need prep steps that must succeed in order before a long-lived server starts (for example, install then build then serve).
- During development, the pipeline should restart automatically when source files change (via
watch:).
Boundaries
- Not a runtime command executor — the pipeline runs at engine startup only; there is no function to "run this command now."
- Not a scheduler — use the
iii-crontrigger for recurring jobs;iii-execis one-shot startup plus a single long-lived process. - Entries run sequentially, not in parallel, and do not share working directory or environment; chain dependent steps with
&&inside one entry. - A non-zero exit on any intermediate command stops the pipeline and the long-lived command never starts.
Configuration
exec: string[](required) — sequential pipeline of shell commands. Intermediate entries must exit0; the final entry is held open as the long-lived process.watch: string[](optional) — glob patterns that restart the whole pipeline on file change. Caveat: the watcher matches by root directory plus file extension only — the filename portion is ignored, sosrc/**/*.test.tsmatches every.tsfile undersrc/, not just test files. Files without an extension are never matched. Use**for recursive depth (config/*.jsonwatches only the top level;config/**/*.jsonwatches at any depth).
- name: iii-exec
config:
watch:
- steps/**/*.{ts,js}
exec:
- cd frontend && npm install
- cd frontend && npm run build
- bun run --enable-source-maps index-production.jsThe first two commands run in order and must exit 0; the third stays running for the worker's lifetime. If a prep step fails, the pipeline stops and the engine surfaces the failure.