{"_id":"@adambenhassen/openclaude","_rev":"9-0bd32a2f35e01fb81364f400dd70a39f","name":"@adambenhassen/openclaude","dist-tags":{"latest":"0.27.0-9"},"versions":{"0.27.0-1":{"name":"@adambenhassen/openclaude","version":"0.27.0-1","keywords":["claude-code","openai","llm","cli","agent","deepseek","ollama","gemini"],"license":"SEE LICENSE FILE","_id":"@adambenhassen/openclaude@0.27.0-1","maintainers":[{"name":"adambenhassen","email":"adambenhassen@hotmail.com"}],"homepage":"https://github.com/Gitlawb/openclaude#readme","bugs":{"url":"https://github.com/Gitlawb/openclaude/issues"},"bin":{"openclaude":"bin/openclaude"},"dist":{"shasum":"f6925eb5913fe19e3d1f6b7b04ffe7dc44f1dc35","tarball":"https://registry.npmjs.org/@adambenhassen/openclaude/-/openclaude-0.27.0-1.tgz","fileCount":14,"integrity":"sha512-7uVU8fRqx+dgEjFue3q+zjxUUpwSMPm4tn2DzQGESuKUXWJzZvg+BO4nyB3BNYaCZrnfLoxkuPGmJCetOJLPvQ==","signatures":[{"sig":"MEUCIQDfJ+4ppdGZVgW33evumG02g71LOjOer65YorByCRwC/AIgfm5hnoG7G9jaJ9d1kIGKWZ7Ysoi5vWpVbLm3PRnPcsA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32225159},"type":"module","engines":{"node":">=22.0.0"},"exports":{"./sdk":{"types":"./src/entrypoints/sdk.d.ts","import":"./dist/sdk.mjs"},"./dist/cli.mjs":"./dist/cli.mjs","./package.json":"./package.json"},"gitHead":"d6e2839fdc40e137d54a2bb60bd4d3521e8cdaba","scripts":{"dev":"bun run build && node bin/openclaude","test":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1","build":"bun run scripts/build.ts","check":"bun run smoke && bun run deadcode && bun run test:full","smoke":"bun run build && node dist/cli.mjs --version","start":"node bin/openclaude","prepack":"npm run build","web:dev":"bun run --cwd web dev","deadcode":"knip --include files,dependencies","dev:code":"bun run profile:code && bun run dev:profile","dev:fast":"bun run profile:fast && bun run dev:ollama:fast","dev:grpc":"bun run scripts/start-grpc.ts","dev:codex":"bun run scripts/provider-launch.ts codex","test:full":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1","typecheck":"tsc --noEmit","web:build":"bun run --cwd web build","dev:gemini":"bun run scripts/provider-launch.ts gemini","dev:ollama":"bun run scripts/provider-launch.ts ollama","dev:openai":"bun run scripts/provider-launch.ts openai","dev:profile":"bun run scripts/provider-launch.ts","web:preview":"bun run --cwd web preview","dev:grpc:cli":"bun run scripts/grpc-cli.ts","profile:auto":"bun run scripts/provider-recommend.ts --apply","profile:code":"bun run profile:init -- --provider ollama --model qwen2.5-coder:7b","profile:fast":"bun run profile:init -- --provider ollama --model llama3.2:3b","profile:init":"bun run scripts/provider-bootstrap.ts","doctor:report":"bun run scripts/system-check.ts --out reports/doctor-runtime.json","profile:codex":"bun run profile:init -- --provider codex --model codexplan","test:coverage":"bun test --feature=UNATTENDED_RETRY --coverage --coverage-reporter=lcov --coverage-dir=coverage --max-concurrency=1 && bun run scripts/render-coverage-heatmap.ts","test:provider":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1 src/services/api/*.test.ts src/services/api/openaiShim/*.test.ts src/utils/context.test.ts","web:typecheck":"bun run --cwd web typecheck","build:verified":"bun run build && bun run verify:privacy","doctor:runtime":"bun run scripts/system-check.ts","install:verify":"bun run scripts/verify-clean-install.ts","verify:privacy":"bun run scripts/verify-no-phone-home.ts","dev:atomic-chat":"bun run scripts/provider-launch.ts atomic-chat","dev:ollama:fast":"bun run scripts/provider-launch.ts ollama --fast --bare","hardening:check":"bun run smoke && bun run doctor:runtime","dev:profile:fast":"bun run scripts/provider-launch.ts auto --fast --bare","hardening:strict":"bun run typecheck && bun run hardening:check","security:pr-scan":"bun run scripts/pr-intent-scan.ts","test:coverage:ui":"bun run scripts/render-coverage-heatmap.ts","profile:recommend":"bun run scripts/provider-recommend.ts","integrations:check":"bun run scripts/generate-integrations-artifacts.ts --check","doctor:runtime:json":"bun run scripts/system-check.ts --json","typecheck:type-tests":"bun run scripts/typecheck-type-tests.ts","integrations:generate":"bun run scripts/generate-integrations-artifacts.ts","install:verify:published":"bun run scripts/verify-clean-install.ts --published","test:provider-recommendation":"bun test src/utils/providerRecommendation.test.ts src/utils/providerProfile.test.ts"},"_npmUser":{"name":"adambenhassen","email":"adambenhassen@hotmail.com"},"overrides":{"lodash-es":"4.18.1","ip-address":"10.2.0","node-domexception":"file:vendor/node-domexception-shim","google-auth-library":"10.6.2"},"repository":{"url":"git+https://github.com/Gitlawb/openclaude.git","type":"git"},"_npmVersion":"11.13.0","description":"OpenClaude opens coding-agent workflows to any LLM — OpenAI, Gemini, DeepSeek, Ollama, and 200+ models","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"sharp@0.34.5":true,"protobufjs@7.6.4":true},"dependencies":{"@orama/orama":"3.1.18","@vscode/ripgrep":"1.18.0","@orama/plugin-data-persistence":"3.1.18"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"8.21.0","ajv":"8.18.0","xss":"1.0.15","zod":"3.25.76","diff":"8.0.3","knip":"^6.16.1","yaml":"2.8.3","axios":"1.16.0","chalk":"5.6.2","execa":"9.6.1","p-map":"7.0.4","react":"19.2.4","sharp":"^0.34.5","fflate":"0.8.2","ignore":"7.0.5","marked":"15.0.12","qrcode":"1.5.4","semver":"7.7.4","undici":"7.28.0","bidi-js":"1.0.3","figures":"6.1.0","fuse.js":"7.1.0","chokidar":"4.0.3","turndown":"7.2.2","auto-bind":"5.0.1","cli-boxes":"3.0.0","commander":"12.1.0","env-paths":"3.0.0","lodash-es":"4.18.1","lru-cache":"11.2.7","picomatch":"4.0.4","tree-kill":"1.2.2","type-fest":"4.41.0","wrap-ansi":"9.0.2","@types/bun":"1.3.11","graphology":"0.26.0","typescript":"5.9.3","@types/node":"25.5.0","cross-spawn":"7.0.6","emoji-regex":"10.6.0","js-tiktoken":"1.0.21","shell-quote":"1.8.4","signal-exit":"4.1.0","usehooks-ts":"3.1.1","@smithy/core":"3.24.3","@types/react":"19.2.14","jsonc-parser":"3.3.1","@grpc/grpc-js":"^1.14.3","cli-highlight":"2.1.11","indent-string":"5.0.0","@azure/identity":"^4.13.1","proper-lockfile":"4.1.2","web-tree-sitter":"0.25.10","duck-duck-scrape":"^2.2.7","react-reconciler":"0.33.0","@anthropic-ai/sdk":"0.94.0","https-proxy-agent":"7.0.6","tree-sitter-wasms":"0.1.13","@grpc/proto-loader":"^0.8.0","graphology-metrics":"2.4.0","@aws-sdk/client-sts":"3.1047.0","google-auth-library":"10.6.2","supports-hyperlinks":"3.2.0","get-east-asian-width":"1.5.0","react-compiler-runtime":"1.0.0","@aws-sdk/client-bedrock":"3.1047.0","@alcalzone/ansi-tokenize":"0.3.0","@anthropic-ai/bedrock-sdk":"0.29.1","@anthropic-ai/foundry-sdk":"0.2.3","@modelcontextprotocol/sdk":"1.29.0","@smithy/node-http-handler":"4.7.3","@commander-js/extra-typings":"12.1.0","@anthropic-ai/sandbox-runtime":"0.0.55","vscode-languageserver-protocol":"3.17.5","@aws-sdk/credential-provider-node":"3.972.41"},"peerDependencies":{"react":"^19.0.0","react-reconciler":"^0.33.0","@anthropic-ai/sdk":"^0.94.0","@modelcontextprotocol/sdk":"^1.29.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-reconciler":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaude_0.27.0-1_1785910600446_0.5604948881722069","host":"s3://npm-registry-packages-npm-production"}},"0.27.0-2":{"name":"@adambenhassen/openclaude","version":"0.27.0-2","keywords":["claude-code","openai","llm","cli","agent","deepseek","ollama","gemini"],"license":"SEE LICENSE FILE","_id":"@adambenhassen/openclaude@0.27.0-2","maintainers":[{"name":"adambenhassen","email":"adambenhassen@hotmail.com"}],"homepage":"https://github.com/Gitlawb/openclaude#readme","bugs":{"url":"https://github.com/Gitlawb/openclaude/issues"},"bin":{"openclaude":"bin/openclaude"},"dist":{"shasum":"747c31369e9f51c30b2aacc6de0873d5a0224983","tarball":"https://registry.npmjs.org/@adambenhassen/openclaude/-/openclaude-0.27.0-2.tgz","fileCount":14,"integrity":"sha512-Bkap++sEMNayyhL0kp+Ae9EroEfo7DLGz50fFaKEdHnvJNaZH56sIFAwrp3e396+AzS9Gy4HwJBUm0q5K2oSSA==","signatures":[{"sig":"MEQCIAdecH3bnMgZoWjFffgh+pcPYJwVfJpuJTsrHdRIuY+PAiAiPGw7FEuI+7kZUKzR2dXn/sM99Ds67IXSnaxaiefipQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32226290},"type":"module","engines":{"node":">=22.0.0"},"exports":{"./sdk":{"types":"./src/entrypoints/sdk.d.ts","import":"./dist/sdk.mjs"},"./dist/cli.mjs":"./dist/cli.mjs","./package.json":"./package.json"},"gitHead":"5cb2ac62dbab7b894ef8a1b1be53d564a6f8d796","scripts":{"dev":"bun run build && node bin/openclaude","test":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1","build":"bun run scripts/build.ts","check":"bun run smoke && bun run deadcode && bun run test:full","smoke":"bun run build && node dist/cli.mjs --version","start":"node bin/openclaude","prepack":"npm run build","web:dev":"bun run --cwd web dev","deadcode":"knip --include files,dependencies","dev:code":"bun run profile:code && bun run dev:profile","dev:fast":"bun run profile:fast && bun run dev:ollama:fast","dev:grpc":"bun run scripts/start-grpc.ts","dev:codex":"bun run scripts/provider-launch.ts codex","test:full":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1","typecheck":"tsc --noEmit","web:build":"bun run --cwd web build","dev:gemini":"bun run scripts/provider-launch.ts gemini","dev:ollama":"bun run scripts/provider-launch.ts ollama","dev:openai":"bun run scripts/provider-launch.ts openai","dev:profile":"bun run scripts/provider-launch.ts","web:preview":"bun run --cwd web preview","dev:grpc:cli":"bun run scripts/grpc-cli.ts","profile:auto":"bun run scripts/provider-recommend.ts --apply","profile:code":"bun run profile:init -- --provider ollama --model qwen2.5-coder:7b","profile:fast":"bun run profile:init -- --provider ollama --model llama3.2:3b","profile:init":"bun run scripts/provider-bootstrap.ts","doctor:report":"bun run scripts/system-check.ts --out reports/doctor-runtime.json","profile:codex":"bun run profile:init -- --provider codex --model codexplan","test:coverage":"bun test --feature=UNATTENDED_RETRY --coverage --coverage-reporter=lcov --coverage-dir=coverage --max-concurrency=1 && bun run scripts/render-coverage-heatmap.ts","test:provider":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1 src/services/api/*.test.ts src/services/api/openaiShim/*.test.ts src/utils/context.test.ts","web:typecheck":"bun run --cwd web typecheck","build:verified":"bun run build && bun run verify:privacy","doctor:runtime":"bun run scripts/system-check.ts","install:verify":"bun run scripts/verify-clean-install.ts","verify:privacy":"bun run scripts/verify-no-phone-home.ts","dev:atomic-chat":"bun run scripts/provider-launch.ts atomic-chat","dev:ollama:fast":"bun run scripts/provider-launch.ts ollama --fast --bare","hardening:check":"bun run smoke && bun run doctor:runtime","dev:profile:fast":"bun run scripts/provider-launch.ts auto --fast --bare","hardening:strict":"bun run typecheck && bun run hardening:check","security:pr-scan":"bun run scripts/pr-intent-scan.ts","test:coverage:ui":"bun run scripts/render-coverage-heatmap.ts","profile:recommend":"bun run scripts/provider-recommend.ts","integrations:check":"bun run scripts/generate-integrations-artifacts.ts --check","doctor:runtime:json":"bun run scripts/system-check.ts --json","typecheck:type-tests":"bun run scripts/typecheck-type-tests.ts","integrations:generate":"bun run scripts/generate-integrations-artifacts.ts","install:verify:published":"bun run scripts/verify-clean-install.ts --published","test:provider-recommendation":"bun test src/utils/providerRecommendation.test.ts src/utils/providerProfile.test.ts"},"_npmUser":{"name":"adambenhassen","email":"adambenhassen@hotmail.com"},"overrides":{"lodash-es":"4.18.1","ip-address":"10.2.0","node-domexception":"file:vendor/node-domexception-shim","google-auth-library":"10.6.2"},"repository":{"url":"git+https://github.com/Gitlawb/openclaude.git","type":"git"},"_npmVersion":"11.13.0","description":"OpenClaude opens coding-agent workflows to any LLM — OpenAI, Gemini, DeepSeek, Ollama, and 200+ models","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"sharp@0.34.5":true,"protobufjs@7.6.4":true},"dependencies":{"@orama/orama":"3.1.18","@vscode/ripgrep":"1.18.0","@orama/plugin-data-persistence":"3.1.18"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"8.21.0","ajv":"8.18.0","xss":"1.0.15","zod":"3.25.76","diff":"8.0.3","knip":"^6.16.1","yaml":"2.8.3","axios":"1.16.0","chalk":"5.6.2","execa":"9.6.1","p-map":"7.0.4","react":"19.2.4","sharp":"^0.34.5","fflate":"0.8.2","ignore":"7.0.5","marked":"15.0.12","qrcode":"1.5.4","semver":"7.7.4","undici":"7.28.0","bidi-js":"1.0.3","figures":"6.1.0","fuse.js":"7.1.0","chokidar":"4.0.3","turndown":"7.2.2","auto-bind":"5.0.1","cli-boxes":"3.0.0","commander":"12.1.0","env-paths":"3.0.0","lodash-es":"4.18.1","lru-cache":"11.2.7","picomatch":"4.0.4","tree-kill":"1.2.2","type-fest":"4.41.0","wrap-ansi":"9.0.2","@types/bun":"1.3.11","graphology":"0.26.0","typescript":"5.9.3","@types/node":"25.5.0","cross-spawn":"7.0.6","emoji-regex":"10.6.0","js-tiktoken":"1.0.21","shell-quote":"1.8.4","signal-exit":"4.1.0","usehooks-ts":"3.1.1","@smithy/core":"3.24.3","@types/react":"19.2.14","jsonc-parser":"3.3.1","@grpc/grpc-js":"^1.14.3","cli-highlight":"2.1.11","indent-string":"5.0.0","@azure/identity":"^4.13.1","proper-lockfile":"4.1.2","web-tree-sitter":"0.25.10","duck-duck-scrape":"^2.2.7","react-reconciler":"0.33.0","@anthropic-ai/sdk":"0.94.0","https-proxy-agent":"7.0.6","tree-sitter-wasms":"0.1.13","@grpc/proto-loader":"^0.8.0","graphology-metrics":"2.4.0","@aws-sdk/client-sts":"3.1047.0","google-auth-library":"10.6.2","supports-hyperlinks":"3.2.0","get-east-asian-width":"1.5.0","react-compiler-runtime":"1.0.0","@aws-sdk/client-bedrock":"3.1047.0","@alcalzone/ansi-tokenize":"0.3.0","@anthropic-ai/bedrock-sdk":"0.29.1","@anthropic-ai/foundry-sdk":"0.2.3","@modelcontextprotocol/sdk":"1.29.0","@smithy/node-http-handler":"4.7.3","@commander-js/extra-typings":"12.1.0","@anthropic-ai/sandbox-runtime":"0.0.55","vscode-languageserver-protocol":"3.17.5","@aws-sdk/credential-provider-node":"3.972.41"},"peerDependencies":{"react":"^19.0.0","react-reconciler":"^0.33.0","@anthropic-ai/sdk":"^0.94.0","@modelcontextprotocol/sdk":"^1.29.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-reconciler":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaude_0.27.0-2_1785915858776_0.7914288804221259","host":"s3://npm-registry-packages-npm-production"}},"0.27.0-3":{"name":"@adambenhassen/openclaude","version":"0.27.0-3","keywords":["claude-code","openai","llm","cli","agent","deepseek","ollama","gemini"],"license":"SEE LICENSE FILE","_id":"@adambenhassen/openclaude@0.27.0-3","maintainers":[{"name":"adambenhassen","email":"adambenhassen@hotmail.com"}],"homepage":"https://github.com/Gitlawb/openclaude#readme","bugs":{"url":"https://github.com/Gitlawb/openclaude/issues"},"bin":{"openclaude":"bin/openclaude"},"dist":{"shasum":"b66979b0d4fc2b8875e77bccfaaf9dfab922f64b","tarball":"https://registry.npmjs.org/@adambenhassen/openclaude/-/openclaude-0.27.0-3.tgz","fileCount":14,"integrity":"sha512-ePRT6qXFRrDLr4OOJ263Dvil0AbfANlJrJYVesj7MnN+WCVZFTjhH4Yy4YftghzJysX83ewsavmAGfJwice3Pg==","signatures":[{"sig":"MEYCIQCDf9fX71QY3CfTHv+pcvOBy++q/PxqEAWa2XIUP3p4yAIhAJKrABWtEOvNJhI/JTaodVsauB4IlrF4wPw/v26Wr2IC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32227353},"type":"module","engines":{"node":">=22.0.0"},"exports":{"./sdk":{"types":"./src/entrypoints/sdk.d.ts","import":"./dist/sdk.mjs"},"./dist/cli.mjs":"./dist/cli.mjs","./package.json":"./package.json"},"gitHead":"5e6e1cb96fd340aae35168b0c9b7f23df555ddc0","scripts":{"dev":"bun run build && node bin/openclaude","test":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1","build":"bun run scripts/build.ts","check":"bun run smoke && bun run deadcode && bun run test:full","smoke":"bun run build && node dist/cli.mjs --version","start":"node bin/openclaude","prepack":"npm run build","web:dev":"bun run --cwd web dev","deadcode":"knip --include files,dependencies","dev:code":"bun run profile:code && bun run dev:profile","dev:fast":"bun run profile:fast && bun run dev:ollama:fast","dev:grpc":"bun run scripts/start-grpc.ts","dev:codex":"bun run scripts/provider-launch.ts codex","test:full":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1","typecheck":"tsc --noEmit","web:build":"bun run --cwd web build","dev:gemini":"bun run scripts/provider-launch.ts gemini","dev:ollama":"bun run scripts/provider-launch.ts ollama","dev:openai":"bun run scripts/provider-launch.ts openai","dev:profile":"bun run scripts/provider-launch.ts","web:preview":"bun run --cwd web preview","dev:grpc:cli":"bun run scripts/grpc-cli.ts","profile:auto":"bun run scripts/provider-recommend.ts --apply","profile:code":"bun run profile:init -- --provider ollama --model qwen2.5-coder:7b","profile:fast":"bun run profile:init -- --provider ollama --model llama3.2:3b","profile:init":"bun run scripts/provider-bootstrap.ts","doctor:report":"bun run scripts/system-check.ts --out reports/doctor-runtime.json","profile:codex":"bun run profile:init -- --provider codex --model codexplan","test:coverage":"bun test --feature=UNATTENDED_RETRY --coverage --coverage-reporter=lcov --coverage-dir=coverage --max-concurrency=1 && bun run scripts/render-coverage-heatmap.ts","test:provider":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1 src/services/api/*.test.ts src/services/api/openaiShim/*.test.ts src/utils/context.test.ts","web:typecheck":"bun run --cwd web typecheck","build:verified":"bun run build && bun run verify:privacy","doctor:runtime":"bun run scripts/system-check.ts","install:verify":"bun run scripts/verify-clean-install.ts","verify:privacy":"bun run scripts/verify-no-phone-home.ts","dev:atomic-chat":"bun run scripts/provider-launch.ts atomic-chat","dev:ollama:fast":"bun run scripts/provider-launch.ts ollama --fast --bare","hardening:check":"bun run smoke && bun run doctor:runtime","dev:profile:fast":"bun run scripts/provider-launch.ts auto --fast --bare","hardening:strict":"bun run typecheck && bun run hardening:check","security:pr-scan":"bun run scripts/pr-intent-scan.ts","test:coverage:ui":"bun run scripts/render-coverage-heatmap.ts","profile:recommend":"bun run scripts/provider-recommend.ts","integrations:check":"bun run scripts/generate-integrations-artifacts.ts --check","doctor:runtime:json":"bun run scripts/system-check.ts --json","typecheck:type-tests":"bun run scripts/typecheck-type-tests.ts","integrations:generate":"bun run scripts/generate-integrations-artifacts.ts","install:verify:published":"bun run scripts/verify-clean-install.ts --published","test:provider-recommendation":"bun test src/utils/providerRecommendation.test.ts src/utils/providerProfile.test.ts"},"_npmUser":{"name":"adambenhassen","email":"adambenhassen@hotmail.com"},"overrides":{"lodash-es":"4.18.1","ip-address":"10.2.0","node-domexception":"file:vendor/node-domexception-shim","google-auth-library":"10.6.2"},"repository":{"url":"git+https://github.com/Gitlawb/openclaude.git","type":"git"},"_npmVersion":"11.13.0","description":"OpenClaude opens coding-agent workflows to any LLM — OpenAI, Gemini, DeepSeek, Ollama, and 200+ models","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"sharp@0.34.5":true,"protobufjs@7.6.4":true},"dependencies":{"@orama/orama":"3.1.18","@vscode/ripgrep":"1.18.0","@orama/plugin-data-persistence":"3.1.18"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"8.21.0","ajv":"8.18.0","xss":"1.0.15","zod":"3.25.76","diff":"8.0.3","knip":"^6.16.1","yaml":"2.8.3","axios":"1.16.0","chalk":"5.6.2","execa":"9.6.1","p-map":"7.0.4","react":"19.2.4","sharp":"^0.34.5","fflate":"0.8.2","ignore":"7.0.5","marked":"15.0.12","qrcode":"1.5.4","semver":"7.7.4","undici":"7.28.0","bidi-js":"1.0.3","figures":"6.1.0","fuse.js":"7.1.0","chokidar":"4.0.3","turndown":"7.2.2","auto-bind":"5.0.1","cli-boxes":"3.0.0","commander":"12.1.0","env-paths":"3.0.0","lodash-es":"4.18.1","lru-cache":"11.2.7","picomatch":"4.0.4","tree-kill":"1.2.2","type-fest":"4.41.0","wrap-ansi":"9.0.2","@types/bun":"1.3.11","graphology":"0.26.0","typescript":"5.9.3","@types/node":"25.5.0","cross-spawn":"7.0.6","emoji-regex":"10.6.0","js-tiktoken":"1.0.21","shell-quote":"1.8.4","signal-exit":"4.1.0","usehooks-ts":"3.1.1","@smithy/core":"3.24.3","@types/react":"19.2.14","jsonc-parser":"3.3.1","@grpc/grpc-js":"^1.14.3","cli-highlight":"2.1.11","indent-string":"5.0.0","@azure/identity":"^4.13.1","proper-lockfile":"4.1.2","web-tree-sitter":"0.25.10","duck-duck-scrape":"^2.2.7","react-reconciler":"0.33.0","@anthropic-ai/sdk":"0.94.0","https-proxy-agent":"7.0.6","tree-sitter-wasms":"0.1.13","@grpc/proto-loader":"^0.8.0","graphology-metrics":"2.4.0","@aws-sdk/client-sts":"3.1047.0","google-auth-library":"10.6.2","supports-hyperlinks":"3.2.0","get-east-asian-width":"1.5.0","react-compiler-runtime":"1.0.0","@aws-sdk/client-bedrock":"3.1047.0","@alcalzone/ansi-tokenize":"0.3.0","@anthropic-ai/bedrock-sdk":"0.29.1","@anthropic-ai/foundry-sdk":"0.2.3","@modelcontextprotocol/sdk":"1.29.0","@smithy/node-http-handler":"4.7.3","@commander-js/extra-typings":"12.1.0","@anthropic-ai/sandbox-runtime":"0.0.55","vscode-languageserver-protocol":"3.17.5","@aws-sdk/credential-provider-node":"3.972.41"},"peerDependencies":{"react":"^19.0.0","react-reconciler":"^0.33.0","@anthropic-ai/sdk":"^0.94.0","@modelcontextprotocol/sdk":"^1.29.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-reconciler":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaude_0.27.0-3_1785919927168_0.9570789524789309","host":"s3://npm-registry-packages-npm-production"}},"0.27.0-4":{"name":"@adambenhassen/openclaude","version":"0.27.0-4","keywords":["claude-code","openai","llm","cli","agent","deepseek","ollama","gemini"],"license":"SEE LICENSE FILE","_id":"@adambenhassen/openclaude@0.27.0-4","maintainers":[{"name":"adambenhassen","email":"adambenhassen@hotmail.com"}],"homepage":"https://github.com/Gitlawb/openclaude#readme","bugs":{"url":"https://github.com/Gitlawb/openclaude/issues"},"bin":{"openclaude":"bin/openclaude"},"dist":{"shasum":"731c4fdcc796ffd1d27741da263f05e81945cd7b","tarball":"https://registry.npmjs.org/@adambenhassen/openclaude/-/openclaude-0.27.0-4.tgz","fileCount":14,"integrity":"sha512-iS3NANMWSchPSDuKI07I5O35Dsj+ypE5JuhwLFToV0qQ+VLhLSGXgX163ukKbbBYtDauyttNR7rbIYO3Hdiz4A==","signatures":[{"sig":"MEYCIQCBKSsK+WSXQEOdcRtpjO2sZYLwsD6bh+mnn1h7FowSvQIhAPuwQwQKMNB1t1t/dHhDaSbLU67RJvxepBoBl9HTFx3r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32227365},"type":"module","engines":{"node":">=22.0.0"},"exports":{"./sdk":{"types":"./src/entrypoints/sdk.d.ts","import":"./dist/sdk.mjs"},"./dist/cli.mjs":"./dist/cli.mjs","./package.json":"./package.json"},"gitHead":"3d38c88ec370aaa44c72c80c14b0b66077982cd3","scripts":{"dev":"bun run build && node bin/openclaude","test":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1","build":"bun run scripts/build.ts","check":"bun run smoke && bun run deadcode && bun run test:full","smoke":"bun run build && node dist/cli.mjs --version","start":"node bin/openclaude","prepack":"npm run build","web:dev":"bun run --cwd web dev","deadcode":"knip --include files,dependencies","dev:code":"bun run profile:code && bun run dev:profile","dev:fast":"bun run profile:fast && bun run dev:ollama:fast","dev:grpc":"bun run scripts/start-grpc.ts","dev:codex":"bun run scripts/provider-launch.ts codex","test:full":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1","typecheck":"tsc --noEmit","web:build":"bun run --cwd web build","dev:gemini":"bun run scripts/provider-launch.ts gemini","dev:ollama":"bun run scripts/provider-launch.ts ollama","dev:openai":"bun run scripts/provider-launch.ts openai","dev:profile":"bun run scripts/provider-launch.ts","web:preview":"bun run --cwd web preview","dev:grpc:cli":"bun run scripts/grpc-cli.ts","profile:auto":"bun run scripts/provider-recommend.ts --apply","profile:code":"bun run profile:init -- --provider ollama --model qwen2.5-coder:7b","profile:fast":"bun run profile:init -- --provider ollama --model llama3.2:3b","profile:init":"bun run scripts/provider-bootstrap.ts","doctor:report":"bun run scripts/system-check.ts --out reports/doctor-runtime.json","profile:codex":"bun run profile:init -- --provider codex --model codexplan","test:coverage":"bun test --feature=UNATTENDED_RETRY --coverage --coverage-reporter=lcov --coverage-dir=coverage --max-concurrency=1 && bun run scripts/render-coverage-heatmap.ts","test:provider":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1 src/services/api/*.test.ts src/services/api/openaiShim/*.test.ts src/utils/context.test.ts","web:typecheck":"bun run --cwd web typecheck","build:verified":"bun run build && bun run verify:privacy","doctor:runtime":"bun run scripts/system-check.ts","install:verify":"bun run scripts/verify-clean-install.ts","verify:privacy":"bun run scripts/verify-no-phone-home.ts","dev:atomic-chat":"bun run scripts/provider-launch.ts atomic-chat","dev:ollama:fast":"bun run scripts/provider-launch.ts ollama --fast --bare","hardening:check":"bun run smoke && bun run doctor:runtime","dev:profile:fast":"bun run scripts/provider-launch.ts auto --fast --bare","hardening:strict":"bun run typecheck && bun run hardening:check","security:pr-scan":"bun run scripts/pr-intent-scan.ts","test:coverage:ui":"bun run scripts/render-coverage-heatmap.ts","profile:recommend":"bun run scripts/provider-recommend.ts","integrations:check":"bun run scripts/generate-integrations-artifacts.ts --check","doctor:runtime:json":"bun run scripts/system-check.ts --json","typecheck:type-tests":"bun run scripts/typecheck-type-tests.ts","integrations:generate":"bun run scripts/generate-integrations-artifacts.ts","install:verify:published":"bun run scripts/verify-clean-install.ts --published","test:provider-recommendation":"bun test src/utils/providerRecommendation.test.ts src/utils/providerProfile.test.ts"},"_npmUser":{"name":"adambenhassen","email":"adambenhassen@hotmail.com"},"overrides":{"lodash-es":"4.18.1","ip-address":"10.2.0","node-domexception":"file:vendor/node-domexception-shim","google-auth-library":"10.6.2"},"repository":{"url":"git+https://github.com/Gitlawb/openclaude.git","type":"git"},"_npmVersion":"11.13.0","description":"OpenClaude opens coding-agent workflows to any LLM — OpenAI, Gemini, DeepSeek, Ollama, and 200+ models","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"sharp@0.34.5":true,"protobufjs@7.6.4":true},"dependencies":{"@orama/orama":"3.1.18","@vscode/ripgrep":"1.18.0","@orama/plugin-data-persistence":"3.1.18"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"8.21.0","ajv":"8.18.0","xss":"1.0.15","zod":"3.25.76","diff":"8.0.3","knip":"^6.16.1","yaml":"2.8.3","axios":"1.16.0","chalk":"5.6.2","execa":"9.6.1","p-map":"7.0.4","react":"19.2.4","sharp":"^0.34.5","fflate":"0.8.2","ignore":"7.0.5","marked":"15.0.12","qrcode":"1.5.4","semver":"7.7.4","undici":"7.28.0","bidi-js":"1.0.3","figures":"6.1.0","fuse.js":"7.1.0","chokidar":"4.0.3","turndown":"7.2.2","auto-bind":"5.0.1","cli-boxes":"3.0.0","commander":"12.1.0","env-paths":"3.0.0","lodash-es":"4.18.1","lru-cache":"11.2.7","picomatch":"4.0.4","tree-kill":"1.2.2","type-fest":"4.41.0","wrap-ansi":"9.0.2","@types/bun":"1.3.11","graphology":"0.26.0","typescript":"5.9.3","@types/node":"25.5.0","cross-spawn":"7.0.6","emoji-regex":"10.6.0","js-tiktoken":"1.0.21","shell-quote":"1.8.4","signal-exit":"4.1.0","usehooks-ts":"3.1.1","@smithy/core":"3.24.3","@types/react":"19.2.14","jsonc-parser":"3.3.1","@grpc/grpc-js":"^1.14.3","cli-highlight":"2.1.11","indent-string":"5.0.0","@azure/identity":"^4.13.1","proper-lockfile":"4.1.2","web-tree-sitter":"0.25.10","duck-duck-scrape":"^2.2.7","react-reconciler":"0.33.0","@anthropic-ai/sdk":"0.94.0","https-proxy-agent":"7.0.6","tree-sitter-wasms":"0.1.13","@grpc/proto-loader":"^0.8.0","graphology-metrics":"2.4.0","@aws-sdk/client-sts":"3.1047.0","google-auth-library":"10.6.2","supports-hyperlinks":"3.2.0","get-east-asian-width":"1.5.0","react-compiler-runtime":"1.0.0","@aws-sdk/client-bedrock":"3.1047.0","@alcalzone/ansi-tokenize":"0.3.0","@anthropic-ai/bedrock-sdk":"0.29.1","@anthropic-ai/foundry-sdk":"0.2.3","@modelcontextprotocol/sdk":"1.29.0","@smithy/node-http-handler":"4.7.3","@commander-js/extra-typings":"12.1.0","@anthropic-ai/sandbox-runtime":"0.0.55","vscode-languageserver-protocol":"3.17.5","@aws-sdk/credential-provider-node":"3.972.41"},"peerDependencies":{"react":"^19.0.0","react-reconciler":"^0.33.0","@anthropic-ai/sdk":"^0.94.0","@modelcontextprotocol/sdk":"^1.29.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-reconciler":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaude_0.27.0-4_1785921578370_0.20757868469373397","host":"s3://npm-registry-packages-npm-production"}},"0.27.0-5":{"name":"@adambenhassen/openclaude","version":"0.27.0-5","keywords":["claude-code","openai","llm","cli","agent","deepseek","ollama","gemini"],"license":"SEE LICENSE FILE","_id":"@adambenhassen/openclaude@0.27.0-5","maintainers":[{"name":"adambenhassen","email":"adambenhassen@hotmail.com"}],"homepage":"https://github.com/Gitlawb/openclaude#readme","bugs":{"url":"https://github.com/Gitlawb/openclaude/issues"},"bin":{"openclaude":"bin/openclaude"},"dist":{"shasum":"bb777d4f67f8bb4b1ecf0aaf43ab785503315cb4","tarball":"https://registry.npmjs.org/@adambenhassen/openclaude/-/openclaude-0.27.0-5.tgz","fileCount":14,"integrity":"sha512-8/30e45Iv2KliVW0xWz3Ob0V+TdSCs5EE/SfEaaFOQVEg85GxX2gPWQ52QMuS/LQ6oYClP9Gj5DSsqZk0hZMSg==","signatures":[{"sig":"MEQCIAQnNT7Dm9VpQas+JIzLE1GFl1T7J9ECXJdCjkWyTR8aAiAB0rC/ZZ9sj9AvSXbE0eqmOhwqBbHlHIgCQGmUfN8Mtg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32227367},"type":"module","engines":{"node":">=22.0.0"},"exports":{"./sdk":{"types":"./src/entrypoints/sdk.d.ts","import":"./dist/sdk.mjs"},"./dist/cli.mjs":"./dist/cli.mjs","./package.json":"./package.json"},"gitHead":"335104aad4495e977c814f25f4b6b275d3cbb68a","scripts":{"dev":"bun run build && node bin/openclaude","test":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1","build":"bun run scripts/build.ts","check":"bun run smoke && bun run deadcode && bun run test:full","smoke":"bun run build && node dist/cli.mjs --version","start":"node bin/openclaude","prepack":"npm run build","web:dev":"bun run --cwd web dev","deadcode":"knip --include files,dependencies","dev:code":"bun run profile:code && bun run dev:profile","dev:fast":"bun run profile:fast && bun run dev:ollama:fast","dev:grpc":"bun run scripts/start-grpc.ts","dev:codex":"bun run scripts/provider-launch.ts codex","test:full":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1","typecheck":"tsc --noEmit","web:build":"bun run --cwd web build","dev:gemini":"bun run scripts/provider-launch.ts gemini","dev:ollama":"bun run scripts/provider-launch.ts ollama","dev:openai":"bun run scripts/provider-launch.ts openai","dev:profile":"bun run scripts/provider-launch.ts","web:preview":"bun run --cwd web preview","dev:grpc:cli":"bun run scripts/grpc-cli.ts","profile:auto":"bun run scripts/provider-recommend.ts --apply","profile:code":"bun run profile:init -- --provider ollama --model qwen2.5-coder:7b","profile:fast":"bun run profile:init -- --provider ollama --model llama3.2:3b","profile:init":"bun run scripts/provider-bootstrap.ts","doctor:report":"bun run scripts/system-check.ts --out reports/doctor-runtime.json","profile:codex":"bun run profile:init -- --provider codex --model codexplan","test:coverage":"bun test --feature=UNATTENDED_RETRY --coverage --coverage-reporter=lcov --coverage-dir=coverage --max-concurrency=1 && bun run scripts/render-coverage-heatmap.ts","test:provider":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1 src/services/api/*.test.ts src/services/api/openaiShim/*.test.ts src/utils/context.test.ts","web:typecheck":"bun run --cwd web typecheck","build:verified":"bun run build && bun run verify:privacy","doctor:runtime":"bun run scripts/system-check.ts","install:verify":"bun run scripts/verify-clean-install.ts","verify:privacy":"bun run scripts/verify-no-phone-home.ts","dev:atomic-chat":"bun run scripts/provider-launch.ts atomic-chat","dev:ollama:fast":"bun run scripts/provider-launch.ts ollama --fast --bare","hardening:check":"bun run smoke && bun run doctor:runtime","dev:profile:fast":"bun run scripts/provider-launch.ts auto --fast --bare","hardening:strict":"bun run typecheck && bun run hardening:check","security:pr-scan":"bun run scripts/pr-intent-scan.ts","test:coverage:ui":"bun run scripts/render-coverage-heatmap.ts","profile:recommend":"bun run scripts/provider-recommend.ts","integrations:check":"bun run scripts/generate-integrations-artifacts.ts --check","doctor:runtime:json":"bun run scripts/system-check.ts --json","typecheck:type-tests":"bun run scripts/typecheck-type-tests.ts","integrations:generate":"bun run scripts/generate-integrations-artifacts.ts","install:verify:published":"bun run scripts/verify-clean-install.ts --published","test:provider-recommendation":"bun test src/utils/providerRecommendation.test.ts src/utils/providerProfile.test.ts"},"_npmUser":{"name":"adambenhassen","email":"adambenhassen@hotmail.com"},"overrides":{"lodash-es":"4.18.1","ip-address":"10.2.0","node-domexception":"file:vendor/node-domexception-shim","google-auth-library":"10.6.2"},"repository":{"url":"git+https://github.com/Gitlawb/openclaude.git","type":"git"},"_npmVersion":"11.13.0","description":"OpenClaude opens coding-agent workflows to any LLM — OpenAI, Gemini, DeepSeek, Ollama, and 200+ models","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"sharp@0.34.5":true,"protobufjs@7.6.4":true},"dependencies":{"@orama/orama":"3.1.18","@vscode/ripgrep":"1.18.0","@orama/plugin-data-persistence":"3.1.18"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"8.21.0","ajv":"8.18.0","xss":"1.0.15","zod":"3.25.76","diff":"8.0.3","knip":"^6.16.1","yaml":"2.8.3","axios":"1.16.0","chalk":"5.6.2","execa":"9.6.1","p-map":"7.0.4","react":"19.2.4","sharp":"^0.34.5","fflate":"0.8.2","ignore":"7.0.5","marked":"15.0.12","qrcode":"1.5.4","semver":"7.7.4","undici":"7.28.0","bidi-js":"1.0.3","figures":"6.1.0","fuse.js":"7.1.0","chokidar":"4.0.3","turndown":"7.2.2","auto-bind":"5.0.1","cli-boxes":"3.0.0","commander":"12.1.0","env-paths":"3.0.0","lodash-es":"4.18.1","lru-cache":"11.2.7","picomatch":"4.0.4","tree-kill":"1.2.2","type-fest":"4.41.0","wrap-ansi":"9.0.2","@types/bun":"1.3.11","graphology":"0.26.0","typescript":"5.9.3","@types/node":"25.5.0","cross-spawn":"7.0.6","emoji-regex":"10.6.0","js-tiktoken":"1.0.21","shell-quote":"1.8.4","signal-exit":"4.1.0","usehooks-ts":"3.1.1","@smithy/core":"3.24.3","@types/react":"19.2.14","jsonc-parser":"3.3.1","@grpc/grpc-js":"^1.14.3","cli-highlight":"2.1.11","indent-string":"5.0.0","@azure/identity":"^4.13.1","proper-lockfile":"4.1.2","web-tree-sitter":"0.25.10","duck-duck-scrape":"^2.2.7","react-reconciler":"0.33.0","@anthropic-ai/sdk":"0.94.0","https-proxy-agent":"7.0.6","tree-sitter-wasms":"0.1.13","@grpc/proto-loader":"^0.8.0","graphology-metrics":"2.4.0","@aws-sdk/client-sts":"3.1047.0","google-auth-library":"10.6.2","supports-hyperlinks":"3.2.0","get-east-asian-width":"1.5.0","react-compiler-runtime":"1.0.0","@aws-sdk/client-bedrock":"3.1047.0","@alcalzone/ansi-tokenize":"0.3.0","@anthropic-ai/bedrock-sdk":"0.29.1","@anthropic-ai/foundry-sdk":"0.2.3","@modelcontextprotocol/sdk":"1.29.0","@smithy/node-http-handler":"4.7.3","@commander-js/extra-typings":"12.1.0","@anthropic-ai/sandbox-runtime":"0.0.55","vscode-languageserver-protocol":"3.17.5","@aws-sdk/credential-provider-node":"3.972.41"},"peerDependencies":{"react":"^19.0.0","react-reconciler":"^0.33.0","@anthropic-ai/sdk":"^0.94.0","@modelcontextprotocol/sdk":"^1.29.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-reconciler":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaude_0.27.0-5_1785922598101_0.7775569238680475","host":"s3://npm-registry-packages-npm-production"}},"0.27.0-6":{"name":"@adambenhassen/openclaude","version":"0.27.0-6","keywords":["claude-code","openai","llm","cli","agent","deepseek","ollama","gemini"],"license":"SEE LICENSE FILE","_id":"@adambenhassen/openclaude@0.27.0-6","maintainers":[{"name":"adambenhassen","email":"adambenhassen@hotmail.com"}],"homepage":"https://github.com/Gitlawb/openclaude#readme","bugs":{"url":"https://github.com/Gitlawb/openclaude/issues"},"bin":{"openclaude":"bin/openclaude"},"dist":{"shasum":"6429a05c19def0bcf7b1410e306af14893397c9b","tarball":"https://registry.npmjs.org/@adambenhassen/openclaude/-/openclaude-0.27.0-6.tgz","fileCount":14,"integrity":"sha512-aykuZ3A3F2EU624mmC9tyu8S9ycUv5JdFVYEd75dT3LvMXQdRc+zgbhpGI0PnJjZGmMGPxtDZG/iYJvBLfOX/A==","signatures":[{"sig":"MEQCIB6mSzC2wc/GvXAvNKRt8RkOJhYsO1lX7WhirOkD7arRAiARWku7ic9Tqj0elCT7mc/xyuC5LHAVKmGGWRUD1bZA+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32228882},"type":"module","engines":{"node":">=22.0.0"},"exports":{"./sdk":{"types":"./src/entrypoints/sdk.d.ts","import":"./dist/sdk.mjs"},"./dist/cli.mjs":"./dist/cli.mjs","./package.json":"./package.json"},"gitHead":"6c64b3ed7d5f12c50e45cd4cab34b30c00f034e9","scripts":{"dev":"bun run build && node bin/openclaude","test":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1","build":"bun run scripts/build.ts","check":"bun run smoke && bun run deadcode && bun run test:full","smoke":"bun run build && node dist/cli.mjs --version","start":"node bin/openclaude","prepack":"npm run build","web:dev":"bun run --cwd web dev","deadcode":"knip --include files,dependencies","dev:code":"bun run profile:code && bun run dev:profile","dev:fast":"bun run profile:fast && bun run dev:ollama:fast","dev:grpc":"bun run scripts/start-grpc.ts","dev:codex":"bun run scripts/provider-launch.ts codex","test:full":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1","typecheck":"tsc --noEmit","web:build":"bun run --cwd web build","dev:gemini":"bun run scripts/provider-launch.ts gemini","dev:ollama":"bun run scripts/provider-launch.ts ollama","dev:openai":"bun run scripts/provider-launch.ts openai","dev:profile":"bun run scripts/provider-launch.ts","web:preview":"bun run --cwd web preview","dev:grpc:cli":"bun run scripts/grpc-cli.ts","profile:auto":"bun run scripts/provider-recommend.ts --apply","profile:code":"bun run profile:init -- --provider ollama --model qwen2.5-coder:7b","profile:fast":"bun run profile:init -- --provider ollama --model llama3.2:3b","profile:init":"bun run scripts/provider-bootstrap.ts","doctor:report":"bun run scripts/system-check.ts --out reports/doctor-runtime.json","profile:codex":"bun run profile:init -- --provider codex --model codexplan","test:coverage":"bun test --feature=UNATTENDED_RETRY --coverage --coverage-reporter=lcov --coverage-dir=coverage --max-concurrency=1 && bun run scripts/render-coverage-heatmap.ts","test:provider":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1 src/services/api/*.test.ts src/services/api/openaiShim/*.test.ts src/utils/context.test.ts","web:typecheck":"bun run --cwd web typecheck","build:verified":"bun run build && bun run verify:privacy","doctor:runtime":"bun run scripts/system-check.ts","install:verify":"bun run scripts/verify-clean-install.ts","verify:privacy":"bun run scripts/verify-no-phone-home.ts","dev:atomic-chat":"bun run scripts/provider-launch.ts atomic-chat","dev:ollama:fast":"bun run scripts/provider-launch.ts ollama --fast --bare","hardening:check":"bun run smoke && bun run doctor:runtime","dev:profile:fast":"bun run scripts/provider-launch.ts auto --fast --bare","hardening:strict":"bun run typecheck && bun run hardening:check","security:pr-scan":"bun run scripts/pr-intent-scan.ts","test:coverage:ui":"bun run scripts/render-coverage-heatmap.ts","profile:recommend":"bun run scripts/provider-recommend.ts","integrations:check":"bun run scripts/generate-integrations-artifacts.ts --check","doctor:runtime:json":"bun run scripts/system-check.ts --json","typecheck:type-tests":"bun run scripts/typecheck-type-tests.ts","integrations:generate":"bun run scripts/generate-integrations-artifacts.ts","install:verify:published":"bun run scripts/verify-clean-install.ts --published","test:provider-recommendation":"bun test src/utils/providerRecommendation.test.ts src/utils/providerProfile.test.ts"},"_npmUser":{"name":"adambenhassen","email":"adambenhassen@hotmail.com"},"overrides":{"lodash-es":"4.18.1","ip-address":"10.2.0","node-domexception":"file:vendor/node-domexception-shim","google-auth-library":"10.6.2"},"repository":{"url":"git+https://github.com/Gitlawb/openclaude.git","type":"git"},"_npmVersion":"11.13.0","description":"OpenClaude opens coding-agent workflows to any LLM — OpenAI, Gemini, DeepSeek, Ollama, and 200+ models","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"sharp@0.34.5":true,"protobufjs@7.6.4":true},"dependencies":{"@orama/orama":"3.1.18","@vscode/ripgrep":"1.18.0","@orama/plugin-data-persistence":"3.1.18"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"8.21.0","ajv":"8.18.0","xss":"1.0.15","zod":"3.25.76","diff":"8.0.3","knip":"^6.16.1","yaml":"2.8.3","axios":"1.16.0","chalk":"5.6.2","execa":"9.6.1","p-map":"7.0.4","react":"19.2.4","sharp":"^0.34.5","fflate":"0.8.2","ignore":"7.0.5","marked":"15.0.12","qrcode":"1.5.4","semver":"7.7.4","undici":"7.28.0","bidi-js":"1.0.3","figures":"6.1.0","fuse.js":"7.1.0","chokidar":"4.0.3","turndown":"7.2.2","auto-bind":"5.0.1","cli-boxes":"3.0.0","commander":"12.1.0","env-paths":"3.0.0","lodash-es":"4.18.1","lru-cache":"11.2.7","picomatch":"4.0.4","tree-kill":"1.2.2","type-fest":"4.41.0","wrap-ansi":"9.0.2","@types/bun":"1.3.11","graphology":"0.26.0","typescript":"5.9.3","@types/node":"25.5.0","cross-spawn":"7.0.6","emoji-regex":"10.6.0","js-tiktoken":"1.0.21","shell-quote":"1.8.4","signal-exit":"4.1.0","usehooks-ts":"3.1.1","@smithy/core":"3.24.3","@types/react":"19.2.14","jsonc-parser":"3.3.1","@grpc/grpc-js":"^1.14.3","cli-highlight":"2.1.11","indent-string":"5.0.0","@azure/identity":"^4.13.1","proper-lockfile":"4.1.2","web-tree-sitter":"0.25.10","duck-duck-scrape":"^2.2.7","react-reconciler":"0.33.0","@anthropic-ai/sdk":"0.94.0","https-proxy-agent":"7.0.6","tree-sitter-wasms":"0.1.13","@grpc/proto-loader":"^0.8.0","graphology-metrics":"2.4.0","@aws-sdk/client-sts":"3.1047.0","google-auth-library":"10.6.2","supports-hyperlinks":"3.2.0","get-east-asian-width":"1.5.0","react-compiler-runtime":"1.0.0","@aws-sdk/client-bedrock":"3.1047.0","@alcalzone/ansi-tokenize":"0.3.0","@anthropic-ai/bedrock-sdk":"0.29.1","@anthropic-ai/foundry-sdk":"0.2.3","@modelcontextprotocol/sdk":"1.29.0","@smithy/node-http-handler":"4.7.3","@commander-js/extra-typings":"12.1.0","@anthropic-ai/sandbox-runtime":"0.0.55","vscode-languageserver-protocol":"3.17.5","@aws-sdk/credential-provider-node":"3.972.41"},"peerDependencies":{"react":"^19.0.0","react-reconciler":"^0.33.0","@anthropic-ai/sdk":"^0.94.0","@modelcontextprotocol/sdk":"^1.29.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-reconciler":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaude_0.27.0-6_1785924789870_0.2056551633414354","host":"s3://npm-registry-packages-npm-production"}},"0.27.0-7":{"name":"@adambenhassen/openclaude","version":"0.27.0-7","keywords":["claude-code","openai","llm","cli","agent","deepseek","ollama","gemini"],"license":"SEE LICENSE FILE","_id":"@adambenhassen/openclaude@0.27.0-7","maintainers":[{"name":"adambenhassen","email":"adambenhassen@hotmail.com"}],"homepage":"https://github.com/Gitlawb/openclaude#readme","bugs":{"url":"https://github.com/Gitlawb/openclaude/issues"},"bin":{"openclaude":"bin/openclaude"},"dist":{"shasum":"9a2a4ebb77e131df6ee0471f5956bebbbaf51046","tarball":"https://registry.npmjs.org/@adambenhassen/openclaude/-/openclaude-0.27.0-7.tgz","fileCount":14,"integrity":"sha512-ntB0EE+U9T5GZ/TurM2LF3+xE9l9CbDG3C4f3jTx5/IZddIcEEnTmgoKn0QA3KK2FmYjEZUlNfuuQwS8s2q0DQ==","signatures":[{"sig":"MEUCIDCY3/HI8kgMmHli1Jw5d2CrGYudlBvDRWjGjOtj6RqnAiEAzLXJAk9PU3v8F5po/LzgELiiiL9QTrfP1p/iyng1PKg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32228740},"type":"module","engines":{"node":">=22.0.0"},"exports":{"./sdk":{"types":"./src/entrypoints/sdk.d.ts","import":"./dist/sdk.mjs"},"./dist/cli.mjs":"./dist/cli.mjs","./package.json":"./package.json"},"gitHead":"283c2083828c51f5861ccb2260b91af30487ca42","scripts":{"dev":"bun run build && node bin/openclaude","test":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1","build":"bun run scripts/build.ts","check":"bun run smoke && bun run deadcode && bun run test:full","smoke":"bun run build && node dist/cli.mjs --version","start":"node bin/openclaude","prepack":"npm run build","web:dev":"bun run --cwd web dev","deadcode":"knip --include files,dependencies","dev:code":"bun run profile:code && bun run dev:profile","dev:fast":"bun run profile:fast && bun run dev:ollama:fast","dev:grpc":"bun run scripts/start-grpc.ts","dev:codex":"bun run scripts/provider-launch.ts codex","test:full":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1","typecheck":"tsc --noEmit","web:build":"bun run --cwd web build","dev:gemini":"bun run scripts/provider-launch.ts gemini","dev:ollama":"bun run scripts/provider-launch.ts ollama","dev:openai":"bun run scripts/provider-launch.ts openai","dev:profile":"bun run scripts/provider-launch.ts","web:preview":"bun run --cwd web preview","dev:grpc:cli":"bun run scripts/grpc-cli.ts","profile:auto":"bun run scripts/provider-recommend.ts --apply","profile:code":"bun run profile:init -- --provider ollama --model qwen2.5-coder:7b","profile:fast":"bun run profile:init -- --provider ollama --model llama3.2:3b","profile:init":"bun run scripts/provider-bootstrap.ts","doctor:report":"bun run scripts/system-check.ts --out reports/doctor-runtime.json","profile:codex":"bun run profile:init -- --provider codex --model codexplan","test:coverage":"bun test --feature=UNATTENDED_RETRY --coverage --coverage-reporter=lcov --coverage-dir=coverage --max-concurrency=1 && bun run scripts/render-coverage-heatmap.ts","test:provider":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1 src/services/api/*.test.ts src/services/api/openaiShim/*.test.ts src/utils/context.test.ts","web:typecheck":"bun run --cwd web typecheck","build:verified":"bun run build && bun run verify:privacy","doctor:runtime":"bun run scripts/system-check.ts","install:verify":"bun run scripts/verify-clean-install.ts","verify:privacy":"bun run scripts/verify-no-phone-home.ts","dev:atomic-chat":"bun run scripts/provider-launch.ts atomic-chat","dev:ollama:fast":"bun run scripts/provider-launch.ts ollama --fast --bare","hardening:check":"bun run smoke && bun run doctor:runtime","dev:profile:fast":"bun run scripts/provider-launch.ts auto --fast --bare","hardening:strict":"bun run typecheck && bun run hardening:check","security:pr-scan":"bun run scripts/pr-intent-scan.ts","test:coverage:ui":"bun run scripts/render-coverage-heatmap.ts","profile:recommend":"bun run scripts/provider-recommend.ts","integrations:check":"bun run scripts/generate-integrations-artifacts.ts --check","doctor:runtime:json":"bun run scripts/system-check.ts --json","typecheck:type-tests":"bun run scripts/typecheck-type-tests.ts","integrations:generate":"bun run scripts/generate-integrations-artifacts.ts","install:verify:published":"bun run scripts/verify-clean-install.ts --published","test:provider-recommendation":"bun test src/utils/providerRecommendation.test.ts src/utils/providerProfile.test.ts"},"_npmUser":{"name":"adambenhassen","email":"adambenhassen@hotmail.com"},"overrides":{"lodash-es":"4.18.1","ip-address":"10.2.0","node-domexception":"file:vendor/node-domexception-shim","google-auth-library":"10.6.2"},"repository":{"url":"git+https://github.com/Gitlawb/openclaude.git","type":"git"},"_npmVersion":"11.13.0","description":"OpenClaude opens coding-agent workflows to any LLM — OpenAI, Gemini, DeepSeek, Ollama, and 200+ models","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"sharp@0.34.5":true,"protobufjs@7.6.4":true},"dependencies":{"@orama/orama":"3.1.18","@vscode/ripgrep":"1.18.0","@orama/plugin-data-persistence":"3.1.18"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"8.21.0","ajv":"8.18.0","xss":"1.0.15","zod":"3.25.76","diff":"8.0.3","knip":"^6.16.1","yaml":"2.8.3","axios":"1.16.0","chalk":"5.6.2","execa":"9.6.1","p-map":"7.0.4","react":"19.2.4","sharp":"^0.34.5","fflate":"0.8.2","ignore":"7.0.5","marked":"15.0.12","qrcode":"1.5.4","semver":"7.7.4","undici":"7.28.0","bidi-js":"1.0.3","figures":"6.1.0","fuse.js":"7.1.0","chokidar":"4.0.3","turndown":"7.2.2","auto-bind":"5.0.1","cli-boxes":"3.0.0","commander":"12.1.0","env-paths":"3.0.0","lodash-es":"4.18.1","lru-cache":"11.2.7","picomatch":"4.0.4","tree-kill":"1.2.2","type-fest":"4.41.0","wrap-ansi":"9.0.2","@types/bun":"1.3.11","graphology":"0.26.0","typescript":"5.9.3","@types/node":"25.5.0","cross-spawn":"7.0.6","emoji-regex":"10.6.0","js-tiktoken":"1.0.21","shell-quote":"1.8.4","signal-exit":"4.1.0","usehooks-ts":"3.1.1","@smithy/core":"3.24.3","@types/react":"19.2.14","jsonc-parser":"3.3.1","@grpc/grpc-js":"^1.14.3","cli-highlight":"2.1.11","indent-string":"5.0.0","@azure/identity":"^4.13.1","proper-lockfile":"4.1.2","web-tree-sitter":"0.25.10","duck-duck-scrape":"^2.2.7","react-reconciler":"0.33.0","@anthropic-ai/sdk":"0.94.0","https-proxy-agent":"7.0.6","tree-sitter-wasms":"0.1.13","@grpc/proto-loader":"^0.8.0","graphology-metrics":"2.4.0","@aws-sdk/client-sts":"3.1047.0","google-auth-library":"10.6.2","supports-hyperlinks":"3.2.0","get-east-asian-width":"1.5.0","react-compiler-runtime":"1.0.0","@aws-sdk/client-bedrock":"3.1047.0","@alcalzone/ansi-tokenize":"0.3.0","@anthropic-ai/bedrock-sdk":"0.29.1","@anthropic-ai/foundry-sdk":"0.2.3","@modelcontextprotocol/sdk":"1.29.0","@smithy/node-http-handler":"4.7.3","@commander-js/extra-typings":"12.1.0","@anthropic-ai/sandbox-runtime":"0.0.55","vscode-languageserver-protocol":"3.17.5","@aws-sdk/credential-provider-node":"3.972.41"},"peerDependencies":{"react":"^19.0.0","react-reconciler":"^0.33.0","@anthropic-ai/sdk":"^0.94.0","@modelcontextprotocol/sdk":"^1.29.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-reconciler":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaude_0.27.0-7_1785926180870_0.03507588020918018","host":"s3://npm-registry-packages-npm-production"}},"0.27.0-8":{"name":"@adambenhassen/openclaude","version":"0.27.0-8","keywords":["claude-code","openai","llm","cli","agent","deepseek","ollama","gemini"],"license":"SEE LICENSE FILE","_id":"@adambenhassen/openclaude@0.27.0-8","maintainers":[{"name":"adambenhassen","email":"adambenhassen@hotmail.com"}],"homepage":"https://github.com/Gitlawb/openclaude#readme","bugs":{"url":"https://github.com/Gitlawb/openclaude/issues"},"bin":{"openclaude":"bin/openclaude"},"dist":{"shasum":"5c4dc6f30add0fd828a5c2926b245e74223a4484","tarball":"https://registry.npmjs.org/@adambenhassen/openclaude/-/openclaude-0.27.0-8.tgz","fileCount":14,"integrity":"sha512-ipsOP7ajZARSfLQBYV6/64oBJ/SsGahF388HkImy186CcC8+aQaHJxFhZJrq9rMmUutDGYlf7odWXF497retrQ==","signatures":[{"sig":"MEUCIQDbHOoEgxI9kpAm4Vj7eRDnWW40d5Vy9sG6tAzi9e/aKwIgampX1NHhTDlJ9Qas5LLvZr07J5J5yPz7MUVsVl82uCA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32231960},"type":"module","engines":{"node":">=22.0.0"},"exports":{"./sdk":{"types":"./src/entrypoints/sdk.d.ts","import":"./dist/sdk.mjs"},"./dist/cli.mjs":"./dist/cli.mjs","./package.json":"./package.json"},"gitHead":"4ffe09a19683b1f6d03e6ba30d6e2d88ce5d0d70","scripts":{"dev":"bun run build && node bin/openclaude","test":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1","build":"bun run scripts/build.ts","check":"bun run smoke && bun run deadcode && bun run test:full","smoke":"bun run build && node dist/cli.mjs --version","start":"node bin/openclaude","prepack":"npm run build","web:dev":"bun run --cwd web dev","deadcode":"knip --include files,dependencies","dev:code":"bun run profile:code && bun run dev:profile","dev:fast":"bun run profile:fast && bun run dev:ollama:fast","dev:grpc":"bun run scripts/start-grpc.ts","dev:codex":"bun run scripts/provider-launch.ts codex","test:full":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1","typecheck":"tsc --noEmit","web:build":"bun run --cwd web build","dev:gemini":"bun run scripts/provider-launch.ts gemini","dev:ollama":"bun run scripts/provider-launch.ts ollama","dev:openai":"bun run scripts/provider-launch.ts openai","dev:profile":"bun run scripts/provider-launch.ts","web:preview":"bun run --cwd web preview","dev:grpc:cli":"bun run scripts/grpc-cli.ts","profile:auto":"bun run scripts/provider-recommend.ts --apply","profile:code":"bun run profile:init -- --provider ollama --model qwen2.5-coder:7b","profile:fast":"bun run profile:init -- --provider ollama --model llama3.2:3b","profile:init":"bun run scripts/provider-bootstrap.ts","doctor:report":"bun run scripts/system-check.ts --out reports/doctor-runtime.json","profile:codex":"bun run profile:init -- --provider codex --model codexplan","test:coverage":"bun test --feature=UNATTENDED_RETRY --coverage --coverage-reporter=lcov --coverage-dir=coverage --max-concurrency=1 && bun run scripts/render-coverage-heatmap.ts","test:provider":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1 src/services/api/*.test.ts src/services/api/openaiShim/*.test.ts src/utils/context.test.ts","web:typecheck":"bun run --cwd web typecheck","build:verified":"bun run build && bun run verify:privacy","doctor:runtime":"bun run scripts/system-check.ts","install:verify":"bun run scripts/verify-clean-install.ts","verify:privacy":"bun run scripts/verify-no-phone-home.ts","dev:atomic-chat":"bun run scripts/provider-launch.ts atomic-chat","dev:ollama:fast":"bun run scripts/provider-launch.ts ollama --fast --bare","hardening:check":"bun run smoke && bun run doctor:runtime","dev:profile:fast":"bun run scripts/provider-launch.ts auto --fast --bare","hardening:strict":"bun run typecheck && bun run hardening:check","security:pr-scan":"bun run scripts/pr-intent-scan.ts","test:coverage:ui":"bun run scripts/render-coverage-heatmap.ts","profile:recommend":"bun run scripts/provider-recommend.ts","integrations:check":"bun run scripts/generate-integrations-artifacts.ts --check","doctor:runtime:json":"bun run scripts/system-check.ts --json","typecheck:type-tests":"bun run scripts/typecheck-type-tests.ts","integrations:generate":"bun run scripts/generate-integrations-artifacts.ts","install:verify:published":"bun run scripts/verify-clean-install.ts --published","test:provider-recommendation":"bun test src/utils/providerRecommendation.test.ts src/utils/providerProfile.test.ts"},"_npmUser":{"name":"adambenhassen","email":"adambenhassen@hotmail.com"},"overrides":{"lodash-es":"4.18.1","ip-address":"10.2.0","node-domexception":"file:vendor/node-domexception-shim","google-auth-library":"10.6.2"},"repository":{"url":"git+https://github.com/Gitlawb/openclaude.git","type":"git"},"_npmVersion":"11.13.0","description":"OpenClaude opens coding-agent workflows to any LLM — OpenAI, Gemini, DeepSeek, Ollama, and 200+ models","directories":{},"_nodeVersion":"24.17.0","allowScripts":{"sharp@0.34.5":true,"protobufjs@7.6.4":true},"dependencies":{"@orama/orama":"3.1.18","@vscode/ripgrep":"1.18.0","@orama/plugin-data-persistence":"3.1.18"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"8.21.0","ajv":"8.18.0","xss":"1.0.15","zod":"3.25.76","diff":"8.0.3","knip":"^6.16.1","yaml":"2.8.3","axios":"1.16.0","chalk":"5.6.2","execa":"9.6.1","p-map":"7.0.4","react":"19.2.4","sharp":"^0.34.5","fflate":"0.8.2","ignore":"7.0.5","marked":"15.0.12","qrcode":"1.5.4","semver":"7.7.4","undici":"7.28.0","bidi-js":"1.0.3","figures":"6.1.0","fuse.js":"7.1.0","chokidar":"4.0.3","turndown":"7.2.2","auto-bind":"5.0.1","cli-boxes":"3.0.0","commander":"12.1.0","env-paths":"3.0.0","lodash-es":"4.18.1","lru-cache":"11.2.7","picomatch":"4.0.4","tree-kill":"1.2.2","type-fest":"4.41.0","wrap-ansi":"9.0.2","@types/bun":"1.3.11","graphology":"0.26.0","typescript":"5.9.3","@types/node":"25.5.0","cross-spawn":"7.0.6","emoji-regex":"10.6.0","js-tiktoken":"1.0.21","shell-quote":"1.8.4","signal-exit":"4.1.0","usehooks-ts":"3.1.1","@smithy/core":"3.24.3","@types/react":"19.2.14","jsonc-parser":"3.3.1","@grpc/grpc-js":"^1.14.3","cli-highlight":"2.1.11","indent-string":"5.0.0","@azure/identity":"^4.13.1","proper-lockfile":"4.1.2","web-tree-sitter":"0.25.10","duck-duck-scrape":"^2.2.7","react-reconciler":"0.33.0","@anthropic-ai/sdk":"0.94.0","https-proxy-agent":"7.0.6","tree-sitter-wasms":"0.1.13","@grpc/proto-loader":"^0.8.0","graphology-metrics":"2.4.0","@aws-sdk/client-sts":"3.1047.0","google-auth-library":"10.6.2","supports-hyperlinks":"3.2.0","get-east-asian-width":"1.5.0","react-compiler-runtime":"1.0.0","@aws-sdk/client-bedrock":"3.1047.0","@alcalzone/ansi-tokenize":"0.3.0","@anthropic-ai/bedrock-sdk":"0.29.1","@anthropic-ai/foundry-sdk":"0.2.3","@modelcontextprotocol/sdk":"1.29.0","@smithy/node-http-handler":"4.7.3","@commander-js/extra-typings":"12.1.0","@anthropic-ai/sandbox-runtime":"0.0.55","vscode-languageserver-protocol":"3.17.5","@aws-sdk/credential-provider-node":"3.972.41"},"peerDependencies":{"react":"^19.0.0","react-reconciler":"^0.33.0","@anthropic-ai/sdk":"^0.94.0","@modelcontextprotocol/sdk":"^1.29.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-reconciler":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaude_0.27.0-8_1785927575794_0.3034376391531364","host":"s3://npm-registry-packages-npm-production"}},"0.27.0-9":{"name":"@adambenhassen/openclaude","version":"0.27.0-9","description":"OpenClaude opens coding-agent workflows to any LLM — OpenAI, Gemini, DeepSeek, Ollama, and 200+ models","type":"module","bin":{"openclaude":"bin/openclaude"},"exports":{"./package.json":"./package.json","./dist/cli.mjs":"./dist/cli.mjs","./sdk":{"types":"./src/entrypoints/sdk.d.ts","import":"./dist/sdk.mjs"}},"scripts":{"build":"bun run scripts/build.ts","integrations:generate":"bun run scripts/generate-integrations-artifacts.ts","integrations:check":"bun run scripts/generate-integrations-artifacts.ts --check","dev":"bun run build && node bin/openclaude","dev:profile":"bun run scripts/provider-launch.ts","dev:profile:fast":"bun run scripts/provider-launch.ts auto --fast --bare","dev:codex":"bun run scripts/provider-launch.ts codex","dev:openai":"bun run scripts/provider-launch.ts openai","dev:gemini":"bun run scripts/provider-launch.ts gemini","dev:ollama":"bun run scripts/provider-launch.ts ollama","dev:ollama:fast":"bun run scripts/provider-launch.ts ollama --fast --bare","dev:atomic-chat":"bun run scripts/provider-launch.ts atomic-chat","profile:init":"bun run scripts/provider-bootstrap.ts","profile:recommend":"bun run scripts/provider-recommend.ts","profile:auto":"bun run scripts/provider-recommend.ts --apply","profile:codex":"bun run profile:init -- --provider codex --model codexplan","profile:fast":"bun run profile:init -- --provider ollama --model llama3.2:3b","profile:code":"bun run profile:init -- --provider ollama --model qwen2.5-coder:7b","dev:fast":"bun run profile:fast && bun run dev:ollama:fast","dev:code":"bun run profile:code && bun run dev:profile","dev:grpc":"bun run scripts/start-grpc.ts","dev:grpc:cli":"bun run scripts/grpc-cli.ts","start":"node bin/openclaude","web:dev":"bun run --cwd web dev","web:build":"bun run --cwd web build","web:preview":"bun run --cwd web preview","web:typecheck":"bun run --cwd web typecheck","test":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1","test:full":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1","test:coverage":"bun test --feature=UNATTENDED_RETRY --coverage --coverage-reporter=lcov --coverage-dir=coverage --max-concurrency=1 && bun run scripts/render-coverage-heatmap.ts","test:coverage:ui":"bun run scripts/render-coverage-heatmap.ts","security:pr-scan":"bun run scripts/pr-intent-scan.ts","test:provider-recommendation":"bun test src/utils/providerRecommendation.test.ts src/utils/providerProfile.test.ts","typecheck":"tsc --noEmit","typecheck:type-tests":"bun run scripts/typecheck-type-tests.ts","smoke":"bun run build && node dist/cli.mjs --version","deadcode":"knip --include files,dependencies","check":"bun run smoke && bun run deadcode && bun run test:full","verify:privacy":"bun run scripts/verify-no-phone-home.ts","install:verify":"bun run scripts/verify-clean-install.ts","install:verify:published":"bun run scripts/verify-clean-install.ts --published","build:verified":"bun run build && bun run verify:privacy","test:provider":"bun test --feature=UNATTENDED_RETRY --max-concurrency=1 src/services/api/*.test.ts src/services/api/openaiShim/*.test.ts src/utils/context.test.ts","doctor:runtime":"bun run scripts/system-check.ts","doctor:runtime:json":"bun run scripts/system-check.ts --json","doctor:report":"bun run scripts/system-check.ts --out reports/doctor-runtime.json","hardening:check":"bun run smoke && bun run doctor:runtime","hardening:strict":"bun run typecheck && bun run hardening:check","prepack":"npm run build"},"dependencies":{"@orama/orama":"3.1.18","@orama/plugin-data-persistence":"3.1.18","@vscode/ripgrep":"1.18.0"},"devDependencies":{"@alcalzone/ansi-tokenize":"0.3.0","@anthropic-ai/bedrock-sdk":"0.29.1","@anthropic-ai/foundry-sdk":"0.2.3","@anthropic-ai/sandbox-runtime":"0.0.55","@anthropic-ai/sdk":"0.94.0","@aws-sdk/client-bedrock":"3.1047.0","@aws-sdk/client-sts":"3.1047.0","@aws-sdk/credential-provider-node":"3.972.41","@azure/identity":"^4.13.1","@commander-js/extra-typings":"12.1.0","@grpc/grpc-js":"^1.14.3","@grpc/proto-loader":"^0.8.0","@modelcontextprotocol/sdk":"1.29.0","@smithy/core":"3.24.3","@smithy/node-http-handler":"4.7.3","@types/bun":"1.3.11","@types/node":"25.5.0","@types/react":"19.2.14","ajv":"8.18.0","auto-bind":"5.0.1","axios":"1.16.0","bidi-js":"1.0.3","chalk":"5.6.2","chokidar":"4.0.3","cli-boxes":"3.0.0","cli-highlight":"2.1.11","commander":"12.1.0","cross-spawn":"7.0.6","diff":"8.0.3","duck-duck-scrape":"^2.2.7","emoji-regex":"10.6.0","env-paths":"3.0.0","execa":"9.6.1","fflate":"0.8.2","figures":"6.1.0","fuse.js":"7.1.0","graphology":"0.26.0","get-east-asian-width":"1.5.0","google-auth-library":"10.6.2","https-proxy-agent":"7.0.6","ignore":"7.0.5","graphology-metrics":"2.4.0","indent-string":"5.0.0","js-tiktoken":"1.0.21","jsonc-parser":"3.3.1","knip":"^6.16.1","lodash-es":"4.18.1","lru-cache":"11.2.7","marked":"15.0.12","p-map":"7.0.4","picomatch":"4.0.4","proper-lockfile":"4.1.2","qrcode":"1.5.4","react":"19.2.4","react-compiler-runtime":"1.0.0","react-reconciler":"0.33.0","semver":"7.7.4","sharp":"^0.34.5","shell-quote":"1.8.4","signal-exit":"4.1.0","supports-hyperlinks":"3.2.0","tree-kill":"1.2.2","tree-sitter-wasms":"0.1.13","turndown":"7.2.2","type-fest":"4.41.0","typescript":"5.9.3","undici":"7.28.0","usehooks-ts":"3.1.1","web-tree-sitter":"0.25.10","vscode-languageserver-protocol":"3.17.5","wrap-ansi":"9.0.2","ws":"8.21.0","xss":"1.0.15","yaml":"2.8.3","zod":"3.25.76"},"peerDependencies":{"@anthropic-ai/sdk":"^0.94.0","@modelcontextprotocol/sdk":"^1.29.0","react":"^19.0.0","react-reconciler":"^0.33.0"},"peerDependenciesMeta":{"@anthropic-ai/sdk":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"react":{"optional":true},"react-reconciler":{"optional":true}},"engines":{"node":">=22.0.0"},"repository":{"type":"git","url":"git+https://github.com/Gitlawb/openclaude.git"},"keywords":["claude-code","openai","llm","cli","agent","deepseek","ollama","gemini"],"license":"SEE LICENSE FILE","publishConfig":{"access":"public"},"overrides":{"ip-address":"10.2.0","google-auth-library":"10.6.2","lodash-es":"4.18.1","node-domexception":"file:vendor/node-domexception-shim"},"allowScripts":{"protobufjs@7.6.4":true,"sharp@0.34.5":true},"gitHead":"1d6fa49b8c8a14fe43d3dee77b43ae9a1456c5ad","_id":"@adambenhassen/openclaude@0.27.0-9","bugs":{"url":"https://github.com/Gitlawb/openclaude/issues"},"homepage":"https://github.com/Gitlawb/openclaude#readme","_nodeVersion":"24.17.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-tAcADbSIjMGdgOlGI6fgGaRScRL3wgv54hxQJZ3/n8XetuKuZ3f7F1kdspi0cBlOElrdocdOOJl7qoUJ/5muyw==","shasum":"8021354a07f61704138d6f1a891ca6bd2f040ada","tarball":"https://registry.npmjs.org/@adambenhassen/openclaude/-/openclaude-0.27.0-9.tgz","fileCount":14,"unpackedSize":32234266,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCQg5YWzs7cBHy0U29LmdhGU5N6LzqR6VL8tasPu5jRiwIhALSOYl75c/cU63NiHC9HW/ldGy9mFZTAUmwHgX7s3k37"}]},"_npmUser":{"name":"adambenhassen","email":"adambenhassen@hotmail.com"},"directories":{},"maintainers":[{"name":"adambenhassen","email":"adambenhassen@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/openclaude_0.27.0-9_1785931182757_0.44179680852968617"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-05T06:16:40.303Z","modified":"2026-08-05T11:59:43.167Z","0.27.0-1":"2026-08-05T06:16:40.738Z","0.27.0-2":"2026-08-05T07:44:19.008Z","0.27.0-3":"2026-08-05T08:52:07.413Z","0.27.0-4":"2026-08-05T09:19:38.693Z","0.27.0-5":"2026-08-05T09:36:38.359Z","0.27.0-6":"2026-08-05T10:13:10.133Z","0.27.0-7":"2026-08-05T10:36:21.168Z","0.27.0-8":"2026-08-05T10:59:36.075Z","0.27.0-9":"2026-08-05T11:59:42.994Z"},"bugs":{"url":"https://github.com/Gitlawb/openclaude/issues"},"license":"SEE LICENSE FILE","homepage":"https://github.com/Gitlawb/openclaude#readme","keywords":["claude-code","openai","llm","cli","agent","deepseek","ollama","gemini"],"repository":{"type":"git","url":"git+https://github.com/Gitlawb/openclaude.git"},"description":"OpenClaude opens coding-agent workflows to any LLM — OpenAI, Gemini, DeepSeek, Ollama, and 200+ models","maintainers":[{"name":"adambenhassen","email":"adambenhassen@hotmail.com"}],"readme":"<div align=\"center\">\n  <img src=\"docs/assets/openclaude-wordmark.png\" alt=\"OpenClaude — Open terminal for any LLM\" width=\"830\">\n\n  <p>\n    <a href=\"https://trendshift.io/repositories/25807?utm_source=trendshift-badge&amp;utm_medium=badge&amp;utm_campaign=badge-trendshift-25807\" target=\"_blank\" rel=\"noopener noreferrer\"><img src=\"https://trendshift.io/api/badge/trendshift/repositories/25807/daily?language=TypeScript\" alt=\"Gitlawb%2Fopenclaude | Trendshift\" width=\"250\" height=\"55\"/></a>\n    <a href=\"https://trendshift.io/repositories/25807?utm_source=trendshift-badge&amp;utm_medium=badge&amp;utm_campaign=badge-trendshift-25807\" target=\"_blank\" rel=\"noopener noreferrer\"><img src=\"https://trendshift.io/api/badge/trendshift/repositories/25807/monthly?language=TypeScript\" alt=\"Gitlawb%2Fopenclaude | Trendshift\" width=\"250\" height=\"55\"/></a>\n    <a href=\"https://trendshift.io/repositories/25807?utm_source=repository-badge&amp;utm_medium=badge&amp;utm_campaign=badge-repository-25807\" target=\"_blank\" rel=\"noopener noreferrer\"><img src=\"https://trendshift.io/api/badge/repositories/25807\" alt=\"Gitlawb%2Fopenclaude | Trendshift\" width=\"250\" height=\"55\"/></a>\n  </p>\n</div>\n\nOpenClaude is an open-source coding-agent CLI for cloud and local model providers.\n\nUse OpenAI-compatible APIs, Gemini, GitHub Models, Codex OAuth, Codex, Ollama, Atomic Chat, and other supported backends while keeping one terminal-first workflow: prompts, tools, agents, MCP, slash commands, and streaming output.\n\n[![PR Checks](https://github.com/Gitlawb/openclaude/actions/workflows/pr-checks.yml/badge.svg?branch=main)](https://github.com/Gitlawb/openclaude/actions/workflows/pr-checks.yml)\n[![Release](https://img.shields.io/github/v/tag/Gitlawb/openclaude?label=release&color=0ea5e9)](https://github.com/Gitlawb/openclaude/tags)\n[![npm downloads](https://img.shields.io/npm/dm/@gitlawb/openclaude)](https://www.npmjs.com/package/@gitlawb/openclaude)\n[![Discussions](https://img.shields.io/badge/discussions-open-7c3aed)](https://github.com/Gitlawb/openclaude/discussions)\n[![Discord](https://img.shields.io/badge/Discord-join-5865F2?logo=discord&logoColor=white)](https://discord.gg/k68zFR6AcB)\n[![X](https://img.shields.io/badge/X-@gitlawb-000000?logo=x&logoColor=white)](https://x.com/gitlawb)\n[![Security Policy](https://img.shields.io/badge/security-policy-0f766e)](SECURITY.md)\n[![License](https://img.shields.io/badge/license-MIT-2563eb)](LICENSE)\n\nOpenClaude is also mirrored to GitLawb:\n[gitlawb.com/node/repos/z6MkqDnb/openclaude](https://gitlawb.com/node/repos/z6MkqDnb/openclaude)\n\n[Quick Start](#quick-start) | [Setup Guides](#setup-guides) | [Providers](#supported-providers) | [Development](#development) | [VS Code Extension](#vs-code-extension) | [Partners](#partners) | [Community](#community)\n\n## Partners\n\n<table align=\"center\">\n  <tr>\n    <td align=\"center\" width=\"150\" height=\"80\">\n      <a href=\"https://gitlawb.com\">\n        <img src=\"https://gitlawb.com/logo.png\" alt=\"GitLawb logo\" width=\"72\">\n      </a>\n    </td>\n    <td align=\"center\" width=\"150\" height=\"80\">\n      <a href=\"https://bankr.bot\">\n        <img src=\"https://bankr.bot/favicon.svg\" alt=\"Bankr.bot logo\" width=\"72\">\n      </a>\n    </td>\n    <td align=\"center\" width=\"150\" height=\"80\">\n      <a href=\"https://atomic.chat/\">\n        <img src=\"docs/assets/atomic-chat-logo.png\" alt=\"Atomic Chat logo\" width=\"72\">\n      </a>\n    </td>\n    <td align=\"center\" width=\"150\" height=\"80\">\n      <a href=\"https://mimo.mi.com\">\n        <img src=\"https://mimo.xiaomi.com/mimo-v2-pro/assets/logo.svg\" alt=\"Xiaomi MiMo logo\" width=\"136\">\n      </a>\n    </td>\n    <td align=\"center\" width=\"150\" height=\"80\">\n      <a href=\"https://www.atlascloud.ai/\">\n        <img src=\"docs/assets/atlas-cloud-banner.png\" alt=\"Atlas Cloud logo\" width=\"136\">\n      </a>\n    </td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://gitlawb.com\"><strong>GitLawb</strong></a></td>\n    <td align=\"center\"><a href=\"https://bankr.bot\"><strong>Bankr.bot</strong></a></td>\n    <td align=\"center\"><a href=\"https://atomic.chat/\"><strong>Atomic Chat</strong></a></td>\n    <td align=\"center\"><a href=\"https://mimo.mi.com\"><strong>Xiaomi MiMo</strong></a></td>\n    <td align=\"center\"><a href=\"https://www.atlascloud.ai/\"><strong>Atlas Cloud</strong></a></td>\n  </tr>\n  <tr>\n    <td align=\"center\" width=\"150\" height=\"80\">\n      <a href=\"https://aimlapi.com/\">\n        <picture>\n          <source media=\"(prefers-color-scheme: dark)\" srcset=\"docs/assets/aimlapi-logo-dark.svg\">\n          <img src=\"docs/assets/aimlapi-logo.svg\" alt=\"AI/ML API logo\" width=\"136\">\n        </picture>\n      </a>\n    </td>\n    <td align=\"center\" width=\"150\" height=\"80\">\n      <a href=\"https://novita.ai/\">\n        <img src=\"docs/assets/novita-logo.png\" alt=\"Novita AI logo\" width=\"120\">\n      </a>\n    </td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://aimlapi.com/\"><strong>AI/ML API</strong></a></td>\n    <td align=\"center\"><a href=\"https://novita.ai/\"><strong>Novita AI</strong></a></td>\n  </tr>\n</table>\n\n## Why OpenClaude\n\n- One CLI across cloud APIs and local model backends — no per-provider tooling\n- Guided provider setup and saved profiles with `/provider`\n- Coding-agent workflows in one place: bash, file tools, grep, glob, agents, tasks, MCP, and web tools\n- A bundled VS Code extension for launch integration and theme support\n- A pixel-art hero companion who fires an arrow every time you press Enter (really — see [Meet your buddy](#meet-your-buddy))\n\n## Quick Start\n\n### Install\n\nOpenClaude requires Node.js `>=22.0.0` for npm installs and runtime. Bun is\nonly needed for source builds and local development.\n\n```bash\nnpm install -g @gitlawb/openclaude@latest\n```\n\nIf you're on Arch Linux, you can install OpenClaude from the community-maintained [AUR package](https://aur.archlinux.org/packages/openclaude):\n```bash\nparu -S openclaude\n```\n\nIf the install later reports `ripgrep not found`, install ripgrep system-wide and confirm `rg --version` works in the same terminal before starting OpenClaude.\n\n**Verify / troubleshoot installed version:**\n\n```bash\nopenclaude --version\nnpm view @gitlawb/openclaude dist-tags\nnpm install -g @gitlawb/openclaude@latest\n```\n\n### Start\n\n```bash\nopenclaude\n```\n\nInside OpenClaude:\n\n- run `/provider` for guided provider setup and saved profiles\n- run `/onboard-github` for GitHub Models onboarding\n\n> **Note:** OpenClaude does not automatically load project `.env` files. We recommend using the `/provider` command for setup, which saves provider profiles and credentials in `.openclaude-profile.json`. If you prefer environment variables, export them explicitly or run `openclaude --provider-env-file .env` for provider/setup variables. Export runtime/debug knobs from your shell or launcher.\n\n### Resume or fork a conversation\n\nResume an existing conversation by session ID, or continue the most recent\nconversation in the current directory:\n\n```bash\nopenclaude --resume <session-id>\nopenclaude --continue\n```\n\nAdd `--fork-session` to branch the conversation history into a new session ID\ninstead of reusing the original transcript:\n\n```bash\nopenclaude --resume <session-id> --fork-session\nopenclaude --continue --fork-session\n```\n\nForking is conversation branching only. It does not create filesystem isolation,\ncopy your working tree, or create a git worktree branch.\n\n### Background sessions\n\nRun long non-interactive prompts detached from the current terminal:\n\n```bash\nopenclaude --bg \"fix failing tests\"\nopenclaude --bg --name auth-refactor \"refactor auth middleware\"\nopenclaude ps\nopenclaude logs auth-refactor\nopenclaude logs auth-refactor -f\nopenclaude kill auth-refactor\n```\n\nBackground sessions are local child processes. OpenClaude does not start a daemon\nor network service, and permission/provider/model/settings flags are passed to\nthe child process the same way they are for a foreground `--print` run. Session\nmetadata and logs are stored under the resolved OpenClaude config directory,\nusually `~/.openclaude/bg-sessions/`; `OPENCLAUDE_CONFIG_DIR` can point\nOpenClaude somewhere else. `CLAUDE_CONFIG_DIR` is ignored for OpenClaude\nbackground-session storage. Session names can be reused after older sessions\nreach a terminal state; use the session ID to inspect older logs with the same\nname.\n\n`openclaude attach <id-or-name>` currently reports the matching session and\npoints to `openclaude logs <id> -f`; full terminal reattach is not implemented\nfor local background sessions yet.\n\n### OpenClaude config cutover\n\nOpenClaude stores its own config under `~/.openclaude` and `~/.openclaude.json`\nby default. It does not read `~/.claude`, project `.claude/` directories, or\n`CLAUDE_CONFIG_DIR`; new users can start with an empty OpenClaude config and do\nnot need Claude Code installed.\n\nIf you previously used OpenClaude with `.claude` paths, migrate intentionally:\ncopy only the settings, commands, agents, skills, scheduled tasks, or other files\nyou personally created for OpenClaude into the matching `.openclaude` location.\nDo not blanket-copy `.claude`, and do not copy Claude Code credentials or auth\nfiles. For provider authentication, prefer running OpenClaude's provider setup\nagain or exporting provider-specific environment variables.\n\n### Fastest OpenAI setup\n\nmacOS / Linux:\n\n```bash\nexport CLAUDE_CODE_USE_OPENAI=1\nexport OPENAI_API_KEY=sk-your-key-here\nexport OPENAI_MODEL=gpt-4o\n\nopenclaude\n```\n\nWindows PowerShell:\n\n```powershell\n$env:CLAUDE_CODE_USE_OPENAI=\"1\"\n$env:OPENAI_API_KEY=\"sk-your-key-here\"\n$env:OPENAI_MODEL=\"gpt-4o\"\n\nopenclaude\n```\n\n### Fastest local Ollama setup\n\nmacOS / Linux:\n\n```bash\nexport CLAUDE_CODE_USE_OPENAI=1\nexport OPENAI_BASE_URL=http://localhost:11434/v1\nexport OPENAI_MODEL=qwen2.5-coder:7b\n\nopenclaude\n```\n\nWindows PowerShell:\n\n```powershell\n$env:CLAUDE_CODE_USE_OPENAI=\"1\"\n$env:OPENAI_BASE_URL=\"http://localhost:11434/v1\"\n$env:OPENAI_MODEL=\"qwen2.5-coder:7b\"\n\nopenclaude\n```\n\nFor Ollama, OpenClaude uses Ollama's native chat API and requests a 32768-token\ncontext window on each chat request so same-session history is not silently\ntruncated by Ollama's OpenAI-compatible shim. Set `OPENCLAUDE_OLLAMA_NUM_CTX`\nor `OLLAMA_CONTEXT_LENGTH` if you need a different request-level context size.\nSee [Advanced Setup](docs/advanced-setup.md#ollama-context-length) for\nverification with `ollama ps`.\n\n## Setup Guides\n\nBeginner-friendly guides:\n\n- [Non-Technical Setup](docs/non-technical-setup.md)\n- [Windows Quick Start](docs/quick-start-windows.md)\n- [macOS / Linux Quick Start](docs/quick-start-mac-linux.md)\n\nAdvanced and source-build guides:\n\n- [Advanced Setup](docs/advanced-setup.md)\n- [Smart Auto-Routing](docs/smart-routing.md)\n- [Agent Routing and Step Limits](docs/agent-routing.md)\n- [Headless gRPC Server](docs/grpc-server.md)\n- [Repo Map (codebase intelligence)](docs/repo-map.md)\n- [Android Install](ANDROID_INSTALL.md)\n\n## Supported Providers\n\n| Provider | Setup Path | Notes |\n| --- | --- | --- |\n| OpenAI-compatible | `/provider` or env vars | Works with OpenAI, OpenRouter, DeepSeek, Groq, Mistral, LM Studio, and other compatible `/v1` servers |\n| Z.AI GLM Coding Plan | `/provider` or OpenAI-compatible env vars | Uses `OPENAI_API_KEY` at `https://api.z.ai/api/coding/paas/v4` and defaults to `glm-5.2` |\n| AI/ML API | `/provider` or `AIMLAPI_API_KEY` ([setup guide](docs/aimlapi-setup.md)) | Uses `https://api.aimlapi.com/v1`, auto-detects the OpenAI-compatible route from `AIMLAPI_API_KEY`, sends OpenClaude attribution headers, and discovers chat-capable models from the public `/models` catalog |\n| Hicap | `/provider` or OpenAI-compatible env vars | Uses `api-key` auth, discovers models from unauthenticated `/models`, and supports Responses mode for `gpt-` models |\n| Fireworks AI | `/provider` or env vars | First-class provider with 276 curated models (DeepSeek, Qwen, Llama, Gemma, and more); uses `FIREWORKS_API_KEY` |\n| LongCat | `/provider` or env vars | Meituan LongCat OpenAI-compatible API at `https://api.longcat.chat/openai/v1`; uses `LONGCAT_API_KEY` and defaults to `LongCat-2.0` |\n| ClinePass | `/provider` or env vars | AI model gateway with usage limits (5hr, weekly, monthly); uses `CLINE_API_KEY` at `https://api.cline.bot/api/v1` |\n| Gemini | `/provider` or env vars | Supports API key only |\n| GitHub Models | `/onboard-github` | Interactive onboarding with saved credentials |\n| Codex OAuth | `/provider` | Opens ChatGPT sign-in in your browser and stores Codex credentials securely |\n| Codex | `/provider` | Uses existing Codex CLI auth, OpenClaude secure storage, or env credentials |\n| Gitlawb Opengateway | Startup default, `/provider`, or env vars | Smart gateway at `https://opengateway.gitlawb.com/v1`; requires an API key from https://gitlawb.com/opengateway/keys and routes Xiaomi MiMo and GMI Cloud partner models by `OPENAI_MODEL` |\n| OpenCode Zen | `/provider` or env vars | Pay-as-you-go AI gateway (48 models); uses `OPENCODE_API_KEY` via `https://opencode.ai/zen/v1`; shared key with OpenCode Go |\n| OpenCode Go | `/provider` or env vars | $10/mo subscription for open models (13 models); uses `OPENCODE_API_KEY` via `https://opencode.ai/zen/go/v1`; shared key with OpenCode Zen |\n| Xiaomi MiMo | `/provider` or env vars | OpenAI-compatible API at `https://mimo.mi.com`; uses `MIMO_API_KEY` and defaults to `mimo-v2.5-pro` |\n| NEAR AI | `/provider` or env vars | Unified gateway (Claude, GPT, Gemini + TEE open models); uses `NEARAI_API_KEY` at `https://cloud-api.near.ai/v1` |\n| Cloudflare Workers AI | `/provider` or env vars | OpenAI-compatible API at `https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/ai/v1`; uses `CLOUDFLARE_API_TOKEN`. Replace `<ACCOUNT_ID>` with your Cloudflare account id. |\n| Ollama | `/provider` or env vars | Local inference with no API key |\n| Atomic Chat | `/provider`, env vars, or `bun run dev:atomic-chat` | Local Model Provider; auto-detects loaded models |\n| Bedrock / Vertex / Foundry | env vars | Anthropic-family cloud routes; Vertex is for Claude on Vertex AI, not arbitrary Model Garden models |\n\n## What Works\n\n- **Tool-driven coding workflows**: Bash, file read/write/edit, grep, glob, agents, tasks, MCP, and slash commands\n- **Streaming responses**: Real-time token output and tool progress\n- **Tool calling**: Multi-step tool loops with model calls, tool execution, and follow-up responses\n- **Images**: URL and base64 image inputs for providers that support vision\n- **Provider profiles**: Guided setup plus saved user-level provider profile support\n- **Local and remote model backends**: Cloud APIs, local servers, and Apple Silicon local inference\n- **Codebase intelligence (repo map)**: Structural map of the repository ranked by PageRank importance, auto-injected into context when the `REPO_MAP` flag is enabled or the `REPO_MAP` environment variable is set. Inspect with `/repomap` (2048-token default). See [docs/repo-map.md](docs/repo-map.md) for details.\n- **A companion with signature moves**: A truecolor pixel-art hero who lives beside your prompt and reacts when you work. See below.\n\n## Meet Your Buddy\n\nRun `/buddy` to hatch a companion — a truecolor pixel-art hero who stands\nbeside your prompt, idles, blinks, and fires their signature move every time\nyou submit a message:\n\n```\n/buddy                  hatch (first run) or pet your companion\n/buddy set robinhood    the green archer — arrow shot on every Enter\n/buddy set kaio         gold-haired warrior — charges a full-width energy wave\n/buddy set strawhat     stretchy punch that snaps back\n/buddy set merlin       twinkling sparkle stream\n/buddy set kage         spinning shuriken\n/buddy set ember        dragon fire with a real heat gradient\n/buddy set corsair      cannonball with smoke trail\n/buddy name Robin       rename your companion\n/buddy set random       back to your rolled hero\n```\n\nCompanions respect `prefersReducedMotion`, degrade gracefully to line art in\nlow-color terminals, and can be silenced with `/buddy mute`. Requires a\nterminal at least 100 columns wide for the full sprite.\n\n## Provider Notes\n\nOpenClaude supports multiple providers, but behavior is not identical across all of them.\n\n- Anthropic-specific features may not exist on other providers\n- Tool quality depends heavily on the selected model\n- Smaller local models can struggle with long multi-step tool flows\n- Some providers impose lower output caps than the CLI defaults, and OpenClaude adapts where possible\n- AI/ML API uses the OpenAI-compatible route, defaults to `gpt-4o`, and only surfaces chat-capable models from its public catalog\n- Gitlawb Opengateway is the fresh-install startup default and requires an API key from https://gitlawb.com/opengateway/keys. It uses one OpenAI-compatible base URL; switch between `mimo-*` and `google/gemini-3.1-flash-lite-preview` with `/model`, and do not pin the base URL to `/v1/xiaomi-mimo`.\n- Z.AI GLM Coding Plan uses `https://api.z.ai/api/coding/paas/v4` with `glm-5.2` by default. Use `glm-5.2?reasoning=high` for enhanced reasoning, `glm-5.2?reasoning=xhigh` to request Z.AI `reasoning_effort=max`, or `glm-5.2?thinking=disabled` for faster direct answers.\n- Xiaomi MiMo uses `api-key` header auth on the direct OpenAI-compatible route and currently does not support `/usage` reporting in OpenClaude\n- GitHub Copilot serializes sub-agent execution by default to reduce Premium Request consumption — see [Agent Routing and Step Limits](docs/agent-routing.md#github-copilot-sub-agent-optimization) for tuning\n\nFor best results, use models with strong tool/function calling support.\n\n## Agents\n\nRoute different agents to different models (cost optimization, splitting work\nby model strength), cap sub-agent tool steps with `maxSteps`, and tune GitHub\nCopilot sub-agent behavior. All settings-driven:\n\n- per-agent provider/model overrides via `agentModels` + `agentRouting` in `~/.openclaude.json`\n- model-only routes that reuse your current provider's credentials\n- built-in agents (`Explore`, `Plan`, `verification`) routable by type name\n\nSee [Agent Routing and Step Limits](docs/agent-routing.md) for the full guide.\n\n## Web Search and Fetch\n\nBy default, `WebSearch` works on non-Anthropic models using DuckDuckGo. This gives GPT-4o, DeepSeek, Gemini, Ollama, and other OpenAI-compatible providers a free web search path out of the box.\n\n> **Note:** DuckDuckGo fallback works by scraping search results and may be rate-limited, blocked, or subject to DuckDuckGo's Terms of Service. If you want a more reliable supported option, configure Firecrawl.\n\nFor Anthropic-native backends and Codex responses, OpenClaude keeps the native provider web search behavior.\n\n`WebFetch` works, but its basic HTTP plus HTML-to-markdown path can still fail on JavaScript-rendered sites or sites that block plain HTTP requests.\n\nSet a [Firecrawl](https://firecrawl.dev) API key if you want Firecrawl-powered search/fetch behavior:\n\n```bash\nexport FIRECRAWL_API_KEY=your-key-here\n```\n\nWith Firecrawl enabled:\n\n- `WebSearch` can use Firecrawl's search API while DuckDuckGo remains the default free path for non-Claude models\n- `WebFetch` uses Firecrawl's scrape endpoint instead of raw HTTP, handling JS-rendered pages correctly\n\nFree tier at [firecrawl.dev](https://firecrawl.dev) includes 500 credits. The key is optional.\n\n## Headless gRPC Server\n\nOpenClaude can run as a headless gRPC service with bidirectional streaming —\nintegrate its agentic capabilities into other applications, CI/CD pipelines,\nor custom UIs. Start it with `npm run dev:grpc`; a test CLI client ships with\nthe repo. See [Headless gRPC Server](docs/grpc-server.md) for configuration\nand client generation from `src/proto/openclaude.proto`.\n\n## Development\n\nUse Node.js `>=22.0.0` and Bun `1.3.13` or newer for source builds.\n\n```bash\nbun install\nbun run build\nnode dist/cli.mjs\n```\n\nDay-to-day commands:\n\n- `bun run dev` — build and launch from source\n- `bun test` — full unit suite (Bun's built-in runner)\n- `bun test path/to/file.test.ts` — focused runs for the areas you touch\n- `bun run test:coverage` — coverage to `coverage/lcov.info` plus a visual report at `coverage/index.html` (`bun run test:coverage:ui` rebuilds just the UI)\n- `bun run smoke` — smoke checks\n- `bun run doctor:runtime`, `bun run verify:privacy`, `bun run security:pr-scan -- --base origin/main`\n\nFocused suites: `bun run test:provider`, `bun run test:provider-recommendation`.\n\nRecommended validation before opening a PR:\n\n- `bun run build`\n- `bun run smoke`\n- `bun run test:coverage` when your change affects shared runtime or provider logic\n- focused `bun test ...` runs for the files and flows you changed\n\n## Repository Structure\n\n- `src/` - core CLI/runtime\n- `scripts/` - build, verification, and maintenance scripts\n- `docs/` - setup, contributor, and project documentation\n- `vscode-extension/openclaude-vscode/` - VS Code extension\n- `.github/` - repo automation, templates, and CI configuration\n- `bin/` - CLI launcher entrypoints\n\n## VS Code Extension\n\nThe repo includes a VS Code extension in [`vscode-extension/openclaude-vscode`](vscode-extension/openclaude-vscode) for OpenClaude launch integration, provider-aware Control Center, in-editor chat, theme support, and optional **Microsoft Foundry / Azure OpenAI** configuration (endpoint, API version, deployment, API key via Secret Storage) injected into launched terminals. See that folder's [README](vscode-extension/openclaude-vscode/README.md).\n\n## Security\n\nIf you believe you found a security issue, see [SECURITY.md](SECURITY.md).\n\n## Community\n\n- Use [GitHub Discussions](https://github.com/Gitlawb/openclaude/discussions) for Q&A, ideas, and community conversation\n- Use [GitHub Issues](https://github.com/Gitlawb/openclaude/issues) for confirmed bugs and actionable feature work\n- Join the [Discord](https://discord.gg/k68zFR6AcB) to chat with the community in real time\n- Follow [@gitlawb on X](https://x.com/gitlawb) for updates and announcements\n\n## Contributing\n\nContributions are welcome. For larger changes, open an issue first so the\nscope is clear before implementation. See [Development](#development) for the\nbuild, test, and pre-PR validation commands.\n\n## Disclaimer\n\nOpenClaude is an independent community project and is not affiliated with, endorsed by, or sponsored by Anthropic.\n\nOpenClaude originated from the Claude Code codebase and has since been substantially modified to support multiple providers and open use. \"Claude\" and \"Claude Code\" are trademarks of Anthropic PBC. See [LICENSE](LICENSE) for details.\n\n## License\n\nMIT for OpenClaude contributors' modifications; the derived Claude Code remains Anthropic's. [See more](LICENSE).\n","readmeFilename":"README.md"}