@rely-ai/caliber 1.7.7 → 1.7.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +18 -14
  2. package/dist/bin.js +15 -15
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -10,6 +10,10 @@
10
10
 
11
11
  <p align="center"><strong>Improve your agentic development experience with one command</strong></p>
12
12
 
13
+ <p align="center">
14
+ <img src="assets/demo.gif" alt="Caliber demo" width="640">
15
+ </p>
16
+
13
17
  ---
14
18
 
15
19
  Caliber scans your project — languages, frameworks, dependencies, file structure — and generates tailored config files for **Claude Code**, **Cursor**, and **OpenAI Codex**. If configs already exist, it audits them against your actual codebase and suggests targeted improvements.
@@ -33,7 +37,7 @@ Caliber **generates, audits, and maintains** your agentic development sessions.
33
37
  ## 🚀 Quick Start
34
38
 
35
39
  ```bash
36
- npx @rely-ai/caliber onboard
40
+ npx @rely-ai/caliber init
37
41
  ```
38
42
 
39
43
  That's it. On first run, Caliber walks you through provider setup interactively.
@@ -42,20 +46,20 @@ Or install globally:
42
46
 
43
47
  ```bash
44
48
  npm install -g @rely-ai/caliber
45
- caliber onboard
49
+ caliber init
46
50
  ```
47
51
 
48
52
  > **Already have an API key?** Skip the interactive setup:
49
53
  >
50
54
  > ```bash
51
55
  > export ANTHROPIC_API_KEY=sk-ant-...
52
- > npx @rely-ai/caliber onboard
56
+ > npx @rely-ai/caliber init
53
57
  > ```
54
58
 
55
59
  ## ⚙️ How It Works
56
60
 
57
61
  ```
58
- caliber onboard
62
+ caliber init
59
63
 
60
64
  ├─ 1. 🔌 Connect Choose your LLM provider — Claude Code seat, Cursor seat,
61
65
  │ or an API key (Anthropic, OpenAI, Vertex AI)
@@ -108,7 +112,7 @@ Every change Caliber makes is reversible:
108
112
 
109
113
  | Command | Description |
110
114
  | -------------------- | ---------------------------------------------------- |
111
- | `caliber onboard` | 🏁 Onboard your project — full 6-step wizard |
115
+ | `caliber init` | 🏁 Initialize your project — full 6-step wizard |
112
116
  | `caliber score` | 📊 Score your config quality (deterministic, no LLM) |
113
117
  | `caliber skills` | 🧩 Discover and install community skills |
114
118
  | `caliber regenerate` | 🔄 Re-analyze and regenerate your setup |
@@ -121,15 +125,15 @@ Every change Caliber makes is reversible:
121
125
  ### Examples
122
126
 
123
127
  ```bash
124
- # Onboarding
125
- caliber onboard # Interactive — picks agent, walks through setup
126
- caliber onboard --agent claude # Target Claude Code only
127
- caliber onboard --agent cursor # Target Cursor only
128
- caliber onboard --agent codex # Target OpenAI Codex only
129
- caliber onboard --agent all # Target all three
130
- caliber onboard --agent claude,cursor # Comma-separated
131
- caliber onboard --dry-run # Preview without writing files
132
- caliber onboard --force # Overwrite existing setup without prompting
128
+ # Initialize
129
+ caliber init # Interactive — picks agent, walks through setup
130
+ caliber init --agent claude # Target Claude Code only
131
+ caliber init --agent cursor # Target Cursor only
132
+ caliber init --agent codex # Target OpenAI Codex only
133
+ caliber init --agent all # Target all three
134
+ caliber init --agent claude,cursor # Comma-separated
135
+ caliber init --dry-run # Preview without writing files
136
+ caliber init --force # Overwrite existing setup without prompting
133
137
 
134
138
  # Scoring
135
139
  caliber score # Full breakdown with grade (A-F)
package/dist/bin.js CHANGED
@@ -169,7 +169,7 @@ import fs30 from "fs";
169
169
  import path24 from "path";
170
170
  import { fileURLToPath } from "url";
171
171
 
172
- // src/commands/onboard.ts
172
+ // src/commands/init.ts
173
173
  import path19 from "path";
174
174
  import chalk8 from "chalk";
175
175
  import ora2 from "ora";
@@ -3060,7 +3060,7 @@ var SpinnerMessages = class {
3060
3060
  }
3061
3061
  };
3062
3062
 
3063
- // src/commands/onboard.ts
3063
+ // src/commands/init.ts
3064
3064
  init_config();
3065
3065
 
3066
3066
  // src/commands/interactive-provider-setup.ts
