Say it once, anywhere.

Capture it from any page, shape it with Claude Code, hand it to Codex, and see which rules held. Skills, rules, plans, mockups: each lives on one page that you, your team and your agents build on.

npm install -g mossbear
Get started for free

Know what Mossbear sends before you connect. See what syncs.

1 of 4, Comment. A plan in the Mossbear dashboard. One line about retrying failed payments has a comment beside it: three retries can charge a card twice, so retry only on a timeout, and only once.2 of 4, Reply. Under the comment, a reply from a Claude Code agent: one retry, on a timeout only, and a decline is never retried. It is updating the plan now.3 of 4, Edit. The agent’s new version of the plan. The line now says retry once on a timeout, and the changed words are marked. The comment notes the page changed from version 1 to version 2.4 of 4, Resolved. The thread resolved by the agent, with its note: payments now retry once, on a timeout only.
  1. Comment
  2. Reply
  3. Edit
  4. Resolved

You explained it to Claude Code this morning.Now you’re explaining it to Codex.

Get on the same page.Your agents too.

How it works

Comment right on it.

Point at the exact line, in a plan or inside a mockup. Nobody has to explain which part you meant.

A checkout mockup running on its page in the Mossbear dashboard. The Pay button is highlighted, and the comment beside it, from you, asks to say what happens if the card is declined, right under the button.

Switch agents, keep what you agreed.

One copy reaches every agent you use, in any repo, kept in git or out of it. Skills can go machine-wide, and Claude Code and Codex can open any page from a folder with no repo.

mossbear init
dashboardUrl unset — falling back to https://app.mossbear.io
created ~/.mossbear/config.json
wrote .mossbear/config.json — project proj_8f2c1d47a9b30e56
derived from this repo's root commit — commit the file so every clone agrees
Nothing detected here that `init` can wire — using the default:
Claude Code → .claude/settings.json
created .claude/settings.json
5 hooks: PostToolUse, PostToolUseFailure, Stop, SessionEnd, SessionStart
This hook installs the current mossbear release before the first turn of
every session, on this machine as well as in rebuilt ones — that is how a
breaking release reaches a repo whose hooks still name the old commands.
`mossbear init --no-auto-update` rewrites the entry without the install
clause; remove the SessionStart entry from .claude/settings.json to drop the
hook altogether.
created .agents/
created .claude/skills/ — mossbear, mossbear-context, mossbear-cli, mossbear-installer
= MCP install skipped; agent tools were not connected by this run
claude mcp add --scope user mossbear -- mossbear mcp
Done. Next steps:
mossbear login connect this machine to your account
prints a code you approve in the browser; `mossbear
report --token <token>` still works
mossbear link adopt this repo's 2 existing guide files
mossbear guides active list cached guides
mossbear doctor verify your environment
mossbear what-syncs show what leaves this machine
Real output, in a repo that already had a CLAUDE.md and a .cursorrules. Nothing was uploaded.
  • Claude Code
  • Codex
  • Cursor
  • Copilot
  • Antigravity CLI
  • OpenCode
  • Anything that reads AGENTS.md

Your rules reach every one of them. Grading covers Claude Code, Codex and OpenCode today.

Fix the page, not the next chat.

See which rules held in each session. When one slips, a finding lands on the page, and your agent fixes it there.

A house rules guide in the Mossbear dashboard. Beside the rule about renaming exports, a Mossbear finding says agents rename exports without searching for the old name first, seen in 2 sessions, with the evidence behind it, an Accept button that hands it to the agent, and your reply.

Know what leaves your machine

Mossbear prepares session evidence on your device, then grades it in the cloud. Guidance and context sync separately.

Full raw transcript files stay on your device during session sync. The CLI reads them locally to prepare excerpts and usage counts.

Usage analytics

See how your agent sessions use tokens.

  • Token counts, models and providers
  • Skill names and the tokens used to load them
  • Session identifiers, completion state and CLI connection details

Session grading

Give the grader evidence to check against your guidance.

  • Action types, one-line summaries, command text and file paths
  • Rule-file paths and hashes, without their contents
  • Redacted user turns, assistant excerpts and closing summaries
  • The commit and branch where a session ended

Excerpts exclude tool-result bodies and recognized code blocks. Code or diffs outside those blocks can remain. Pattern redaction is not a guarantee.

Guidance and context

Keep the content you link or publish in sync.

  • Selected guide files and supported files belonging to selected skills
  • Context captures
  • Edited subscribed documents and configured published paths can upload automatically

Content uploads carry file contents. Transcript filtering does not apply to them.

Grading and drafting through OpenRouter use no-training, zero-data-retention endpoints.

Synced content is not end-to-end encrypted: our servers and model providers need readable evidence for hosted grading.

Processing, retention and deletion details

