checkin

checkin is a command for Claude Code from cirwel/unitares. It costs 12 tokens per session (1,682 once invoked), scanned A, original, Apache-2.0.

A command for manually checking in with UNITARES governance during the current turn. Governance here means the rules and records used to track an agent's identity, state, and work.

In plain words
What is it for?
Use it to inspect local session context, establish a behavioral baseline, and report the agent's current work or progress to the governance system.
Why use it?
Regular check-ins help establish what the current agent is doing and prevent confusion when cached session information comes from an earlier process.

Command for Claude Code

Written for Claude Code: a Claude Code command (commands/*.md). Also seen: mentions Codex.

Good fit Use it to inspect local session context, establish a behavioral baseline, and report the agent's current work or progress to the governance system.

Compare 6 commands from other repositories ↓
Install with agentmods
npx agentmods add commands/cirwel/unitares/checkin
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/cirwel/unitares

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for checkin

README.md
[![agentmods](https://agentmods.dev/badge/commands/cirwel/unitares/checkin/github.svg)](https://agentmods.dev/commands/cirwel/unitares/checkin)
Your own site
<a href="https://agentmods.dev/commands/cirwel/unitares/checkin"><img src="https://agentmods.dev/badge/commands/cirwel/unitares/checkin/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for checkin

Your own site · 80×15
<a href="https://agentmods.dev/commands/cirwel/unitares/checkin"><img src="https://agentmods.dev/badge/commands/cirwel/unitares/checkin.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 12 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,682 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00012 $0.01682
Opus 5.5 $0.00005 $0.00673
Sonnet 5.5 $0.00002 $0.00336
Haiku 4.5 $0.00001 $0.00168

Measured yesterday against content hash 47cccdab4af1, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

checkin scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

commands/checkin.md · 105 lines

How it starts

The opening of the file, as written. The whole thing — 105 lines — stays where its author put it; the contents beside it link to each section on GitHub.

The canonical copy of this command lives in the companion unitares-governance-plugin repo (commands/checkin.md). This copy adapts helper paths to this repo's scripts/client/session_cache.py and deliberately keeps repo-specific guidance the plugin copy does not yet carry: the response_mode="compact" default, the explanation that an argless identity() is gated to a fresh mint, the cache-token rule, the --json payload on the slot stamp, and no reset-milestone step (this repo's helper has none). Sections marked <!-- repo-specific: keep on plugin sync --> must survive a future sync from the plugin.

Before calling tools, check for slot-scoped session caches in the current workspace.

Use the shared helper in this repo:

  • scripts/client/session_cache.py list --workspace "$PWD" — slot inventory sorted newest-first; pick the entry whose slot matches your current client_session_id, or the newest entry if you do not have one yet
  • scripts/client/session_cache.py get --slot=<slot> session — read that specific cache

A read without --slot returns the legacy flat session.json, which under S20 is read-only-legacy — do not write back to it and do not assume it corresponds to this process-instance.

If a matching cache exists:

  • use uuid as the expected local identity anchor, not proof by itself
  • rely on the active session binding or client_session_id for ordinary check-ins
  • do not pass continuity_token to process_agent_update; it is reserved for explicit PATH 0 ownership rebinds

If current binding is unclear, call identity(client_session_id=<your client_session_id>) to inspect the active binding. Never call identity() with no arguments: a call carrying no proof argument is gated to a fresh mint, so it reports on a newly created identity instead of yours. Trust the answer only when identity_assurance.caller_proven is true.

If you must rebind to a cached UUID, include a matching live continuity_token from the same process response: identity(agent_uuid=<uuid>, continuity_token=<token>, resume=true). Never take a continuity_token from any cache file, whether a legacy v1/flat session.json or a v2 slot cache: only a token returned to this live process counts as proof. v2 slot caches do not persist it, and a token found in a legacy file is not a credential.

If this is a fresh process and no ownership proof is available, use /governance-start to mint a fresh identity rather than bare UUID resume. A cached uuid is not a parent by default; /governance-start explains when a handoff justifies declaring it.

If no local continuity state exists and the current identity is unclear, use /governance-start first.

Call process_agent_update once for this explicit /checkin. Outside an explicit request, check in only at a meaningful milestone when you also hold a judgment the substrate cannot infer: a self-correction, revised belief, material change in uncertainty or complexity, or handoff assessment after substantive work. A boundary before or after high-risk work qualifies only when it meets both conditions. The hooks already record per-turn substrate observations; do not manufacture an agent report to echo them.

Inputs:

  • response_text: concise, secret-free statement of your judgment and the relevant work
  • complexity: estimate 0.0-1.0
  • confidence: optional, usually omit it. Any value mints a tactical prediction that is scored into the fleet calibration curve, so pass one only when you are stating a genuine belief about how your work will hold up, never a habitual number
  • use the active session binding or client_session_id; do not auto-inject continuity_token
  • use response_mode="compact" by default for Codex; reserve response_mode="mirror" for drift, guide/pause verdicts, or diagnostic review

Guidelines:

  • There is no fixed time-, turn-, or tool-count cadence. Completion, generated output, a reminder, or task exit alone does not call for a check-in.
  • One check-in may cover a coherent unit of work; a milestone or decision point also needs an agent-held judgment the substrate cannot infer.
  • If recent local edit context exists, use it to improve the summary, but do not report raw file churn as if it were real progress.
  • If deterministic results already happened in the workflow, mention them concretely instead of speaking in generalities.

Read the full file on GitHub · 105 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday Changed · +2 tokens per session 47cccdab4af1
  2. 2d ago Changed · +26 lines 932debafd215
  3. 16d ago Changed · +25 lines 1e6edf98c37b
  4. 1mo ago Changed d4f7eab7ec87
  5. 1mo ago Changed 3fd7824f1976
  6. 1mo ago Changed dee9ddfa3bac
  7. 2mo ago First seen · 54 lines · 10 tokens per session scan A 2099286d78c4

Subscribe to this mod's changes

checkin is a command published in the GitHub repository cirwel/unitares (6 stars, last pushed today), licensed Apache-2.0. It adds 12 tokens to every session and 1,682 once invoked, about $0.0000 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

checkin compared with commands from other repositories

checkin next to 6 commands from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
checkincirwel/unitaresCommand6todayApache-2.0A12Claude Code
statusbar-styleleeguooooo/claude-code-usage-barCommand3896d agoMITA16Claude Code
icpg-bootstrapalinaqi/maggyCommand71124d agoMITA0Claude Code
coder-eval-implement-planUiPath/coder_evalCommand156yesterdayApache-2.0A22Claude Code
lians-recallLians-ai/LiansCommand174d agoApache-2.0A19Claude Code
memory-statusRichmondAlake/memorizzCommand7814d agononeA9Claude Code
sugar-taskroboticforce/sugarCommand100yesterdaynoneA14Claude Code