[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-75038":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":40,"readmeContent":41,"aiSummary":42,"trendingCount":15,"starSnapshotCount":15,"syncStatus":43,"lastSyncTime":44,"discoverSource":45},75038,"ai-setup","caliber-ai-org\u002Fai-setup","caliber-ai-org","Continuously sync your AI setups with one command. Codebase tailor suited agent skills, MCPs and config files for Claude Code, Cursor, and Codex.","https:\u002F\u002Fcaliber-ai.dev",null,"TypeScript",1113,110,16,0,3,13,71,9,73.74,"MIT License",false,"master",[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"agent-config","ai-agents","anthropic","claude-code","claude-md","cli","codex","cursor","cursorrules","developer-tools","llm","mcp","openai","openai-codex","skills","2026-06-12 04:01:17","# Caliber\n\n**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\u002Frules\u002F`, `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.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fdemo-header.gif\" alt=\"Caliber product demo\" width=\"900\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@rely-ai\u002Fcaliber\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002F@rely-ai\u002Fcaliber\" alt=\"npm version\">\u003C\u002Fa>\n  \u003Ca href=\".\u002FLICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fl\u002F@rely-ai\u002Fcaliber\" alt=\"license\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fnodejs.org\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnode\u002Fv\u002F@rely-ai\u002Fcaliber\" alt=\"node\">\u003C\u002Fa>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcaliber-94%2F100-brightgreen\" alt=\"Caliber Score\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FClaude_Code-supported-blue\" alt=\"Claude Code\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCursor-supported-blue\" alt=\"Cursor\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCodex-supported-blue\" alt=\"Codex\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FOpenCode-supported-blue\" alt=\"OpenCode\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGitHub_Copilot-supported-blue\" alt=\"GitHub Copilot\">\n\u003C\u002Fp>\n\n## Before \u002F After\n\nMost repos start with a hand-written `CLAUDE.md` and nothing else. Here's what Caliber finds — and fixes:\n\n```\n  Before                                    After \u002Fsetup-caliber\n  ──────────────────────────────            ──────────────────────────────\n\n  Agent Config Score    35 \u002F 100            Agent Config Score    94 \u002F 100\n  Grade D                                   Grade A\n\n  FILES & SETUP           6 \u002F 25            FILES & SETUP          24 \u002F 25\n  QUALITY                12 \u002F 25            QUALITY                22 \u002F 25\n  GROUNDING               7 \u002F 20            GROUNDING              19 \u002F 20\n  ACCURACY                5 \u002F 15            ACCURACY               13 \u002F 15\n  FRESHNESS               5 \u002F 10            FRESHNESS              10 \u002F 10\n  BONUS                   0 \u002F 5             BONUS                   5 \u002F 5\n```\n\nScoring 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?\n\n```bash\ncaliber score --compare main    # See how your branch changed the score\n```\n\n## Get Started\n\nRequires **Node.js >= 20**.\n\n```bash\nnpx @rely-ai\u002Fcaliber bootstrap\n```\n\nThen, in your terminal (not the IDE chat), start a Claude Code or Cursor CLI session and type:\n\n> **\u002Fsetup-caliber**\n\nYour 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.\n\n**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.\n\n> **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.\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Windows Users\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nCaliber works on Windows with a few notes:\n\n- **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\u002Fcaliber bootstrap`.\n- **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.\n- **Cursor Agent CLI:** If prompted to install it, download from [cursor.com\u002Fdownloads](https:\u002F\u002Fwww.cursor.com\u002Fdownloads) instead of the `curl | bash` command shown on macOS\u002FLinux. Then run `agent login` in your terminal to authenticate.\n- **One terminal at a time.** Avoid running Caliber from multiple terminals simultaneously — this can cause conflicting state and unexpected provider detection.\n\n\u003C\u002Fdetails>\n\n## Audits first, writes second\n\nCaliber never overwrites your existing configs without asking. The workflow mirrors code review:\n\n1. **Score** — read-only audit of your current setup\n2. **Propose** — generate or improve configs, shown as a diff\n3. **Review** — accept, refine via chat, or decline each change\n4. **Backup** — originals saved to `.caliber\u002Fbackups\u002F` before every write\n5. **Undo** — `caliber undo` restores everything to its previous state\n\nIf your existing config scores **95+**, Caliber skips full regeneration and applies targeted fixes to the specific checks that are failing.\n\n## How It Works\n\nBootstrap gives your agent the `\u002Fsetup-caliber` skill. Your agent analyzes your project — languages, frameworks, dependencies, architecture — generates configs, and installs hooks. From there, it's a loop:\n\n```\n  npx @rely-ai\u002Fcaliber bootstrap       ← one-time, 2 seconds\n              │\n              ▼\n  agent runs \u002Fsetup-caliber             ← agent handles everything\n              │\n              ▼\n  ┌──── configs generated ◄────────────┐\n  │           │                        │\n  │           ▼                        │\n  │     your code evolves              │\n  │     (new deps, renamed files,      │\n  │      changed architecture)         │\n  │           │                        │\n  │           ▼                        │\n  └──► caliber refresh ──────────────►─┘\n       (auto, on every commit)\n```\n\nPre-commit hooks run the refresh loop automatically. New team members get nudged to bootstrap on their first session.\n\n### What It Generates\n\n**Claude Code**\n- `CLAUDE.md` — Project context, build\u002Ftest commands, architecture, conventions\n- `CALIBER_LEARNINGS.md` — Patterns learned from your AI coding sessions\n- `.claude\u002Fskills\u002F*\u002FSKILL.md` — Reusable skills ([OpenSkills](https:\u002F\u002Fagentskills.io) format)\n- `.mcp.json` — Auto-discovered MCP server configurations\n- `.claude\u002Fsettings.json` — Permissions and hooks\n\n**Cursor**\n- `.cursor\u002Frules\u002F*.mdc` — Modern rules with frontmatter (description, globs, alwaysApply)\n- `.cursor\u002Fskills\u002F*\u002FSKILL.md` — Skills for Cursor\n- `.cursor\u002Fmcp.json` — MCP server configurations\n\n**OpenAI Codex**\n- `AGENTS.md` — Project context for Codex\n- `.agents\u002Fskills\u002F*\u002FSKILL.md` — Skills for Codex\n\n**OpenCode**\n- `AGENTS.md` — Project context (shared with Codex when both are targeted)\n- `.opencode\u002Fskills\u002F*\u002FSKILL.md` — Skills for OpenCode\n\n**GitHub Copilot**\n- `.github\u002Fcopilot-instructions.md` — Project context for Copilot\n\n## Key Features\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Any Codebase\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nTypeScript, Python, Go, Rust, Java, Ruby, Terraform, and more. Language and framework detection is fully LLM-driven — no hardcoded mappings. Caliber works on any project.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Any AI Tool\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n`caliber bootstrap` auto-detects which agents you have installed. For manual control:\n```bash\ncaliber init --agent claude        # Claude Code only\ncaliber init --agent cursor        # Cursor only\ncaliber init --agent codex         # Codex only\ncaliber init --agent opencode        # OpenCode only\ncaliber init --agent github-copilot  # GitHub Copilot only\ncaliber init --agent all             # All platforms\ncaliber init --agent claude,cursor   # Comma-separated\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Chat-Based Refinement\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nNot happy with the generated output? During review, refine via natural language — describe what you want changed and Caliber iterates until you're satisfied.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>MCP Server Discovery\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nCaliber detects the tools your project uses (databases, APIs, services) and auto-configures matching MCP servers for Claude Code and Cursor.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Deterministic Scoring\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n`caliber score` evaluates your config quality without any LLM calls — purely by cross-referencing config files against your actual project filesystem.\n\n| Category | Points | What it checks |\n|---|---|---|\n| **Files & Setup** | 25 | Config files exist, skills present, MCP servers, cross-platform parity |\n| **Quality** | 25 | Code blocks, concise token budget, concrete instructions, structured headings |\n| **Grounding** | 20 | Config references actual project directories and files |\n| **Accuracy** | 15 | Referenced paths exist on disk, config freshness vs. git history |\n| **Freshness & Safety** | 10 | Recently updated, no leaked secrets, permissions configured |\n| **Bonus** | 5 | Auto-refresh hooks, AGENTS.md, OpenSkills format |\n\nEvery failing check includes structured fix data — when `caliber init` runs, the LLM receives exactly what's wrong and how to fix it.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Session Learning\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nCaliber 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`.\n\n```bash\ncaliber learn install      # Install hooks for Claude Code and Cursor\ncaliber learn status       # View hook status, event count, and ROI summary\ncaliber learn finalize     # Manually trigger analysis (auto-runs on session end)\ncaliber learn remove       # Remove hooks\n```\n\nLearned items are categorized by type — **[correction]**, **[gotcha]**, **[fix]**, **[pattern]**, **[env]**, **[convention]** — and automatically deduplicated.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Auto-Refresh\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nKeep configs in sync with your codebase automatically:\n\n| Hook | Trigger | What it does |\n|---|---|---|\n| **Git pre-commit** | Before each commit | Refreshes docs and stages updated files |\n| **Claude Code session end** | End of each session | Runs `caliber refresh` and updates docs |\n| **Learning hooks** | During each session | Captures events for session learning |\n\n```bash\ncaliber hooks --install    # Enable refresh hooks\ncaliber hooks --remove     # Disable refresh hooks\n```\n\nThe `refresh` command analyzes your git diff (committed, staged, and unstaged changes) and updates config files to reflect what changed.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Team Onboarding\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nWhen 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.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Fully Reversible\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n- **Automatic backups** — originals saved to `.caliber\u002Fbackups\u002F` before every write\n- **Score regression guard** — if a regeneration produces a lower score, changes are auto-reverted\n- **Full undo** — `caliber undo` restores everything to its previous state\n- **Clean uninstall** — `caliber uninstall` removes everything Caliber added (hooks, generated sections, skills, learnings) while preserving your own content\n- **Dry run** — preview changes with `--dry-run` before applying\n\n\u003C\u002Fdetails>\n\n## Commands\n\n| Command | Description |\n|---|---|\n| `caliber bootstrap` | Install agent skills — the fastest way to get started |\n| `caliber init` | Full setup wizard — analyze, generate, review, install hooks |\n| `caliber score` | Score config quality (deterministic, no LLM) |\n| `caliber score --compare \u003Cref>` | Compare current score against a git ref |\n| `caliber regenerate` | Re-analyze and regenerate configs (aliases: `regen`, `re`) |\n| `caliber refresh` | Update docs based on recent code changes |\n| `caliber skills` | Discover and install community skills |\n| `caliber learn` | Session learning — install hooks, view status, finalize analysis |\n| `caliber hooks` | Manage auto-refresh hooks |\n| `caliber config` | Configure LLM provider, API key, and model |\n| `caliber status` | Show current setup status |\n| `caliber uninstall` | Remove all Caliber resources from a project |\n| `caliber undo` | Revert all changes made by Caliber |\n\n## FAQ\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Does it overwrite my existing configs?\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nNo. Caliber shows you a diff of every proposed change. You accept, refine, or decline each one. Originals are backed up automatically.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Does it need an API key?\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n**Bootstrap & scoring:** No. Both run 100% locally with no LLM.\n\n**Generation** (via `\u002Fsetup-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.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>What's the difference between bootstrap and init?\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n`caliber bootstrap` installs agent skills in 2 seconds — your agent then runs `\u002Fsetup-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.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>What if I don't like what it generates?\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nRefine 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`.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Does it work with monorepos?\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nYes. Run `caliber init` from any directory. `caliber refresh` can update configs across multiple repos when run from a parent directory.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Does it send my code anywhere?\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nScoring 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 usage analytics (command names, durations — no code, no file contents) are collected via PostHog. To opt out:\n\n- **Per-run**: `caliber --no-traces \u003Ccommand>`\n- **Persistent env var**: `export CALIBER_TELEMETRY_DISABLED=1`\n\n\u003C\u002Fdetails>\n\n## LLM Providers\n\nNo API key? No problem. Caliber works with your existing AI tool subscription:\n\n| Provider | Setup | Default Model |\n|---|---|---|\n| **Claude Code** (your seat) | `caliber config` → Claude Code | Inherited from Claude Code |\n| **Cursor** (your seat) | `caliber config` → Cursor | Inherited from Cursor |\n| **Anthropic** | `export ANTHROPIC_API_KEY=sk-ant-...` | `claude-sonnet-4-6` |\n| **OpenAI** | `export OPENAI_API_KEY=sk-...` | `gpt-5.4-mini` |\n| **Vertex AI** | `export VERTEX_PROJECT_ID=my-project` | `claude-sonnet-4-6` |\n| **Custom endpoint** | `OPENAI_API_KEY` + `OPENAI_BASE_URL` | `gpt-5.4-mini` |\n\nOverride the model for any provider: `export CALIBER_MODEL=\u003Cmodel-name>` or use `caliber config`.\n\nCaliber uses a **two-tier model system** — lightweight tasks (classification, scoring) auto-use a faster model, while heavy tasks (generation, refinement) use the default. This keeps costs low and speed high.\n\nConfiguration is stored in `~\u002F.caliber\u002Fconfig.json` with restricted permissions (`0600`). API keys are never written to project files.\n\n\u003Cdetails>\n\u003Csummary>Vertex AI advanced setup\u003C\u002Fsummary>\n\n```bash\n# Custom region\nexport VERTEX_PROJECT_ID=my-gcp-project\nexport VERTEX_REGION=europe-west1\n\n# Service account credentials (inline JSON)\nexport VERTEX_PROJECT_ID=my-gcp-project\nexport VERTEX_SA_CREDENTIALS='{\"type\":\"service_account\",...}'\n\n# Service account credentials (file path)\nexport VERTEX_PROJECT_ID=my-gcp-project\nexport GOOGLE_APPLICATION_CREDENTIALS=\u002Fpath\u002Fto\u002Fservice-account.json\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Environment variables reference\u003C\u002Fsummary>\n\n| Variable | Purpose |\n|---|---|\n| `ANTHROPIC_API_KEY` | Anthropic API key |\n| `OPENAI_API_KEY` | OpenAI API key |\n| `OPENAI_BASE_URL` | Custom OpenAI-compatible endpoint |\n| `VERTEX_PROJECT_ID` | GCP project ID for Vertex AI |\n| `VERTEX_REGION` | Vertex AI region (default: `us-east5`) |\n| `VERTEX_SA_CREDENTIALS` | Service account JSON (inline) |\n| `GOOGLE_APPLICATION_CREDENTIALS` | Service account JSON file path |\n| `CALIBER_USE_CLAUDE_CLI` | Use Claude Code CLI (`1` to enable) |\n| `CALIBER_USE_CURSOR_SEAT` | Use Cursor subscription (`1` to enable) |\n| `CALIBER_MODEL` | Override model for any provider |\n| `CALIBER_FAST_MODEL` | Override fast model for any provider |\n\n\u003C\u002Fdetails>\n\n## Contributing\n\nSee [CONTRIBUTING.md](.\u002FCONTRIBUTING.md) for detailed guidelines.\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fcaliber-ai-org\u002Fai-setup.git\ncd caliber\nnpm install\nnpm run dev      # Watch mode\nnpm run test     # Run tests\nnpm run build    # Compile\n```\n\nUses [conventional commits](https:\u002F\u002Fwww.conventionalcommits.org\u002F) — `feat:` for features, `fix:` for bug fixes.\n\n## Add a Caliber badge to your repo\n\nAfter scoring your project, add a badge to your README:\n\n![Caliber Score](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcaliber-94%2F100-brightgreen)\n\nCopy this markdown and replace `94` with your actual score:\n\n```\n![Caliber Score](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcaliber-SCORE%2F100-COLOR)\n```\n\nColor guide: `brightgreen` (90+), `green` (70-89), `yellow` (40-69), `red` (\u003C40).\n\n## License\n\nMIT\n","Caliber 是一个用于持续同步AI设置的工具，支持Claude Code、Cursor和Codex等平台。它能够自动生成并维护AI上下文文件（如CLAUDE.md, .cursor\u002Frules\u002F等），确保这些文件随着代码库的变化而保持最新状态，从而提高AI代理在不同开发环境下的准确性和一致性。项目采用TypeScript编写，具有确定性的评分机制，无需调用LLM或API即可评估配置文件的质量。适用于需要频繁更新代码库且依赖于多个AI辅助工具的软件开发团队。",2,"2026-06-11 03:52:02","high_star"]