@@ -5361,7 +5361,7 @@ function formatMs(ms) {
5361
5361
  return `${secs}s`;
5362
5362
  }
5363
5363
 
5364
- // src/commands/onboard.ts
5364
+ // src/commands/init.ts
5365
5365
  async function initCommand(options) {
5366
5366
  const brand = chalk8.hex("#EB9D83");
5367
5367
  const title = chalk8.hex("#83D1EB");
@@ -5373,12 +5373,12 @@ async function initCommand(options) {
5373
5373
  \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551
5374
5374
  \u255A\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D
5375
5375
  `));
5376
- console.log(chalk8.dim(" Onboard your project for AI-assisted development\n"));
5376
+ console.log(chalk8.dim(" Initialize your project for AI-assisted development\n"));
5377
5377
  console.log(title.bold(" Welcome to Caliber\n"));
5378
5378
  console.log(chalk8.dim(" Caliber analyzes your codebase and creates tailored config files"));
5379
5379
  console.log(chalk8.dim(" so your AI coding agents understand your project from day one.\n"));
5380
5380
  const report = options.debugReport ? new DebugReport() : null;
5381
- console.log(title.bold(" How onboarding works:\n"));
5381
+ console.log(title.bold(" How it works:\n"));
5382
5382
  console.log(chalk8.dim(" 1. Connect Set up your LLM provider"));
5383
5383
  console.log(chalk8.dim(" 2. Discover Analyze your code, dependencies, and structure"));
5384
5384
  console.log(chalk8.dim(" 3. Generate Create config files tailored to your project"));
@@ -5466,7 +5466,7 @@ async function initCommand(options) {
5466
5466
  if (hasExistingConfig && baselineScore.score === 100) {
5467
5467
  trackInitScoreComputed(baselineScore.score, passingCount, failingCount, true);
5468
5468
  console.log(chalk8.bold.green(" Your setup is already optimal \u2014 nothing to change.\n"));
5469
- console.log(chalk8.dim(" Run ") + chalk8.hex("#83D1EB")("caliber onboard --force") + chalk8.dim(" to regenerate anyway.\n"));
5469
+ console.log(chalk8.dim(" Run ") + chalk8.hex("#83D1EB")("caliber init --force") + chalk8.dim(" to regenerate anyway.\n"));
5470
5470
  if (!options.force) return;
5471
5471
  }
5472
5472
  const allFailingChecks = baselineScore.checks.filter((c) => !c.passed && c.maxPoints > 0);
@@ -5482,7 +5482,7 @@ async function initCommand(options) {
5482
5482
  }
5483
5483
  }
5484
5484
  console.log("");
5485
- console.log(chalk8.dim(" Run ") + chalk8.hex("#83D1EB")("caliber onboard --force") + chalk8.dim(" to regenerate anyway.\n"));
5485
+ console.log(chalk8.dim(" Run ") + chalk8.hex("#83D1EB")("caliber init --force") + chalk8.dim(" to regenerate anyway.\n"));
5486
5486
  return;
5487
5487
  }
5488
5488
  const isEmpty = fingerprint.fileTree.length < 3;
@@ -5714,7 +5714,7 @@ async function initCommand(options) {
5714
5714
  }
5715
5715
  } catch {
5716
5716
  }
5717
- console.log(chalk8.dim(" Run ") + chalk8.hex("#83D1EB")("caliber onboard --force") + chalk8.dim(" to override.\n"));
5717
+ console.log(chalk8.dim(" Run ") + chalk8.hex("#83D1EB")("caliber init --force") + chalk8.dim(" to override.\n"));
5718
5718
  return;
5719
5719
  }
5720
5720
  if (report) {
@@ -5749,7 +5749,7 @@ async function initCommand(options) {
5749
5749
  trackInitSkillsSearch(false, 0);
5750
5750
  console.log(chalk8.dim(" Skipped. Run ") + chalk8.hex("#83D1EB")("caliber skills") + chalk8.dim(" later to browse.\n"));
5751
5751
  }
5752
- console.log(chalk8.bold.green(" Onboarding complete! Your project is ready for AI-assisted development."));
5752
+ console.log(chalk8.bold.green(" Setup complete! Your project is ready for AI-assisted development."));
5753
5753
  console.log(chalk8.dim(" Run ") + chalk8.hex("#83D1EB")("caliber undo") + chalk8.dim(" to revert changes.\n"));
5754
5754
  console.log(chalk8.bold(" Next steps:\n"));
5755
5755
  console.log(` ${title("caliber score")} See your full config breakdown`);
@@ -6089,7 +6089,7 @@ async function statusCommand(options) {
6089
6089
  }
6090
6090
  if (!manifest) {
6091
6091
  console.log(` Setup: ${chalk10.dim("No setup applied")}`);
6092
- console.log(chalk10.dim("\n Run ") + chalk10.hex("#83D1EB")("caliber onboard") + chalk10.dim(" to get started.\n"));
6092
+ console.log(chalk10.dim("\n Run ") + chalk10.hex("#83D1EB")("caliber init") + chalk10.dim(" to get started.\n"));
6093
6093
  return;
6094
6094
  }
6095
6095
  console.log(` Files managed: ${chalk10.cyan(manifest.entries.length.toString())}`);
@@ -6114,7 +6114,7 @@ async function regenerateCommand(options) {
6114
6114
  }
6115
6115
  const manifest = readManifest();
6116
6116
  if (!manifest) {
6117
- console.log(chalk11.yellow("No existing setup found. Run ") + chalk11.hex("#83D1EB")("caliber onboard") + chalk11.yellow(" first."));
6117
+ console.log(chalk11.yellow("No existing setup found. Run ") + chalk11.hex("#83D1EB")("caliber init") + chalk11.yellow(" first."));
6118
6118
  throw new Error("__exit__");
6119
6119
  }
6120
6120
  const targetAgent = readState()?.targetAgent ?? ["claude", "cursor"];
@@ -6237,7 +6237,7 @@ async function regenerateCommand(options) {
6237
6237
  }
6238
6238
  } catch {
6239
6239
  }
6240
- console.log(chalk11.dim(" Run ") + chalk11.hex("#83D1EB")("caliber onboard --force") + chalk11.dim(" to override.\n"));
6240
+ console.log(chalk11.dim(" Run ") + chalk11.hex("#83D1EB")("caliber init --force") + chalk11.dim(" to override.\n"));
6241
6241
  return;
6242
6242
  }
6243
6243
  displayScoreDelta(baselineScore, afterScore);
@@ -6265,9 +6265,9 @@ async function scoreCommand(options) {
6265
6265
  const separator = chalk12.gray(" " + "\u2500".repeat(53));
6266
6266
  console.log(separator);
6267
6267
  if (result.score < 40) {
6268
- console.log(chalk12.gray(" Run ") + chalk12.hex("#83D1EB")("caliber onboard") + chalk12.gray(" to generate a complete, optimized setup."));
6268
+ console.log(chalk12.gray(" Run ") + chalk12.hex("#83D1EB")("caliber init") + chalk12.gray(" to generate a complete, optimized setup."));
6269
6269
  } else if (result.score < 70) {
6270
- console.log(chalk12.gray(" Run ") + chalk12.hex("#83D1EB")("caliber onboard") + chalk12.gray(" to improve your setup."));
6270
+ console.log(chalk12.gray(" Run ") + chalk12.hex("#83D1EB")("caliber init") + chalk12.gray(" to improve your setup."));
6271
6271
  } else {
6272
6272
  console.log(chalk12.green(" Looking good!") + chalk12.gray(" Run ") + chalk12.hex("#83D1EB")("caliber regenerate") + chalk12.gray(" to rebuild from scratch."));
6273
6273
  }
@@ -7196,7 +7196,7 @@ function parseAgentOption(value) {
7196
7196
  }
7197
7197
  return agents;
7198
7198
  }
7199
- program.command("onboard").alias("init").description("Onboard your project for AI-assisted development").option("--agent <type>", "Target agents (comma-separated): claude, cursor, codex", parseAgentOption).option("--dry-run", "Preview changes without writing files").option("--force", "Overwrite existing setup without prompting").option("--debug-report", void 0, false).action(tracked("onboard", initCommand));
7199
+ program.command("init").description("Initialize your project for AI-assisted development").option("--agent <type>", "Target agents (comma-separated): claude, cursor, codex", parseAgentOption).option("--dry-run", "Preview changes without writing files").option("--force", "Overwrite existing setup without prompting").option("--debug-report", void 0, false).action(tracked("init", initCommand));
7200
7200
  program.command("undo").description("Revert all config changes made by Caliber").action(tracked("undo", undoCommand));
7201
7201
  program.command("status").description("Show current Caliber setup status").option("--json", "Output as JSON").action(tracked("status", statusCommand));
7202
7202
  program.command("regenerate").alias("regen").alias("re").description("Re-analyze project and regenerate setup").option("--dry-run", "Preview changes without writing files").action(tracked("regenerate", regenerateCommand));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rely-ai/caliber",
3
- "version": "1.7.7",
3
+ "version": "1.7.9",
4
4
  "description": "Analyze your codebase and generate optimized AI agent configs (CLAUDE.md, .cursorrules, skills) — no API key needed",
5
5
  "type": "module",
6
6
  "bin": {