tomo: Instructions file for Claude Code

CLAUDE.md

tomo CLAUDE.md is an instructions file for Claude Code from shuaiyuan17/tomo. It costs 3,956 tokens per session, scanned A, original, MIT.

Project instructions for Tomo, a personal AI assistant that runs as a Node.js background service and communicates through messaging apps such as Telegram and iMessage.

In plain words
What is it for?
Use them when building, testing, linting, or changing Tomo’s command-line entry points, agent behavior, sessions, notifications, and related Node.js code.
Why use it?
They give a coding agent the project’s commands, file structure, architecture, and development conventions so changes fit the existing codebase.

Instructions file for Claude Code

Written for Claude Code: PreToolUse hook event. Also seen: mentions CLAUDE.md.

This is shuaiyuan17/tomo's own configuration. It tells Claude Code how to work on tomo itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything tomo configures →

Reuse

Borrowing it

Nothing to install: this file belongs to shuaiyuan17/tomo. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/shuaiyuan17/tomo/main/CLAUDE.md
Clone the repo
git clone --depth 1 https://github.com/shuaiyuan17/tomo

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 tomo CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/shuaiyuan17/tomo/claude-md/github.svg)](https://agentmods.dev/instructions/shuaiyuan17/tomo/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/shuaiyuan17/tomo/claude-md"><img src="https://agentmods.dev/badge/instructions/shuaiyuan17/tomo/claude-md/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 tomo CLAUDE.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/shuaiyuan17/tomo/claude-md"><img src="https://agentmods.dev/badge/instructions/shuaiyuan17/tomo/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 3,956 This file is loaded in full into every session.
When invoked 3,956 The same file — it is already loaded in full.
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.03956 $0.03956
Opus 5 $0.01978 $0.01978
Sonnet 5 $0.00791 $0.00791
Haiku 4.5 $0.00396 $0.00396

Measured yesterday against content hash 52c7e5702725, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade A, and why

tomo CLAUDE.md 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.

CLAUDE.md · 164 lines

How it starts

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

CLAUDE.md

What is Tomo

Tomo is a personal AI assistant that lives in messaging apps (Telegram, iMessage). It runs as a long-running Node.js daemon on the user's machine, powered by the Claude Agent SDK. Users interact with it exclusively through chat — there is no web UI or terminal UI at runtime.

Published to npm as tomo-ai. Installed globally via npm install -g tomo-ai.

Commands

npm run build                  # tsc — compile src/ → dist/
npm run dev                    # tsx watch, foreground with hot reload
npm run lint                   # eslint (src/ + tests/)
npm test                       # vitest — full suite
npx vitest run tests/<file>    # single test file (shared fixtures in tests/helpers/)

Architecture Overview

src/
  cli.ts              # Entry point — commander CLI
  cli/                # Subcommands: start, config, backup, lcm, cron, sessions, etc.
  agent.ts            # Agent orchestrator — ingress, turn dispatch, notifications, context nudges
  agent/              # Turn execution internals:
    turn-runner.ts          # Runs a turn with retry + NO_REPLY silent-reply policy
    live-session-manager.ts # Owns LiveSession lifecycle — create/resume, reset-and-retry
    live-session.ts         # Wraps SDK query() streaming; steering merge/promotion
    delivery-pipeline.ts    # Streams + finalizes outbound messages to channels
    commands.ts             # Chat slash commands (/new, /model, /summon, /login, ...)
    scaffold-filter.ts      # Strips training-scaffold leaks from outbound text
    inbound-markers.ts      # Inbound marker formatters + outlet guard for fabricated ones
    context-nudge.ts        # Pure decision logic for context-usage nudges
    sdk-options.ts          # Builds SDK query options (model, MCP servers, auto-compact policy)
    audience.ts             # DM-session audience tracking (private DM vs summoned group)
    inbound-batcher.ts      # Coalesces messages that pile up behind an in-flight turn
    proactive-send.ts       # send_message service (direct + delegate modes)
    #  plus: session-queue, pending-notes-queue, send-target, permissions, text-utils, claude-login
  router.ts           # IdentityRouter — session key resolution, allowlists, summons
  people.ts           # People registry — person records, alias/handle resolution, auto-binding
  config.ts           # Config from ~/.tomo/config.json + env vars (zod-validated)
  tomo-event.ts       # <tomo-event> envelope for harness-composed messages
  auth.ts             # Anthropic auth resolution (env key > config; subscription or API key)
  channels/           # Channel implementations (Telegram, iMessage via the imsg CLI)
  sessions/           # Persistence (store.ts), key helpers (keys.ts), summon-store.ts
  mcp/                # tomo-internal in-process MCP server (internal-server.ts) + tool factories
                      #   (cron-, people-, recall-, pet-tools); external-config.ts, oauth.ts
  cron/               # Scheduler (30s poll → agent.handleCronMessage) + store (data/cron/jobs.json)
  lcm/                # Context mgmt — compact, stats, prune-tools, blocks (rollups), runner
  continuity.ts       # ContinuityRunner — periodic heartbeats for autonomous behavior
  watch/              # `tomo watch` mission-control TUI: bus.ts (in-process event bus emitters
                      #   publish to), server.ts (NDJSON over ~/.tomo/watch.sock), snapshot.ts,
                      #   client.ts, tui/ (Ink app — feed, vitals sidebar, chat line, log tail)
  metrics/            # Prometheus exporter (exporter.ts, /metrics on 127.0.0.1:9464) + NDJSON
                      #   activity log (activity-log.ts) — both WatchBus subscribers, gated by
                      #   config.metrics; Grafana stack in contrib/observability/
  costs.ts, models.ts, litellm.ts        # /cost reports; model aliases; LiteLLM gateway modes
  jsonl.ts, fs-utils.ts, runtime-paths.ts # JSONL readers; atomic writes; SDK session file paths
  file-lock.ts        # withFileLockSync — advisory cross-process lock for the JSON stores
  version.ts          # VersionChecker — weekly npm registry check, daytime-only notification
  workspace/          # System prompt builder (SOUL.md + AGENT.md + IDENTITY.md + memory)
  logger.ts           # Pino structured logging

Read the full file on GitHub · 164 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 · +1 lines · +464 tokens per session 52c7e5702725
  2. 5d ago Changed · +192 tokens per session dfb57f663d49
  3. 10d ago First seen · 163 lines · 3,300 tokens per session scan A d9f422569a81

Subscribe to this mod's changes

tomo CLAUDE.md is an instructions file published in the GitHub repository shuaiyuan17/tomo (5 stars, last pushed today), licensed MIT. It adds 3,956 tokens to every session, about $0.0198 per session on Opus 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

Other instructions, from other repositories

next.js AGENTS.md

AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.

vercel/next.js · 7,296 tokens

codex AGENTS.md

AGENTS.md instructions for openai/codex, covering rust/codex-rs, the codex-core crate, code review rules, crate api surface and model visible context.

openai/codex · 5,153 tokens

vscode buildNext.instructions.md

Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).

microsoft/vscode · 6,785 tokens

vscode oss-third-party-notices.instructions.md

Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, applying the notice (cutover) and fallback chain (never fail the build).

microsoft/vscode · 5,001 tokens

langchain AGENTS.md

AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.

langchain-ai/langchain · 4,469 tokens

deepseek-harness AGENTS.md

AGENTS.md instructions for deepseek-ai/deepseek-harness, covering agents.md, pre-stable apis and released session data, repository layout, commands and host sandbox failures.

deepseek-ai/deepseek-harness · 3,735 tokens