{"_id":"@bestceo/cli","name":"@bestceo/cli","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@bestceo/cli","version":"0.1.0","description":"CIB marketing-intelligence CLI","private":false,"publishConfig":{"access":"public"},"type":"module","engines":{"node":">=22"},"bin":{"cib":"dist/bin.js"},"main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"type-check":"tsc --noEmit","build":"tsc -p tsconfig.build.json && node scripts/restore-shebang.mjs","test":"vitest run --root ../.. packages/cli","prepublishOnly":"pnpm build"},"dependencies":{"@cib/types":"workspace:*","commander":"^12.1.0","keytar":"^7.9.0","ink":"^7.0.0","ink-text-input":"^6.0.0","react":"^19.0.0"},"devDependencies":{"@types/node":"^22.0.0","@types/react":"^19.0.0","typescript":"^5.7.0","vitest":"^2.1.0","ink-testing-library":"^4.0.0"},"_id":"@bestceo/cli@0.1.0","gitHead":"022bcc43c9e9925b1311ba0830a277226e8ff3ea","_nodeVersion":"24.9.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-xNUkP0CVah0dFH+2yYAkDQfSHxfRD70t1z7UqWNTDjxzvV3oEABTBrb1N+O2HmK92qFxsJb1+UT/TBHxUIg7IQ==","shasum":"65896ce0c26117d8e12fe669aad2af4886ae5392","tarball":"https://registry.npmjs.org/@bestceo/cli/-/cli-0.1.0.tgz","fileCount":127,"unpackedSize":141664,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDGtgVbto2D4rooAkdUa09nWUVAYS3klKN244DUb+p72wIgbvHm9kW5aSU3rV60fNguJMsm0BMuCjQiNjXDwNTKc4Y="}]},"_npmUser":{"name":"aytuncyildizli","email":"aytuncyildizli@gmail.com"},"directories":{},"maintainers":[{"name":"aytuncyildizli","email":"aytuncyildizli@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cli_0.1.0_1777050372171_0.8567308451418019"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-24T17:06:12.027Z","0.1.0":"2026-04-24T17:06:12.385Z","modified":"2026-04-24T17:06:12.685Z"},"maintainers":[{"name":"aytuncyildizli","email":"aytuncyildizli@gmail.com"}],"description":"CIB marketing-intelligence CLI","readme":"# @bestceo/cli\n\nCIB marketing-intelligence from your terminal. Pipe it into CI, cron, pre-commit hooks, or use it interactively.\n\n## Install\n\n```bash\n# via npm\nnpm install -g @bestceo/cli\n\n# via curl (requires Node 22+ to be installed first)\ncurl -fsSL https://best-ceo.com/install.sh | sh\n\n# via Homebrew\nbrew install cib/tap/cib\n```\n\nRequires Node 22+.\n\n## Authenticate\n\n```bash\ncib login\n# → opens device-code flow, prints verification URL + code\n```\n\nOr skip the flow and pass a key directly:\n\n```bash\ncib login --api-key cib_live_xxx\n```\n\nFor CI/Docker, export the env var instead — the CLI never writes tokens to disk:\n\n```bash\nexport CIB_API_KEY=cib_live_xxx\n```\n\n## Quick tour\n\n```bash\ncib analyze https://yoursite.com --watch     # full audit\ncib findings                                 # list SEO findings from latest analysis\ncib fix list                                 # show fix-able findings\ncib fix preview seo-h1-missing --repo you/yours\ncib fix apply seo-h1-missing --repo you/yours\n\ncib brief                                    # today's daily brief\ncib chat                                     # interactive REPL\ncib exec --auto low \"summarize my competitors\"\n\ncib mcp install --client claude-code         # hook into your AI agent\n```\n\n## Command reference\n\n### Auth & config\n\n| Command | Description |\n|---|---|\n| `cib login [--api-key K]` | Device-code flow, or save a key directly |\n| `cib logout` | Remove key from OS keychain |\n| `cib auth status` | Show active auth source (env / keychain / unauthenticated) |\n| `cib config show` | Print local config |\n| `cib config set <key> <value>` | Set `apiBase` or `format` |\n| `cib config unset <key>` | Remove a config key |\n| `cib version` | Print CLI version |\n| `cib health` | Check CIB API health |\n\n### Analyze\n\n| Command | Description |\n|---|---|\n| `cib analyze <url> [--watch] [--json]` | Trigger analysis |\n| `cib findings [analysisId] [--severity LEVEL] [--json]` | List SEO findings |\n| `cib report <analysisId>` | Print the full marketing report |\n| `cib brief [--json]` | Today's daily brief |\n\n### Fix workflow\n\n| Command | Description |\n|---|---|\n| `cib fix list [analysisId] [--json]` | List fix-able findings |\n| `cib fix preview <findingId> --repo O/R [--json]` | Preview Claude-generated fix |\n| `cib fix apply <findingId> --repo O/R [--branch B] [--json]` | Open GitHub PR with the fix |\n\n### Skills\n\n| Command | Description |\n|---|---|\n| `cib skill list [--category C] [--json]` | List available skills |\n| `cib skill run <skillId> [--params JSON]` | Start an async skill job |\n| `cib skill status <jobId> [--json]` | Poll a skill job |\n\n### Strategy\n\n| Command | Description |\n|---|---|\n| `cib direction show [--json]` | Show strategic direction |\n| `cib direction set [--metric N] [--target T] [--timeframe T] [--posture P]` | Update direction |\n\n### Competitive + integrations\n\n| Command | Description |\n|---|---|\n| `cib competitors [--json]` | Competitor intel |\n| `cib mentions [--source reddit|hn] [--json]` | Recent mentions |\n| `cib integrations [--json]` | List connected integrations |\n| `cib connect <provider>` | OAuth init (prints URL — complete in browser) |\n\n### Headless / agentic\n\n| Command | Description |\n|---|---|\n| `cib exec <prompt> [--auto low|medium|high] [--json] [--yes-apply]` | One-shot agent prompt |\n| `cib chat [message]` | Interactive REPL (or one-shot if `message` given) |\n| `cib resume [--last|--id SID]` | Resume a previous chat session |\n| `cib fork <prompt> [--last|--id SID]` | Fork a session with a new prompt |\n| `cib mcp install --client claude-code|droid|cursor|codex` | Hook into an AI agent |\n| `cib autopilot enable|status|disable` | Opt into `--auto high` on this machine |\n\n## Auth sources\n\nPriority (first match wins):\n\n1. `CIB_API_KEY` environment variable\n2. OS keychain (macOS Keychain / Windows Credential Manager / Linux libsecret)\n3. Unauthenticated (every command will prompt you to `cib login`)\n\nThe CLI never writes tokens to disk. If `keytar` can't access the OS keychain (common on headless Linux without `libsecret`), `cib login` refuses to persist and instructs you to set `CIB_API_KEY`.\n\n## Autonomy levels\n\n| `--auto` | What it does |\n|---|---|\n| `low` (default) | Read-only. No PR creation, no skill execution, no writes. |\n| `medium` | Opens PRs, runs skills. No auto-merge. |\n| `high` | Full autopilot — auto-merge fix PRs, apply writes. **Requires `cib autopilot enable` first + `--yes-apply` or `CIB_AUTOPILOT=1`.** |\n\n## Sessions\n\nEvery interactive chat writes a JSONL transcript to `~/.cib/sessions/<uuid>.jsonl`.\n\n```bash\ncib chat                              # starts a new session\ncib resume --last                     # continue the most recent\ncib resume --id 6a1b2c3d              # continue a specific one\ncib fork --last \"what if we pivot?\"   # branch from the most recent\n```\n\nSessions stay local — no transcripts are sent to CIB except when you run a chat turn.\n\n## Config\n\nLocation: `~/.cib/config.json` (mode 0600)\n\n```json\n{\n  \"apiBase\": \"https://best-ceo.com\",\n  \"format\": \"pretty\",\n  \"autopilot\": { \"enabled\": true, \"enabledAt\": \"2026-04-23T12:00:00Z\", \"hostname\": \"ayt-mbp\" }\n}\n```\n\nNever contains secrets. Secrets live in the OS keychain or `CIB_API_KEY`.\n\n## Docs\n\n- MCP quickstart: [`docs/mcp/README.md`](../../docs/mcp/README.md)\n- CIB platform: [best-ceo.com](https://best-ceo.com)\n","readmeFilename":"README.md","_rev":"1-4dea2b28a05a11f894bbc5142817aa24"}