Your LLMs need a
crossing guard.

One memory, one rulebook, one honest boundary — across every coding agent you use. Local-first, being prepared for open-source release. Hook overhead depends on your configuration.

Public release in preparation.

No public install or download is available from this page. This is a website design preview, not a product release. Examples, support labels and metrics illustrate the intended design.

Works with the agents you already use — and says exactly how well

CC Claude Code Proven
CX Codex Proven
OC OpenCode Proven
CP Copilot CLI Registered
GM Gemini CLI Registered

Same binary, same rule file, demonstrated live on three agents across three model families. The two "registered" agents have their hook seams mapped; coverage is probed before we ever call it proven. We never claim a wall we didn't build — that honesty is the product.

What it does

01

One memory

Your project knowledge follows you between agents — files-first, no vendor store. Hit a limit on one, pick up on another with the context intact.

crossing memory — carry
crossing carry --from claude --to codex reading 3 dossiers, 1 open session… ✓ memory injected into codex session ✓ 41 min of context preserved nothing left the machine.
crossing coverage — the honest report
crossing coverage protect-shared-branch rule → per-agent enforcement: claude-code enforced (fail-closed) codex enforced (fail-closed) opencode best-effort (fails open on timeout) copilot-cli unsupported — seam not yet probed

02

One rulebook

Write "never push to main" once. It compiles to each agent's own hook seam — and the coverage report tells you, per rule, per agent, what's truly enforced versus best-effort. Nobody else labels the seams honestly.

03

Every agent, one file

The same rules.json drove a live block on Claude Code, Codex, and OpenCode — three integration styles, one source of truth. Add a runtime by adding a data row, not a rewrite.

rules.json — authored once
{ "id": "protect-shared-branch", "match": { "capability": "git.push_protected" }, "action": "ask", "backstop": "remote-branch-protection"}

How it works

1

Install & attach

One command, then crossing attach wires the hooks into each agent you use.

2

Write one rule

Pick from the library or write a capability + action. It compiles to every agent's seam automatically.

3

See the coverage

The report shows what's enforced, best-effort, or unsupported — per agent. No surprises, no bluffing.

3 agents, proven live
Claude Code · Codex · OpenCode
1 rule file
3 model families, 3 integration styles
0 bytes to a vendor
local-first, non-logging fallback
Read the probes →

No user-count to quote yet — so here's proof of work instead of proof of a crowd. Every claim above links to a probe you can run.

Never get stuck

Your usage limit resets in five hours.
Your deadline doesn't.

When one agent hits the wall mid-task, the paddle goes up — and your session, memory, and rules cross to another agent or a local model. Keep working.

See the limits board →

When the meter runs out

At limit Claude Max · resets 4h 51m

Cross to Codex → session + memory + rules travel with you.

For the team lead who has to answer for it

Honest governance, not a checkbox

Author once, enforce everywhere

Org policy is a signed, versioned bundle — org > repo > user, tighten-only. Compiles locally; the server just distributes it.

Coverage you can audit

Every rule renders its real enforcement per agent. A security review reads the report, not the marketing.

Run it yourself

Self-host the whole thing, with any future managed service subject to a separate announcement. License and contribution terms are being finalized.

We didn't put Open in the name. We put it in the license.

The Comparison Lab

Choosing between agents? We ran the same task on each.

Reproducible head-to-heads — same repo, same rules, same session-carry test — with probe artifacts attached. Updated when the probes re-run.

MatchupUS searches/moStatus
Codex vs Claude Code13,600Probe-backed
OpenCode vs Claude Code3,150Probe-backed
Gemini CLI vs Claude Code2,200Registered

See all comparisons →

Put a guard at the crossing.

Open-source release in preparation. Explore the design and proposed workflows.

Home › Agents

One memory. One rulebook. Your own agents.

Your workflow.
Your supporting cast.

Bring reviewer, helper, and follower agents into the coding workflow you already use. Choose the models behind the roles. Give each a job worth doing.

Marketing concept. Role examples explain the intended experience, not a live demonstration or a release support promise. Spontaneous Memory below is a proposed capability.

Your main agent doesn't have to do every job.

A second perspective. A focused pair of hands. Someone keeping an eye on the bigger picture. Different roles, working around the same task.

01 · REVIEWER

Another set of eyes.

Bring in an agent to examine changes, question assumptions, and surface issues before you move on.

Example brief: “Review this change for failure paths and explain what needs attention.”

02 · HELPER

A job of its own.

Give a helper a bounded task alongside the main work: investigate a question, check an assumption, or prepare a focused result.

Example brief: “Check the relevant documentation and report the constraints.”

03 · FOLLOWER

The wider view.

Have a follower track work as it develops and contribute observations without taking over the main task.

Example brief: “Watch for decisions that conflict with the project's earlier direction.”

Your logic, at the agent's hooks.

At the heart is the open-source framework we're preparing for release: a place to connect your own code to supported events in the AI workflow.

Define the job. Choose the model.

Use different models for different roles across supported providers. A reviewer needn't use the same model as the agent doing the work.

Give each role instructions, relevant context, and a clear scope. The framework is the foundation; the frontend is where those roles and their work become visible.

The framework idea

When this happens…
A supported event makes relevant work available.

…run your logic…
A check, a reviewer, or another focused contribution.

…within its authority.
Advice, observation, and permission to act are different things.

