skulk

Your agent sleeps.
The event wakes it.

An OpenCode agent schedules a wake‑up and ends its turn. A small daemon watches for the event, then queues one message back into the session.

skulk when pr-checks --repo acme/app --pr 42 --do "Fix any failures."

How it works

  1. WatchThe agent runs skulk and ends its turn.
  2. WaitThe daemon checks for the event. The session uses no tokens.
  3. WakeOne message lands in the session with the result.

Triggers

in · at
After a duration, or at a time of day
when gh-run
A GitHub Actions run completes
when pr-checks
Every check on a pull request finishes
when npm
A package version is published
when exits
A blocking command exits
when idle
Other agent sessions finish
when capacity
The machine has room for heavy work
poll
Any command's output changes, matches or succeeds
skulk in 2h --do "Check whether the deploy finished."

skulk when npm --package @opencode/client --tag dev --changes \
  --do "Bump to the new dev version."

skulk when idle ses_perf ses_arch --do "Both agents are done. Review their branches."

skulk poll --every 2m --succeeds --do "Staging is up. Run the smoke tests." \
  -- curl -fsS https://staging.example.com/health

Install

Needs Bun and OpenCode. Or build it from source.

bun add -g @kitlangton/skulk

skulk launchd > ~/Library/LaunchAgents/dev.kitlangton.skulk.plist
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/dev.kitlangton.skulk.plist
skulk status

Agent skill

Teaches any coding agent when to schedule a wake instead of sleep-polling.

npx skills add kitlangton/skulk
skulk Kit Langton