See the session fields and automatic upload rules

Automatic content uploads

In a repo subscribed to a document bundle, mossbear complete can push back subscribed documents you edited locally, even with --no-actions. Recent activity from another session or the bundle's write settings can block it. Conflicting server edits are left for you to resolve by default.

If the repo config declares published paths, their contents on the repo's published branch (main by default) upload automatically when a session sees that branch move. Your working copy and feature branches are never sent, and nothing is fetched to do it. Other sync uploads are unaffected.

Session-sync fields

This is the same field inventory used by mossbear what-syncs and the dashboard. It covers session sync, not the separate content uploads above.

Verdicts, action summaries & redacted transcript excerpts
idsessionIdagentSessionIdactionTypesummaryfilePathsverdictgradingTierguideIdsviolatedGuideIdevalReasoningmetadatanarration
User turns, redacted on your device
agentSessionIdordinaltext
Guide suggestions
idcontentreasoningtriggerTypesourceActionIdsstatus
Token counts & session usage
sessionIdagentSessionIdusage.modelusage.providerusage.occurredAtusage.inputTokensusage.outputTokensusage.cacheReadTokensusage.cacheWriteTokens
Skill load-overhead token counts
sessionIdagentSessionIdusage.skillNameusage.modelusage.inputTokensusage.cacheWriteTokens
The CLI version making the sync request
cliVersion
Which agent sessions have finished
agentSessionId
Which rule files this repo has on disk (paths and hashes, never contents)
repoIdfiles.pathfiles.formatfiles.contentHashtruncated
The commit and branch your session ended on (never the code itself)
headShabranch
Your agent's closing summary of what it did, redacted the same way as the excerpts above
agentSessionIdtext
Whether the sync came from a session hook rather than a typed command
origin

Fair questions before you install

Doesn’t my CLAUDE.md or .cursorrules already do this?

The file part, yes. Plenty of tools sync a rules file, and Claude Code’s own global CLAUDE.md already covers one machine. None of them say whether a rule actually held. Mossbear grades each session against your rules once it ends and shows you which ones it followed, violated, or never touched.

Claude Code already emits OpenTelemetry. Why not just use that?

You can. Set CLAUDE_CODE_ENABLE_TELEMETRY=1 and Claude Code logs every tool call, for free. That covers Claude Code only, and you or your agent could already read those logs and draw your own conclusions from them. Mossbear does that automatically, after every session, against the rules you actually keep, across local and cloud sessions, and across Claude Code, Codex and OpenCode.

You’re asking me to install a hook. What does it actually send?

Full raw transcript files stay on your machine during session sync. Mossbear sends action summaries and file paths, rule-file hashes, session usage and redacted text excerpts. Code or diff text outside fenced or indented blocks can remain in those excerpts. Linking guidance uploads your selected files, including supported files belonging to a selected skill; context you capture also syncs. See exactly what syncs.

Is this just another dashboard I have to keep checking?

No. Nothing waits on you checking it. A session is graded once it ends. Ask your agent to improve a rule, and through the built-in MCP server it can read how that rule has actually performed, the reasoning behind the sessions that broke it, and the comments people left on the repo’s files. It starts from the rules and skills you already keep, seven file formats round-tripping, so there’s nothing new to author, and mossbear unlink hands back everything you linked.

If I fix a rule in one repo, does it actually reach the others?

Yes. Edit a rule in a linked repo and it updates the canonical copy. A repo set up for automatic refresh starts pulling that change when an agent session starts. Otherwise, run mossbear refresh in that repo.

You’re grading my agent with an LLM. How would I trust that?

The criteria are yours. Grading runs against your own rules and criteria, never a rubric baked into our code. Every result cites the exact actions it came from, and when a session can’t be graded honestly, Mossbear writes nothing rather than guessing.

Do I need a repo?

No. Every page lives in your Mossbear account, so you can write it and comment on it in the dashboard, from a phone’s browser too. mossbear init offers to register Mossbear’s MCP server for Claude Code and Codex, so either one can open your pages from any folder. In a repo, a page can also land as a file at the path your agents already read.

Where do my rules live?

As plain files, in your repos, at the paths your agents already read. A guide lands back at the path it was imported from, whether that’s CLAUDE.md, AGENTS.md or a .cursor/rules file. Linking uploads the selected guidance so Mossbear can keep one canonical copy in your account. mossbear unlink hands back everything you linked.

Wondering exactly which of your tools get graded, not just synced? See the agent compatibility matrix.

Free while it stays in alpha

Everything the product does today, at $0: no card, no trial clock, no seats to count. Paid tiers come later, spend tracking first, and nothing you set up now gets taken away. If you want out, mossbear unlink hands back everything you linked.

You can’t be in every session.Your guidance can.

npm install -g mossbear
Get started for free