Provider choice depends on available integrations and credentials. Triggers, context access, execution and delivery vary by role and runtime; this concept does not promise arbitrary-provider compatibility or identical controls everywhere.

The framework and your configuration

The machinery is shared. The workflow is yours.

Crossing Guard provides the mechanisms. Your configuration describes how you want to use them. You don't have to adopt our development process to use the framework.

Framework

The connections to supported agent hooks, the machinery for running checks and evaluating rules, and the records of what happened. It defines the available capabilities and their boundaries.

Configuration

Your chosen models, agent instructions, selected rules, and workflow criteria. What should a reviewer look for? Which facts matter to your project? Those choices belong to you, not hidden inside the framework.

Custom code

When existing mechanisms aren't enough, extend the framework at supported integration points. Add a check or integration, then configure how your workflow uses it.

One reviewer, different projects · illustrative example

Shared mechanism: run a reviewer and record its findings.

Your configuration: choose its model and instructions—review database changes for one project, accessibility for another.

An extension when needed: connect a project-specific checker through a supported integration point.

The frontend makes those choices visible.

The interface brings configuration and results together: what is selected, which agent contributed, and what it reported. Available controls depend on the implemented role and integration; configuration is not a promise that every option has a visual editor.

A supplied configuration pack is a starting point, not a mandatory workflow. Configuration cannot create a missing hook, enable unsupported live interruption, or grant an agent authority by itself. Spontaneous Memory's proposed delivery choices remain subject to those same boundaries.

Spontaneous Memory · proposed concept

The “aha” you didn't know to ask for.

Your main agent follows the task. A memory follower looks beyond that immediate context for a past decision, forgotten constraint, or relevant lesson that could change the work.

It isn't only remembering what you asked it to remember. It's making a useful connection to knowledge outside the main line of context—and bringing it back when it matters.

“Before you continue: we tried this approach before. Here's why we changed it.”

Illustrative message, not an actual retrieved memory or product transcript.

At a workflow event

Surface an insight at a supported checkpoint, when the working agent has an opportunity to use it.

During the work

For an important insight, interrupt the working agent where live delivery is supported and explicitly authorized.

Will a memory always interrupt my agent?

No. Event-triggered delivery, queued messages, and live interruption are different capabilities. An event or queued delivery must not be presented as an immediate interruption. Spontaneous Memory and its delivery behavior need implementation and runtime-specific verification before a release claim.

Does an “aha” give the follower permission to act?

No. A relevant memory is context, not an instruction with higher authority. The follower's contribution remains separate from permission to approve, change files, or control another agent.

Same workflow. More perspective.

Shared memory, shared rules, and your own supporting agents. The crossing guard stays at the intersection; you decide who joins the work.

Back to Crossing Guard →

Home › Compare

Claude Code vs Codex, measured

Same task, same rule file, same session-carry test on every agent — each claim linked to a probe you can run yourself. Updated when probes re-run, and every page says when. No vibes. No affiliate links. Bring a snack.

The matrix

Cells ship only where probes actually run — anything else is one more opinion listicle, and the internet is stocked.

MatchupUS/moKDCPCStatus
Codex vs Claude Code13,6008–16$30.00Probe-backed
Claude Code vs Cursor11,9005–12$7.00Partial
OpenCode vs Claude Code3,1507$3.50Probe-backed
Claude Code vs GitHub Copilot2,6501–4$6.00Registered
Gemini CLI vs Claude Code2,2009$5.00Registered
Codex vs Cursor1,3003–6$25.00Watch list

What we measure that nobody else does

Probe · rule enforcement at the hook seam

Same "never push to main" rule on each runtime's own hooks — who blocks, who asks, who times out open. Enforced / Best-effort straight from the coverage report.

Probe · session carry

Kill it mid-task, resume elsewhere. What survives? With our layer: files, memory, and rules do.

"Yes, even the expensive ones stop."

Home › Reference

The power-user reference

Hooks, memory, context files, session formats — researched across Claude Code, Codex, and OpenCode, side by side, with the differences that actually bite.

The shelf
PageTarget termVol/moKDStatus
Claude Code memory, actually explainedclaude code memory1,0007Ships
Hooks: the complete seam mapclaude code hooks2,80025Ships
CLAUDE.md — what loads, when, how bigclaude md1,2008Draft
MCP config across runtimesclaude code mcp3,90035Planned
Skills, cross-vendorclaude code skills8,80059Long game

Why trust this

Every page cites its probe. When a vendor changes a seam, the canary flips and the page updates with a dated changelog. The research came first — this site publishes the homework behind the tool.

Home › Limits

Usage limits, explained live

What counts against every plan's meter, when it resets, what you lose mid-task — and how to walk your work across instead of waiting at the wall.

The board (mock data — page concept)

Claude Code · Max

At limit the paddle is up

resets 4h 51m · 5-hour window · opus counts ~5× sonnet

Your session doesn't have to wait: carry it across →

Codex · Plus

Open

34% of window · weekly cap separate · resets Thu 09:00

Local · Ollama

No meter

your machine, your rules · slower, private, always open

Asked constantly

Is Claude Code free?

No free tier — it rides a Claude subscription (Pro/Max) or API billing. Free: this page's plan math, and the open-source layer that carries your work when the meter runs out.

What happens when I hit the limit mid-task?

Natively the session freezes and context is stranded until reset. With a crossing guard: session, memory, and rules walk across to another agent — or a local model — and work continues.

Is Codex down?

In the real build this is a live status check, not an essay.