Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@humanbased/crosscheck) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Building crosscheck with crosscheck.
crosscheck
Auto Code Review Pipeline β customizable PR β Review β Fix β Recheck loop, single-vendor or cross-vendor, zero new infrastructure.
Define the review pipeline in workflow.yml: review-only, review + fix, or the full review + fix + recheck cycle. Each step runs through the claude or codex CLI against your existing subscriptions β no API keys, no per-review cost.
Quick start
# 1. Install crosscheck and the agent CLIs
npm install -g @humanbased/crosscheck
npm install -g @anthropic-ai/claude-code && claude # Claude Pro/Max subscription
npm install -g @openai/codex && codex login --device-auth # ChatGPT Plus/Pro subscription
brew install gh && gh auth login # GitHub CLI
# 2. Guided setup β repos, review mode, workflow pipeline
crosscheck onboard
# 3. Start watching
crosscheck watch # personal laptop
crosscheck serve # always-on team serverCommands
crosscheck onboard
Interactive setup wizard. Picks repos/orgs to monitor, selects single-vendor or cross-vendor mode, configures the review pipeline, and writes ~/.crosscheck/config.yml and workflow.yml.
crosscheck onboard # guided setup
crosscheck onboard --personal # skip persona prompt, go straight to personal mode
crosscheck onboard --team # skip persona prompt, go straight to team mode
crosscheck onboard -y # accept all defaults non-interactivelycrosscheck watch
Personal mode. Starts an SSH tunnel (localhost.run), registers GitHub webhooks, and listens for PR events. Everything self-cleans on Ctrl+C.
crosscheck watch
crosscheck watch --no-backtrace # skip startup scan for unreviewed open PRs
crosscheck watch --reconfigure # re-run deployment setup before startingcrosscheck serve
Team mode. Binds to a fixed port β register the webhook once, cover the whole team. Designed for a mac-mini or home server.
crosscheck serve
crosscheck serve --no-backtrace # skip startup scan
crosscheck serve --personal # personal scope this session only
crosscheck serve --reconfigure # re-run deployment setupcrosscheck review <pr-url>
One-shot review of a single PR. Clones, checks out, reviews, and posts the comment.
crosscheck review https://github.com/org/repo/pull/42
crosscheck review <pr-url> --reviewer claude # force Claude regardless of detection
crosscheck review <pr-url> --reviewer codex # force Codex regardless of detectioncrosscheck run <pr-url>
Runs the full configured workflow against one PR: review β fix β recheck. Same logic as watch/serve, but triggered manually.
crosscheck run <pr-url>
crosscheck run <pr-url> --steps review # only the review step
crosscheck run <pr-url> --steps fix,recheck # skip initial review
crosscheck run <pr-url> --reviewer claude # override reviewer assignment
crosscheck run <pr-url> --dry-run # review without posting or fixingcrosscheck scan
Scans every open PR in the configured monitor scope and reports where each one is in the crosscheck workflow. Results are cached for 60 seconds.
States: PR (needs review) Β· APPROVE Β· NEEDS_WORK Β· BLOCK Β· RECHECK (fix applied, needs recheck)
crosscheck scan # all open PRs, grouped stale/not-stale
crosscheck scan --tidy # stale actionable rows only
crosscheck scan --stale-after 4h # custom staleness threshold (default 24h)
crosscheck scan --force # bypass cache
crosscheck scan --json # machine-readable outputcrosscheck kickass
Selects stale PRs from the operator queue and advances them β runs scan first, presents a multi-select picker, shows a preflight summary, then executes after confirmation.
crosscheck kickass # interactive operator queue
crosscheck kickass --dry-run # preflight only β no mutations
crosscheck kickass --stale-after 2h # tighter staleness threshold
crosscheck kickass --force # bypass scan cache before pickingActions: PR β CR Β· NEEDS_WORK/BLOCK β Fix Β· FIX/RECHECK β Recheck Β· APPROVE β Merge
Configuration
Review depth (quality.tier)
# crosscheck.config.yml
quality:
tier: balanced # fast | balanced | thorough| Tier | Claude model | Codex model | Latency |
|---|---|---|---|
fast |
Haiku | default | ~10s |
balanced |
Sonnet (default) | default | ~30s |
thorough |
Opus | default | ~60s |
Pipeline (workflow.yml)
steps:
- name: review
type: review
reviewer: auto # auto | claude | codex | origin
- name: fix
type: fix
reviewer: origin
when: review.verdict != 'APPROVE'
- name: recheck
type: recheck
reviewer: auto
when: fix.applied_count > 0Config snapshot
# ~/.crosscheck/config.yml
orgs:
- your-org
routing:
allowed_authors:
- your-github-login
mode: cross-vendor # cross-vendor | single-vendor
vendors:
claude:
enabled: true
codex:
enabled: true
quality:
tier: balanced
clone_protocol: ssh # ssh (default) | httpsFull reference: get-started.md
Requirements
| Minimum | |
|---|---|
| Node.js | 18+ |
| Claude Code CLI | latest β npm install -g @anthropic-ai/claude-code |
| Codex CLI | latest β npm install -g @openai/codex |
| GitHub CLI | 2.65+ β brew install gh |
GITHUB_TOKEN is derived automatically from gh auth login. No manual export needed.
Documentation
| get-started.md | Full setup guide β prerequisites, all flags, complete config reference, FAQ |
| crosscheck.config.example.yml | Annotated config with every option |
| CHANGELOG.md | Release notes |
Contributing
Issues and PRs welcome at github.com/humanbased-ai/crosscheck.
License
MIT β Copyright (c) 2025β2026 HumanBased AI.