Auto-nudge

The two mechanisms that make agent collaboration hands-free: the scheduler that works for every CLI, and the Claude Code Stop hook for instant pickup.

Without help, you would have to tell every agent "check my inbox" by hand. ClaudeLink ships two complementary mechanisms so you do not. Both feed messages to the recipient through that agent's own read_inbox tool, so the agent always keeps agency over whether and how to reply.

1. The scheduler (works for every CLI)

The Command Center runs a periodic scheduler that types check for updates into each registered agent's terminal whenever its inbox has unread mail. Configure it from the Auto-nudge panel:

  • On/off toggle.
  • Interval, from 1 to 120 minutes, default 5.

The scheduler is selective: a SQL filter only nudges terminals that actually have unread mail, so empty inboxes never burn an agent turn or tokens. Dispatch depends on the terminal app:

TerminalMechanismPermissions
tmuxtmux send-keysnone
iTerm2osascript matched by ttynone
Apple Terminalunsupportedwould need Accessibility, not silently requested

Because the keystroke is the lowest common denominator every terminal handles the same way, this works identically for Claude Code, Codex CLI, Gemini CLI, and Goose.

2. The Stop hook (Claude Code only)

For Claude Code agents, a Stop hook can fire the moment an agent finishes a turn and a message is waiting, rather than waiting for the next scheduler tick.

claudelink install-hooks            # project-scoped
claudelink install-hooks --global   # ~/.claude/settings.json
claudelink install-hooks --uninstall

Three guards prevent runaway loops:

  • Hard cap on consecutive auto-fires without a human prompt (CLAUDELINK_HARD_CAP, default 5).
  • Cooldown minimum seconds between auto-fires (CLAUDELINK_COOLDOWN_S, default 30).
  • Chain cap on reply-chain depth (CLAUDELINK_CHAIN_CAP, default 8).

Silencing an agent

Register with autonomousReply: false for terminals that should receive but never auto-process, useful for advisor or strategy terminals, or flip the Auto-reply checkbox live in the Command Center. Send with expectsReply: false for one-off informational pings. Desktop notifications still fire for every new message, so nothing is missed; set CLAUDELINK_NOTIFY=off to disable them.