CLI reference
ccmon is the command-line client that talks to the local daemon.
Everything the desktop UI exposes is also available here, so you can
stay in your terminal if you prefer.
Available after installing the .deb.
ccmon install [--no-approval] [--settings <path>]
Merge ccmon hooks into ~/.claude/settings.json.
ccmon uninstall [--settings <path>]
Remove ccmon hooks from settings.json.
ccmon doctor Check daemon, hooks, claude/notify-send binaries.
ccmon daemon [--port N] Run daemon in the foreground.
ccmon list [--all] [--json] List monitored sessions (one line each).
ccmon tail [<session_id>] Stream events live (polls /events).
ccmon approvals [--json] List pending permission requests.
ccmon approve <id-prefix> Approve a request (8-char prefix is enough).
ccmon deny <id-prefix> [-m "reason"] [--interrupt]
Deny a request; optional message + interrupt flag.
ccmon summary <id-prefix> [--no-refresh]
Print the smart summary of a session
(uses claude -p; ~10–30 s on first call).
Install / lifecycle
ccmon install
Merges entries into ~/.claude/settings.json. Existing user hooks are
preserved. Each ccmon entry is tagged "_ccmon": true.
| Flag | Effect |
|---|---|
--no-approval | Skip the blocking PermissionRequest hook. Event hooks are still installed. |
--settings <path> | Target a non-default settings file. |
ccmon uninstall
Removes only entries tagged "_ccmon": true.
ccmon doctor
One-shot health check of daemon, settings, and binaries. See Configuration → Health check for the expected output.
ccmon daemon
Runs the daemon in the foreground. Useful for development and one-off runs; for production use the systemd unit (see Running the daemon).
Sessions
ccmon list
Lists monitored sessions, one line each.
| Flag | Effect |
|---|---|
--all | Include ended sessions, not just active ones. |
--json | Machine-readable output for scripts. |
ccmon tail [<session_id>]
Streams events live (polls /events). With no argument, tails all
sessions. With a session ID prefix, scopes to one session.
Approvals
ccmon approvals [--json]
Lists pending permission requests.
ccmon approve <id-prefix>
Approves a request. An 8-character prefix is enough — the daemon disambiguates.
ccmon deny <id-prefix> [-m "reason"] [--interrupt]
Denies a request. The optional -m message is delivered back to the
agent. --interrupt also sends a session interrupt so the agent stops
cleanly instead of replanning around the deny.
Summaries
ccmon summary <id-prefix>
Prints a smart summary of a session. Uses claude -p under the hood
(~10–30 s on first call, then cached).
| Flag | Effect |
|---|---|
--no-refresh | Print the cached summary if any; don't trigger a new claude -p call. |
Examples
# All running sessions, refreshed view:
ccmon list
# What is session abc12345 doing right now?
ccmon summary abc12345
# An agent is paused waiting for permission — approve from this shell:
ccmon approvals
ccmon approve abc12345
# Tail live events from one session only:
ccmon tail abc12345
# Deny with a message and interrupt the agent:
ccmon deny abc12345 -m "writes outside project" --interrupt