MCPcopy Index your code
hub / github.com/caliber-ai-org/ai-setup

github.com/caliber-ai-org/ai-setup @v1.49.6

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.49.6 ↗ · + Follow
883 symbols 2,692 edges 216 files 19 documented · 2%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Caliber

Hand-written CLAUDE.md files go stale the moment you refactor. Your AI agent hallucinates paths that no longer exist, misses new dependencies, and gives advice based on yesterday's architecture. Caliber generates and maintains your AI context files (CLAUDE.md, .cursor/rules/, AGENTS.md, copilot-instructions.md) so they stay accurate as your code evolves — and keeps every agent on your team in sync, whether they use Claude Code, Cursor, Codex, OpenCode, or GitHub Copilot.

Caliber product demo

npm version license node Caliber Score Claude Code Cursor Codex OpenCode GitHub Copilot

Before / After

Most repos start with a hand-written CLAUDE.md and nothing else. Here's what Caliber finds — and fixes:

  Before                                    After /setup-caliber
  ──────────────────────────────            ──────────────────────────────

  Agent Config Score    35 / 100            Agent Config Score    94 / 100
  Grade D                                   Grade A

  FILES & SETUP           6 / 25            FILES & SETUP          24 / 25
  QUALITY                12 / 25            QUALITY                22 / 25
  GROUNDING               7 / 20            GROUNDING              19 / 20
  ACCURACY                5 / 15            ACCURACY               13 / 15
  FRESHNESS               5 / 10            FRESHNESS              10 / 10
  BONUS                   0 / 5             BONUS                   5 / 5

Scoring is deterministic — no LLM, no API calls. It cross-references your config files against your actual project filesystem: do referenced paths exist? Are code blocks present? Is there config drift since your last commit?

caliber score --compare main    # See how your branch changed the score

Get Started

Requires Node.js >= 20.

npx @rely-ai/caliber bootstrap

Then, in your terminal (not the IDE chat), start a Claude Code or Cursor CLI session and type:

/setup-caliber

Your agent detects your stack, generates tailored configs for every platform your team uses, sets up pre-commit hooks, and enables continuous sync — all from inside your normal workflow.

Don't use Claude Code or Cursor? Run caliber init instead — it's the same setup as a CLI wizard. Works with any LLM provider: bring your own Anthropic, OpenAI, or Vertex AI key.

Your code stays on your machine. Bootstrap is 100% local — no LLM calls, no code sent anywhere. Generation uses your own AI subscription or API key. Caliber never sees your code.

Windows Users

Caliber works on Windows with a few notes:

  • Run from your terminal (PowerShell, CMD, or Git Bash) — not from inside an IDE chat window. Open a terminal, cd into your project folder, then run npx @rely-ai/caliber bootstrap.
  • Git Bash is recommended. Caliber's pre-commit hooks and auto-sync scripts use shell syntax. Git for Windows includes Git Bash, which handles this automatically. If you only use PowerShell, hooks may be skipped silently.
  • Cursor Agent CLI: If prompted to install it, download from cursor.com/downloads instead of the curl | bash command shown on macOS/Linux. Then run agent login in your terminal to authenticate.
  • One terminal at a time. Avoid running Caliber from multiple terminals simultaneously — this can cause conflicting state and unexpected provider detection.

Audits first, writes second

Caliber never overwrites your existing configs without asking. The workflow mirrors code review:

  1. Score — read-only audit of your current setup
  2. Propose — generate or improve configs, shown as a diff
  3. Review — accept, refine via chat, or decline each change
  4. Backup — originals saved to .caliber/backups/ before every write
  5. Undocaliber undo restores everything to its previous state

If your existing config scores 95+, Caliber skips full regeneration and applies targeted fixes to the specific checks that are failing.

How It Works

Bootstrap gives your agent the /setup-caliber skill. Your agent analyzes your project — languages, frameworks, dependencies, architecture — generates configs, and installs hooks. From there, it's a loop:

  npx @rely-ai/caliber bootstrap       ← one-time, 2 seconds
              │
              ▼
  agent runs /setup-caliber             ← agent handles everything
              │
              ▼
  ┌──── configs generated ◄────────────┐
  │           │                        │
  │           ▼                        │
  │     your code evolves              │
  │     (new deps, renamed files,      │
  │      changed architecture)         │
  │           │                        │
  │           ▼                        │
  └──► caliber refresh ──────────────►─┘
       (auto, on every commit)

