Recipe
Tell Kilobat when an agent waits or is done
Without hooks, Kilobat sees an agent only by its traffic and CPU. Hooks tell it the project, and when a run waits for you or is done.
In the app
Open Settings and find Awake & agents.
Turn on Keep the Mac awake while AI agents work.
Look at the session strip in the popover. Each agent run shows as a chip with its state.
With the CLI
For Claude Code, add a command hook to
~/.claude/settings.jsonunder SessionStart, UserPromptSubmit, Notification, Stop, StopFailure and SessionEnd.kilobat agent-event --agent claude --stdin-jsonFor Codex, add this line to
~/.codex/config.toml. It reports done only.notify = ["kilobat", "agent-event", "done", "--agent", "codex", "--json-arg"]For Cline, install the Kilobat plugin.
cline plugin install https://kilobat.app/agents/cline/kilobat.tsTest a hook by hand.
--verbosesays what happened.kilobat agent-event start --agent claude --verboseRead the recorded runs.
kilobat sessions --days 1
Through MCP
Connect the MCP server once with claude mcp add kilobat -- kilobat mcp. For other clients, see the docs. Then an agent can call these tools. Tools that change settings tell the agent to ask you first.
| Tool and arguments | What it does |
|---|---|
list_sessions | Runs with project, state (working, waitingForYou, done, stalled, networkFailed or failed) and the data used. |
Good to know
kilobat agent-eventprints nothing and always exits 0, so it cannot break the agent.- If the app is not running, the events wait in a small file that the app reads when it opens.
- Kilobat reads session IDs, folders and short status text. It never reads prompts or replies.
- Merge these hooks with the hooks that you already have.
Sources
Sources checked on 29 October 2026. Man pages are the ones installed with macOS; open one with man <name> in Terminal.