Agent visibility for Claude Code — see what your agents are doing, and how you respond.
Sentinel is a local-first plugin for Claude Code. It installs as an MCP server plus two prompt hooks, and gives you visibility into agent sessions on three surfaces:
.sentinel.json file.Three things run, on different triggers. It helps to keep them separate:
UserPromptSubmit hooks. The probe hook is gated to ~10 min, the drift hook to ~30 min (randomized). On most messages nothing happens — the interval simply hasn't elapsed.Everything is logged locally, per workspace, under ~/.sentinel/workspaces/<id>/. Two Claude Code windows in different repos never share a timer or overwrite each other's state.
Because hook fires are silent by design, "I don't see it firing" is the expected experience — not a fault. To confirm Sentinel is alive, call sentinel_status: it shows whether the hooks are registered, when the last probe fired, what has been drawn and scored, and when the next one is due. The installer also runs a self-test, so a fresh install gets immediate confirmation rather than silence.
sentinel_status — proof-of-life: hooks, last fire, activity, next due.sentinel_get_next_probe / sentinel_record_probe_response — the agent draws and answers a probe.sentinel_review_probes — this session's probes with pass/fail verdicts.sentinel_probe_history — every probe + verdict for this workspace, across sessions.sentinel_report_drift / sentinel_recent_drift_reports — file and read drift signals.sentinel_operator_scorecard — the mirror of how you responded to drift.git clone https://github.com/kandikandikandi/sentinel.git
cd sentinel
bash scripts/install.sh
Requires Node 18+ and the Claude Code CLI. The installer registers the MCP server and both hooks, runs a self-test, and stores everything locally under ~/.sentinel/ — there is no Sentinel server and no account to create. Start a new Claude Code session, then run sentinel_status to confirm it's live.
Pass/fail verdicts and the operator scorecard use an LLM judge, which calls the Anthropic API with your own key (ANTHROPIC_API_KEY, or anthropic_api_key in config/org-config.json). It runs on Haiku, so it costs fractions of a cent per probe. This is the only thing that leaves your machine — set scoring_enabled: false to keep Sentinel fully local; probes and drift signals still log, just ungraded.
Engineers, eng managers, and security folks who want visibility into what their Claude Code agents actually do under pressure — and an honest mirror of how they themselves respond when an agent pushes back.