Pre-commit hooks run the refresh loop automatically. New team members get nudged to bootstrap on their first session.

What It Generates

Claude Code - CLAUDE.md — Project context, build/test commands, architecture, conventions - CALIBER_LEARNINGS.md — Patterns learned from your AI coding sessions - .claude/skills/*/SKILL.md — Reusable skills (OpenSkills format) - .mcp.json — Auto-discovered MCP server configurations - .claude/settings.json — Permissions and hooks

Cursor - .cursor/rules/*.mdc — Modern rules with frontmatter (description, globs, alwaysApply) - .cursor/skills/*/SKILL.md — Skills for Cursor - .cursor/mcp.json — MCP server configurations

OpenAI Codex - AGENTS.md — Project context for Codex - .agents/skills/*/SKILL.md — Skills for Codex

OpenCode - AGENTS.md — Project context (shared with Codex when both are targeted) - .opencode/skills/*/SKILL.md — Skills for OpenCode

GitHub Copilot - .github/copilot-instructions.md — Project context for Copilot

Key Features

Any Codebase

TypeScript, Python, Go, Rust, Java, Ruby, Terraform, and more. Language and framework detection is fully LLM-driven — no hardcoded mappings. Caliber works on any project.

Any AI Tool

caliber bootstrap auto-detects which agents you have installed. For manual control:

caliber init --agent claude        # Claude Code only
caliber init --agent cursor        # Cursor only
caliber init --agent codex         # Codex only
caliber init --agent opencode        # OpenCode only
caliber init --agent github-copilot  # GitHub Copilot only
caliber init --agent all             # All platforms
caliber init --agent claude,cursor   # Comma-separated

Chat-Based Refinement

Not happy with the generated output? During review, refine via natural language — describe what you want changed and Caliber iterates until you're satisfied.

MCP Server Discovery

Caliber detects the tools your project uses (databases, APIs, services) and auto-configures matching MCP servers for Claude Code and Cursor.

Deterministic Scoring

caliber score evaluates your config quality without any LLM calls — purely by cross-referencing config files against your actual project filesystem.

Category Points What it checks
Files & Setup 25 Config files exist, skills present, MCP servers, cross-platform parity
Quality 25 Code blocks, concise token budget, concrete instructions, structured headings
Grounding 20 Config references actual project directories and files
Accuracy 15 Referenced paths exist on disk, config freshness vs. git history
Freshness & Safety 10 Recently updated, no leaked secrets, permissions configured
Bonus 5 Auto-refresh hooks, AGENTS.md, OpenSkills format

Every failing check includes structured fix data — when caliber init runs, the LLM receives exactly what's wrong and how to fix it.

Session Learning

Caliber watches your AI coding sessions and learns from them. Hooks capture tool usage, failures, and your corrections — then an LLM distills operational patterns into CALIBER_LEARNINGS.md.

caliber learn install      # Install hooks for Claude Code and Cursor
caliber learn status       # View hook status, event count, and ROI summary
caliber learn finalize     # Manually trigger analysis (auto-runs on session end)
caliber learn remove       # Remove hooks

Learned items are categorized by type — [correction], [gotcha], [fix], [pattern], [env], [convention] — and automatically deduplicated.

Auto-Refresh

Keep configs in sync with your codebase automatically:

Hook Trigger What it does
Git pre-commit Before each commit Refreshes docs and stages updated files
Claude Code session end End of each session Runs caliber refresh and updates docs
Learning hooks During each session Captures events for session learning
caliber hooks --install    # Enable refresh hooks
caliber hooks --remove     # Disable refresh hooks

The refresh command analyzes your git diff (committed, staged, and unstaged changes) and updates config files to reflect what changed.

Team Onboarding

When Caliber is set up in a repo, it automatically nudges new team members to configure it on their machine. A lightweight session hook checks whether the pre-commit hook is installed and prompts setup if not — no manual coordination needed.

Fully Reversible

  • Automatic backups — originals saved to .caliber/backups/ before every write
  • Score regression guard — if a regeneration produces a lower score, changes are auto-reverted
  • Full undocaliber undo restores everything to its previous state
  • Clean uninstallcaliber uninstall removes everything Caliber added (hooks, generated sections, skills, learnings) while preserving your own content
  • Dry run — preview changes with --dry-run before applying

