{"_id":"@anaygarodia/gearbox","_rev":"3-161e56cf6d9c7ae8a6ccbd8d24729019","name":"@anaygarodia/gearbox","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@anaygarodia/gearbox","version":"0.1.0","license":"MIT","_id":"@anaygarodia/gearbox@0.1.0","maintainers":[{"name":"anaygarodia","email":"agarodia98@gmail.com"}],"bin":{"gearbox":"bin/gearbox.js"},"dist":{"shasum":"1464e5a45948e8c1cc5d15c1d953b52762634d36","tarball":"https://registry.npmjs.org/@anaygarodia/gearbox/-/gearbox-0.1.0.tgz","fileCount":70,"integrity":"sha512-pP4H5sv/so1aicDnAHdqosSrYIMzvr94vpJwoOIATuoRB+pWV721NdyY66ilJ7DnhPS+u5IByioagycNmQcgQg==","signatures":[{"sig":"MEQCIAb6MtC5J76JAbY8ULnrTvZFXAdDBxewDfpTa+1VDc5qAiBuGJyYEYgzA3h/qAO1toI+TIUhEHWKj9cYK2HQ1sqoVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":591681},"type":"module","gitHead":"c2cb15c516b05e4d2249703f416baa5437db3021","scripts":{"link":"bun link","test":"bun test","build":"bun build --compile src/cli.tsx --outfile dist/gearbox","start":"bun run src/cli.tsx","gearbox":"bun run src/cli.tsx","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anaygarodia","email":"agarodia98@gmail.com"},"_npmVersion":"10.9.0","description":"A beautiful multi-provider coding harness for the terminal. (Intelligent model routing lands on top of this soon.)","directories":{},"_nodeVersion":"22.11.0","dependencies":{"ai":"^5.0.0","ink":"^5.0.0","zod":"^3.25.0","diff":"^9.0.0","react":"^18.3.1","marked":"15","@inkjs/ui":"^2.0.0","js-tiktoken":"^1.0.21","@ai-sdk/azure":"2","@ai-sdk/google":"^2.0.0","@ai-sdk/openai":"^2.0.0","@ai-sdk/deepseek":"^1.0.0","@ai-sdk/anthropic":"^2.0.0","react-devtools-core":"^7.0.1","@ai-sdk/google-vertex":"3","@ai-sdk/amazon-bedrock":"3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pngjs":"^7.0.0","@types/bun":"^1.3.14","typescript":"^5.6.0","@types/diff":"^8.0.0","@types/node":"^25.9.1","@types/pngjs":"^6.0.5","@types/react":"^18.3.0","ink-testing-library":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gearbox_0.1.0_1780667574158_0.20257492188953252","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@anaygarodia/gearbox","version":"0.1.1","license":"MIT","_id":"@anaygarodia/gearbox@0.1.1","maintainers":[{"name":"anaygarodia","email":"agarodia98@gmail.com"}],"bin":{"gearbox":"bin/gearbox.js"},"dist":{"shasum":"2f8fbb76492180faa390561990ab1de53ca88097","tarball":"https://registry.npmjs.org/@anaygarodia/gearbox/-/gearbox-0.1.1.tgz","fileCount":70,"integrity":"sha512-JmLd1cS6XgJs1rfS9Fger9bYLibdq1K0ANy/nr3PUJysXohBwjR4ojdSd95BLUDjVKgVrm1G9c2roWs6ienbYg==","signatures":[{"sig":"MEQCIGWvjirU9SPS6b1tfhtIjGfdsYFZ11TNNHqYKeYi/TmFAiAM7ZSAnOn44WiLnSyXEtAWKgZHWglKBz1oCWBRuj8kbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":591649},"type":"module","gitHead":"c2cb15c516b05e4d2249703f416baa5437db3021","scripts":{"link":"bun link","test":"bun test","build":"bun build --compile src/cli.tsx --outfile dist/gearbox","start":"bun run src/cli.tsx","gearbox":"bun run src/cli.tsx","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anaygarodia","email":"agarodia98@gmail.com"},"_npmVersion":"10.9.0","description":"A beautiful multi-provider coding harness for the terminal. (Intelligent model routing lands on top of this soon.)","directories":{},"_nodeVersion":"22.11.0","dependencies":{"ai":"^5.0.0","ink":"^5.0.0","zod":"^3.25.0","diff":"^9.0.0","react":"^18.3.1","marked":"15","js-tiktoken":"^1.0.21","@ai-sdk/google":"^2.0.0","@ai-sdk/openai":"^2.0.0","@ai-sdk/deepseek":"^1.0.0","@ai-sdk/anthropic":"^2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pngjs":"^7.0.0","@types/bun":"^1.3.14","typescript":"^5.6.0","@types/diff":"^8.0.0","@types/node":"^25.9.1","@types/pngjs":"^6.0.5","@types/react":"^18.3.0","ink-testing-library":"^4.0.0"},"optionalDependencies":{"@ai-sdk/azure":"2","@ai-sdk/google-vertex":"3","@ai-sdk/amazon-bedrock":"3"},"_npmOperationalInternal":{"tmp":"tmp/gearbox_0.1.1_1780667797403_0.35628772465680525","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@anaygarodia/gearbox","version":"0.1.2","description":"A beautiful multi-provider coding harness for the terminal. (Intelligent model routing lands on top of this soon.)","type":"module","license":"MIT","bin":{"gearbox":"dist/cli.mjs"},"publishConfig":{"access":"public"},"scripts":{"start":"bun run src/cli.tsx","gearbox":"bun run src/cli.tsx","link":"bun link","build":"bun build --target=node src/cli.tsx --outfile dist/cli.mjs && node scripts/add-shebang.mjs","prepublishOnly":"bun run build","typecheck":"tsc --noEmit","test":"bun test"},"devDependencies":{"@ai-sdk/amazon-bedrock":"3","@ai-sdk/anthropic":"^2.0.0","@ai-sdk/azure":"2","@ai-sdk/deepseek":"^1.0.0","@ai-sdk/google":"^2.0.0","@ai-sdk/google-vertex":"3","@ai-sdk/openai":"^2.0.0","@types/bun":"^1.3.14","@types/diff":"^8.0.0","@types/node":"^25.9.1","@types/pngjs":"^6.0.5","@types/react":"^18.3.0","ai":"^5.0.0","diff":"^9.0.0","ink":"^5.0.0","ink-testing-library":"^4.0.0","js-tiktoken":"^1.0.21","marked":"15","pngjs":"^7.0.0","react":"^18.3.1","typescript":"^5.6.0","zod":"^3.25.0"},"_id":"@anaygarodia/gearbox@0.1.2","gitHead":"c2cb15c516b05e4d2249703f416baa5437db3021","_nodeVersion":"22.11.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-J5HU84xz2YTebOF/s8EIqnyeovQfIqLFJRCXM0UhbJO8t4wcqNQVX/DrNpmWAyDui3Mp56FVAXX4ie5bWo7Pkg==","shasum":"15cd1a864cc8032ed6fba72655876dc2b7d39ee7","tarball":"https://registry.npmjs.org/@anaygarodia/gearbox/-/gearbox-0.1.2.tgz","fileCount":4,"unpackedSize":10914838,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIE37YSgZ2ynjG26UKE6S/FhOrK7K9CoKwAHT8sePEkaZAiEA0T30Mcv7O7wkUxq5quEmEQeFLJYUmw9L1LYjiSni5I0="}]},"_npmUser":{"name":"anaygarodia","email":"agarodia98@gmail.com"},"directories":{},"maintainers":[{"name":"anaygarodia","email":"agarodia98@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gearbox_0.1.2_1780668688693_0.3469057582134998"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-05T13:52:54.004Z","modified":"2026-06-05T14:11:29.133Z","0.1.0":"2026-06-05T13:52:54.336Z","0.1.1":"2026-06-05T13:56:37.591Z","0.1.2":"2026-06-05T14:11:29.035Z"},"license":"MIT","description":"A beautiful multi-provider coding harness for the terminal. (Intelligent model routing lands on top of this soon.)","maintainers":[{"name":"anaygarodia","email":"agarodia98@gmail.com"}],"readme":"# ⚙ gearbox\n\nA beautiful, simple coding harness for the terminal. It reads, edits, and runs your code through one clean agent loop, talking to any provider (Anthropic, OpenAI, Google, DeepSeek).\n\n> **What it does:** the point of Gearbox is *intelligent per-task model routing* — automatically using the right model for each task across every provider and account you pay for, cheaply and transparently. Basic routing is live: it classifies each task, filters candidates by quality bar, and picks the cheapest one that fits. The richer engine (shadow-eval, credit/limit scoring, confidence display) layers on top. See [`DESIGN.md`](./DESIGN.md).\n\n```\n ⚙   gearbox\n     coding harness · sonnet-4.6\n ──────────────────────────────────────────────────────────\n\n › add a --json flag to the CLI and cover it with a test\n\n ⏺  I'll see how args are parsed, add the flag, then test it.\n\n   ✓ read_file  src/cli.tsx\n     renders the Ink app · 18 lines\n   ✓ edit_file  src/cli.tsx\n   ✓ run_shell  bun test\n     9 pass · 0 fail\n\n ⏺  Done — flag added with a passing test.\n\n ╭──────────────────────────────────────────────────────────╮\n │ › ask gearbox to build or fix something                  │\n ╰──────────────────────────────────────────────────────────╯\n  gearbox · sonnet-4.6 · 18,432 tok · ⏎ send  ctrl+c quit\n```\n\n## Run\n\n```bash\nbun install\nexport ANTHROPIC_API_KEY=...   # or OPENAI_API_KEY / GOOGLE_GENERATIVE_AI_API_KEY / DEEPSEEK_API_KEY\nbun start                      # or: bun run src/cli.tsx\nbun start -- --model gemini-flash   # pick a model\n```\n\nNo key? It launches in demo mode so you can see the interface. Preview the look without running anything:\n\n```bash\nbun run scripts/preview.tsx\n```\n\n## Install for internal use (the `gearbox` command, anywhere)\n\nRequires [Bun](https://bun.sh). Clone the repo, then:\n\n```bash\n./install.sh          # bun install + bun link  → 'gearbox' on your PATH\nexport ANTHROPIC_API_KEY=...   # each person uses their own key (add to ~/.zshrc)\ncd ~/any/project && gearbox    # the current directory is the workspace\n```\n\n**Upgrade** later with one command — `gearbox upgrade` (pulls latest + reinstalls deps). Equivalent to `git pull && bun install` in the repo. If `gearbox` isn't found, add Bun's bin dir to PATH: `export PATH=\"$HOME/.bun/bin:$PATH\"`.\n\n**Standalone binary** (no clone/install on the target, same OS/arch):\n\n```bash\nbun run build         # → dist/gearbox  (single ~64MB executable)\ncp dist/gearbox ~/.bun/bin/    # or anywhere on PATH; share the file directly\n```\n\n> ⚠ **Before running on real code:** there is no permission/confirm gate yet — `write_file`, `edit_file`, `run_shell`, and the `!` prefix execute without asking. Fine for trusted internal use on your own repos; do not point it at anything you don't want modified. A confirm-gate is the next thing to land.\n\n## Develop\n\n```bash\nbun test            # render + agent tests (no API key needed)\nbun run typecheck\n```\n\n## Principles\n\n- **Open + free.** MIT. No paid dependencies, no hosted backend, no telemetry. The only cost is your own model calls on your own keys.\n- **Beautiful + calm.** One accent color, generous spacing, consistent glyphs. The whole look lives in `src/ui/theme.ts`.\n- **Routing-ready.** Model choice happens in exactly one place (`src/model/selector.ts`); the router drops in there later with no changes upstream. See [`CLAUDE.md`](./CLAUDE.md).\n\n## Status\n\nv0.1 — streaming agent loop, real file + shell tools, a polished Ink TUI, multi-provider support, accounts + spend ledger, BM25 context retrieval, and basic per-task routing (classify → quality bar → cheapest winner). The richer routing engine (shadow-eval, credit/limit/plan scoring, per-repo calibration) is next (`DESIGN.md`).\n","readmeFilename":"README.md"}