{"_id":"@_abstel/openfit","_rev":"4-6a6331bb241a984ee8477e0d4a65db15","name":"@_abstel/openfit","dist-tags":{"latest":"1.3.0"},"versions":{"1.0.0":{"name":"@_abstel/openfit","version":"1.0.0","keywords":["llm","openrouter","ai","cli","local-llm"],"author":{"name":"Animesh"},"license":"MIT","_id":"@_abstel/openfit@1.0.0","maintainers":[{"name":"_abstel","email":"astrobonanimesh.071@gmail.com"}],"homepage":"https://github.com/animesh2004/openfit#readme","bugs":{"url":"https://github.com/animesh2004/openfit/issues"},"bin":{"openfit":"bin/cli.js"},"dist":{"shasum":"c00cc2933694aea4e57b6ec39126227f950a38bb","tarball":"https://registry.npmjs.org/@_abstel/openfit/-/openfit-1.0.0.tgz","fileCount":8,"integrity":"sha512-3z83w1M8ppJGtCxtnmCS5QPnEjJewA/yS+0hVrSJR8yI7FFA/iwHm6Mi9zDAg3x9tWFs9TJfbEO13upek7hMUQ==","signatures":[{"sig":"MEUCIQCvDdBaQ9NZkqMiyxJcp8xbqZgpgr/fHrrFQjRems8jTAIgTGmgUCnYgxdijM+DOgGHDjih2iIdxLQtJ/ecTCZ8bHA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11636},"engines":{"node":">=14"},"scripts":{"start":"node bin/cli.js"},"_npmUser":{"name":"_abstel","email":"astrobonanimesh.071@gmail.com"},"repository":{"url":"git+https://github.com/animesh2004/openfit.git","type":"git"},"_npmVersion":"11.12.1","description":"Find which LLMs can run on your system via OpenRouter","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^5.4.1","axios":"^1.6.0","boxen":"^5.1.2","chalk":"^4.1.2","inquirer":"^8.2.6"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/openfit_1.0.0_1780494905198_0.18047160570898524","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@_abstel/openfit","version":"1.1.0","keywords":["llm","openrouter","ai","cli","local-llm"],"author":{"name":"Animesh"},"license":"MIT","_id":"@_abstel/openfit@1.1.0","maintainers":[{"name":"_abstel","email":"astrobonanimesh.071@gmail.com"}],"homepage":"https://github.com/animesh2004/openfit#readme","bugs":{"url":"https://github.com/animesh2004/openfit/issues"},"bin":{"openfit":"bin/cli.js"},"dist":{"shasum":"58af1286403945d33b686a67e00f4d40e7f21d13","tarball":"https://registry.npmjs.org/@_abstel/openfit/-/openfit-1.1.0.tgz","fileCount":8,"integrity":"sha512-qtAxRWUn9fpESqQm9OCjDBLgqDvn/z6QtN85XiyO3PbNgNQ2dVvzBzoPnEJzAbKL3+7bihwCTGgSYgZUf2KytQ==","signatures":[{"sig":"MEUCIQCfBqpqn37wpSMI1kqUMzTScgO9sjUztjuV0RG3MNdi5QIgTNCupehgjqDFhPPetWnOHxs+UdDQAdb3/dGqzXAmFCY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14170},"engines":{"node":">=14"},"scripts":{"start":"node bin/cli.js"},"_npmUser":{"name":"_abstel","email":"astrobonanimesh.071@gmail.com"},"repository":{"url":"git+https://github.com/animesh2004/openfit.git","type":"git"},"_npmVersion":"11.12.1","description":"Find which LLMs can run on your system via OpenRouter","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^5.4.1","axios":"^1.6.0","boxen":"^5.1.2","chalk":"^4.1.2","inquirer":"^8.2.6"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/openfit_1.1.0_1780495790582_0.8100562538407423","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@_abstel/openfit","version":"1.2.0","keywords":["llm","openrouter","ai","cli","local-llm"],"author":{"name":"Animesh"},"license":"MIT","_id":"@_abstel/openfit@1.2.0","maintainers":[{"name":"_abstel","email":"astrobonanimesh.071@gmail.com"}],"homepage":"https://github.com/animesh2004/openfit#readme","bugs":{"url":"https://github.com/animesh2004/openfit/issues"},"bin":{"openfit":"bin/cli.js"},"dist":{"shasum":"58980ad819afab7e4e4d1c5b1e1d2599757b51cd","tarball":"https://registry.npmjs.org/@_abstel/openfit/-/openfit-1.2.0.tgz","fileCount":10,"integrity":"sha512-0hZ78u6Mg1FJXi5JGpJomXGiyQpME4HooHRbMLQfntQ/0I4W4Cxs0INQBjY+beEDeF8UgcONLWyqGXCPWoeevw==","signatures":[{"sig":"MEUCIAU1N1rF8fOeefyA+rg9NNEBffoNQyl1CCODy01z81psAiEAuWeR1Mg4VrSwYj044P2HYOKU6yPFHJ6iTAx9VjDEeOM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22890},"engines":{"node":">=14"},"gitHead":"0f42abf9ec0437e5e1c31421e242bf94f775735e","scripts":{"start":"node bin/cli.js"},"_npmUser":{"name":"_abstel","email":"astrobonanimesh.071@gmail.com"},"repository":{"url":"git+https://github.com/animesh2004/openfit.git","type":"git"},"_npmVersion":"11.12.1","description":"Find which LLMs can run on your system via OpenRouter","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ora":"^5.4.1","axios":"^1.6.0","boxen":"^5.1.2","chalk":"^4.1.2","inquirer":"^8.2.6","systeminformation":"^5.31.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/openfit_1.2.0_1780500578585_0.572402399776462","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@_abstel/openfit","version":"1.3.0","description":"Find which LLMs can run on your system via OpenRouter","author":{"name":"Animesh"},"repository":{"type":"git","url":"git+https://github.com/animesh2004/openfit.git"},"homepage":"https://github.com/animesh2004/openfit#readme","bugs":{"url":"https://github.com/animesh2004/openfit/issues"},"bin":{"openfit":"bin/cli.js","openfit-mcp":"bin/mcp-server.js"},"scripts":{"start":"node bin/cli.js"},"keywords":["llm","openrouter","ai","cli","local-llm"],"license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","axios":"^1.6.0","boxen":"^5.1.2","chalk":"^4.1.2","inquirer":"^8.2.6","ora":"^5.4.1","systeminformation":"^5.31.7"},"engines":{"node":">=14"},"gitHead":"f4afccd539d2c7a0ec5b79421a1ef7be78d06f3f","_id":"@_abstel/openfit@1.3.0","_nodeVersion":"22.14.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-p+jZP6VTYYm2UGpwQ/82FbhcIiXboJ3anAUv+6ag8FQBqqM36+YTTG9YpoyA3orJr7b4sCvQdaW5iKbcOOlAAg==","shasum":"6e2a5a2c54c95bb5ddcb6c3102bcbf1f0ff580a6","tarball":"https://registry.npmjs.org/@_abstel/openfit/-/openfit-1.3.0.tgz","fileCount":11,"unpackedSize":29525,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDREG1Y1O7iWay4Tn8YnNKmHhAO7mR/Fj+Tx4yDROPs4QIhAPzq7ZjXROYOPTE0eR9kSXvN3s1MW+ZgIemmKDZ6pdlA"}]},"_npmUser":{"name":"_abstel","email":"astrobonanimesh.071@gmail.com"},"directories":{},"maintainers":[{"name":"_abstel","email":"astrobonanimesh.071@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/openfit_1.3.0_1780505268830_0.5693553193402712"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-03T13:55:04.991Z","modified":"2026-06-03T16:47:49.180Z","1.0.0":"2026-06-03T13:55:05.345Z","1.1.0":"2026-06-03T14:09:50.720Z","1.2.0":"2026-06-03T15:29:38.741Z","1.3.0":"2026-06-03T16:47:48.957Z"},"bugs":{"url":"https://github.com/animesh2004/openfit/issues"},"author":{"name":"Animesh"},"license":"MIT","homepage":"https://github.com/animesh2004/openfit#readme","keywords":["llm","openrouter","ai","cli","local-llm"],"repository":{"type":"git","url":"git+https://github.com/animesh2004/openfit.git"},"description":"Find which LLMs can run on your system via OpenRouter","maintainers":[{"name":"_abstel","email":"astrobonanimesh.071@gmail.com"}],"readme":"# openfit\n\nFind which LLMs can run on your machine — quant-aware, GPU-aware, via OpenRouter.\n\n## Usage\n\n```bash\nnpx @_abstel/openfit\n```\n\nOr skip the prompts:\n\n```bash\nnpx @_abstel/openfit --free --code      # free coding models, no prompts\nnpx @_abstel/openfit --paid --json      # all paid models, machine-readable\nnpx @_abstel/openfit --help             # all options\n```\n\n## What it does\n\n- Detects your **RAM, CPU, GPU and VRAM** (via `systeminformation`)\n- Fetches all models from OpenRouter (no API key) and filters by tier + use case\n- Estimates real RAM at each **quant level** (Q4_K_M / Q8_0 / FP16) — the way you\n  actually run models — not one made-up full-precision number\n- Tells you whether each model runs **⚡ fast** (fits in VRAM) or **🐢 slow** (RAM only)\n- Gives you a **verified** `ollama pull` command (only when the model really exists\n  in Ollama's library — no fake commands)\n\n## How it works\n\n1. Pick **Free** or **Paid** (or pass `--free` / `--paid`).\n2. Pick a **use case** — Text/Chat, Code, Vision, Image generation, Audio, or Any\n   (or pass `--text`, `--code`, …).\n3. openfit scans your hardware silently.\n4. It pulls the full model list from OpenRouter and filters by your use case using\n   each model's input/output modalities.\n5. For every model it computes the footprint at Q4 / Q8 / FP16\n   (`params × bytes-per-weight × overhead`) and checks what fits your RAM and VRAM.\n   Mixture-of-Experts models are sized by **total** params (all experts stay resident).\n6. You get two lists: models you **can** run (with the verified `ollama pull` command\n   and a fast/slow verdict) and models you **can't** (with how much more RAM you'd\n   need, even at Q4).\n\n## Options\n\n| Flag | Description |\n|------|-------------|\n| `--free` / `--paid` | Filter by OpenRouter tier (skips the prompt) |\n| `--text` `--code` `--vision` `--image` `--audio` `--any` | Use case |\n| `--json` | Machine-readable output (non-interactive) |\n| `-h, --help` | Show help |\n| `-v, --version` | Show version |\n\n> Note: OpenRouter is mostly text/chat and multimodal LLMs. Vision and code models\n> are well represented; true image-generation and audio models are a short list\n> (and mostly on the paid tier).\n\n## Use it from your editor (MCP)\n\nopenfit ships an [MCP](https://modelcontextprotocol.io) server, so **Claude Code,\nCursor, VS Code (Copilot), Windsurf and Zed** can call it directly — ask your AI\n\"what models can I run on this machine?\" and it answers with live hardware data.\n\nIt exposes three tools:\n\n| Tool | What it does |\n|------|--------------|\n| `scan_system` | Returns this machine's RAM / CPU / GPU / VRAM |\n| `find_runnable_models` | Lists OpenRouter models that fit (by tier + use case) with quant + ollama command |\n| `check_model` | Checks whether a specific model/size fits, with a fast/slow/won't-run verdict |\n\n### Claude Code\n\n```bash\nclaude mcp add openfit -- npx -y -p @_abstel/openfit openfit-mcp\n```\n\n### Cursor / VS Code / Windsurf / Zed\n\nAdd to your MCP config (`.cursor/mcp.json`, VS Code `mcp.json`, etc.):\n\n```json\n{\n  \"mcpServers\": {\n    \"openfit\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"-p\", \"@_abstel/openfit\", \"openfit-mcp\"]\n    }\n  }\n}\n```\n\n## Don't have the RAM?\n\nAny model can be run through the [OpenRouter API](https://openrouter.ai) without\nlocal hardware.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}