Commands

Command Description
caliber bootstrap Install agent skills — the fastest way to get started
caliber init Full setup wizard — analyze, generate, review, install hooks
caliber score Score config quality (deterministic, no LLM)
caliber score --compare <ref> Compare current score against a git ref
caliber regenerate Re-analyze and regenerate configs (aliases: regen, re)
caliber refresh Update docs based on recent code changes
caliber skills Discover and install community skills
caliber learn Session learning — install hooks, view status, finalize analysis
caliber hooks Manage auto-refresh hooks
caliber config Configure LLM provider, API key, and model
caliber status Show current setup status
caliber uninstall Remove all Caliber resources from a project
caliber undo Revert all changes made by Caliber

FAQ

Does it overwrite my existing configs?

No. Caliber shows you a diff of every proposed change. You accept, refine, or decline each one. Originals are backed up automatically.

Does it need an API key?

Bootstrap & scoring: No. Both run 100% locally with no LLM.

Generation (via /setup-caliber or caliber init): Uses your existing Claude Code or Cursor subscription (no API key needed), or bring your own key for Anthropic, OpenAI, or Vertex AI.

What's the difference between bootstrap and init?

caliber bootstrap installs agent skills in 2 seconds — your agent then runs /setup-caliber to handle the rest from inside your session. caliber init is the full interactive wizard for users who prefer a CLI-driven setup. Both end up in the same place.

What if I don't like what it generates?

Refine it via chat during review, or decline the changes entirely. If you already accepted, caliber undo restores everything. You can also preview with --dry-run.

Does it work with monorepos?

Yes. Run caliber init from any directory. caliber refresh can update configs across multiple repos when run from a parent directory.

Does it send my code anywhere?

Scoring is fully local. Generation sends a project summary (languages, structure, dependencies — not source code) to whatever LLM provider you configure — the same provider your AI editor already uses. Anonymous us

Extension points exported contracts — how you extend this code

LLMProvider (Interface)
(no doc) [9 implementers]
src/llm/types.ts
StatResult (Interface)
Minimal stat shape — subset of fs.Stats that we actually use.
src/fingerprint/large-file-scan.ts
LogoProps (Interface)
(no doc)
assets/video/src/components/Logo.tsx
TaskState (Interface)
(no doc)
src/utils/parallel-tasks.ts
CaliberConfig (Interface)
(no doc)
src/telemetry/config.ts
UninstallOptions (Interface)
(no doc)
src/commands/uninstall.ts
DiffResult (Interface)
(no doc)
src/lib/git-diff.ts
DetectResult (Interface)
(no doc)
src/ai/detect.ts

Core symbols most depended-on inside this repo

add
called by 55
src/utils/parallel-tasks.ts
update
called by 49
src/utils/parallel-tasks.ts
computeLocalScore
called by 40
src/scoring/index.ts
start
called by 39
src/utils/spinner-messages.ts
displayCaliberName
called by 39
src/lib/resolve-caliber.ts
sanitizeSecrets
called by 35
src/lib/sanitize.ts
feed
called by 34
src/ai/stream-parser.ts
trackEvent
called by 31
src/telemetry/index.ts

Shape

Function 655
Interface 108
Method 82
Class 38

Languages

TypeScript100%

Modules by API surface

src/ai/generate.ts28 symbols
src/commands/recommend.ts27 symbols
src/lib/hooks.ts26 symbols
src/telemetry/events.ts25 symbols
src/llm/cursor-acp.ts25 symbols
src/writers/pre-commit-block.ts24 symbols
src/utils/parallel-tasks.ts21 symbols
src/scoring/utils.ts20 symbols
src/learner/storage.ts20 symbols
src/lib/learning-hooks.ts17 symbols
src/llm/claude-cli.ts15 symbols
src/llm/__tests__/index.test.ts15 symbols

Datastores touched

(mongodb)Database · 1 repos
dbDatabase · 1 repos
(mysql)Database · 1 repos
appDatabase · 1 repos
dbDatabase · 1 repos
mydbDatabase · 1 repos

For agents

$ claude mcp add ai-setup \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact