{"_id":"openwiki","_rev":"11-6a18a579efc173f7db5d2492fe3e3654","name":"openwiki","dist-tags":{"latest":"0.2.2"},"versions":{"0.0.0":{"name":"openwiki","version":"0.0.0","keywords":["ai","agents","documentation","wiki","deepagents","langchain","cli"],"license":"MIT","_id":"openwiki@0.0.0","maintainers":[{"name":"basproul","email":"braceasproul@gmail.com"}],"bin":{"openwiki":"dist/cli.js"},"dist":{"shasum":"c562941751eefa271f0bdb5dae9c4a9fe0db0a4e","tarball":"https://registry.npmjs.org/openwiki/-/openwiki-0.0.0.tgz","fileCount":21,"integrity":"sha512-VS1z+oh8lexQkQMfXPgNnsCGyicbHh2ABIhfQiFCRskEI1xUfABkP4l4WWRD7fySqdWAX1i3Zhhw5DB1v0X5bw==","signatures":[{"sig":"MEYCIQDjYw5coTH8hoX/Zfun68kionNBBAyztJ+/OM+i7BG3UgIhAP9giNO+Zk2Rws/Dd0u/WcLuGxpjY6eb27OJ+WDz4f4d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":148755},"pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild"]},"type":"module","engines":{"node":">=20"},"gitHead":"10638c48a7d26936805961fa496c7ad534fe4d6a","scripts":{"dev":"tsx src/cli.tsx","lint":"eslint . --fix","build":"tsc -p tsconfig.json","clean":"rm -rf dist","start":"node dist/cli.js","format":"prettier --write .","prepack":"pnpm run build","openwiki":"node dist/cli.js","prebuild":"pnpm run clean","lint:check":"eslint .","format:check":"prettier --check ."},"_npmUser":{"name":"basproul","email":"braceasproul@gmail.com"},"_npmVersion":"10.5.2","description":"A CLI that uses a DeepAgents documentation agent to generate and maintain an OpenWiki for a codebase.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ink":"^5.1.0","react":"^18.3.1","marked":"^18.0.5","langchain":"^1.5.1","deepagents":"^1.10.5","@langchain/core":"^1.2.1","@langchain/openrouter":"^0.4.3","@langchain/langgraph-checkpoint-sqlite":"^1.0.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2+sha512.a90faf6feeab71ad6c6e57f94e0fe1a12f5dcc22cd754db40ae9593eb6a3e0b6b12e3540218bb37ae083404b1f2ce6db2a4121e979829b4aff94b99f49da1cf8","devDependencies":{"tsx":"^4.19.2","eslint":"^10.5.0","prettier":"^3.8.4","@eslint/js":"^10.0.1","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.17","typescript-eslint":"^8.62.0"},"_npmOperationalInternal":{"tmp":"tmp/openwiki_0.0.0_1782494391011_0.8235388265953592","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"openwiki","version":"0.0.1","keywords":["ai","agents","documentation","wiki","deepagents","langchain","cli"],"license":"MIT","_id":"openwiki@0.0.1","maintainers":[{"name":"basproul","email":"braceasproul@gmail.com"}],"bin":{"openwiki":"dist/cli.js"},"dist":{"shasum":"458fe995de5186c2b7b1d65f018926a74f1cae58","tarball":"https://registry.npmjs.org/openwiki/-/openwiki-0.0.1.tgz","fileCount":21,"integrity":"sha512-zgMAIl0delZUXQlFCp97xqwtRANkUvCqYZ0wLKkER4VuXZk9tZMMl+YIUb+UCaTv9cnliW0+u+3QdQsXythNwA==","signatures":[{"sig":"MEQCIHGgxt3iNSMxzaqe66+1aUmj7aqGz5Qj9WjFIUc+2z9jAiBB1WlkhQb+kFwD4908xhNralsjSIQj0ej5wpXhMT+JyA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178040},"pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild"]},"type":"module","engines":{"node":">=20"},"gitHead":"fc2dc7b5bd273775f5230cd8caddfd92c779ce99","scripts":{"dev":"tsx src/cli.tsx","lint":"eslint . --fix","build":"tsc -p tsconfig.json","clean":"rm -rf dist","start":"node dist/cli.js","format":"prettier --write .","prepack":"pnpm run build","openwiki":"node dist/cli.js","prebuild":"pnpm run clean","lint:check":"eslint .","format:check":"prettier --check ."},"_npmUser":{"name":"basproul","email":"braceasproul@gmail.com"},"_npmVersion":"10.5.2","description":"A CLI that uses a DeepAgents documentation agent to generate and maintain an OpenWiki for a codebase.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ink":"^5.1.0","react":"^18.3.1","marked":"^18.0.5","langchain":"^1.5.1","deepagents":"^1.10.5","@langchain/core":"^1.2.1","@langchain/openai":"^1.5.3","@langchain/anthropic":"^1.5.1","@langchain/openrouter":"^0.4.3","@langchain/langgraph-checkpoint-sqlite":"^1.0.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2+sha512.a90faf6feeab71ad6c6e57f94e0fe1a12f5dcc22cd754db40ae9593eb6a3e0b6b12e3540218bb37ae083404b1f2ce6db2a4121e979829b4aff94b99f49da1cf8","devDependencies":{"tsx":"^4.19.2","eslint":"^10.5.0","prettier":"^3.8.4","@eslint/js":"^10.0.1","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.17","typescript-eslint":"^8.62.0"},"_npmOperationalInternal":{"tmp":"tmp/openwiki_0.0.1_1782927236085_0.5591454498199484","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"openwiki","version":"0.0.2","keywords":["ai","agents","documentation","wiki","deepagents","langchain","cli"],"license":"MIT","_id":"openwiki@0.0.2","maintainers":[{"name":"basproul","email":"braceasproul@gmail.com"}],"bin":{"openwiki":"dist/cli.js"},"dist":{"shasum":"6fa73c90e37f20f802e00cb2974aa7c1064c7ec1","tarball":"https://registry.npmjs.org/openwiki/-/openwiki-0.0.2.tgz","fileCount":27,"integrity":"sha512-Brqe5J6fvUezujYUmi0420KRHFuhqw8LybwNRHbL1hO9vmN1HcTiXZ2Uuhoa4gqXyxl4mNc0e/9NnOjpwLXUbQ==","signatures":[{"sig":"MEYCIQCn8KpHqDQ94xTwu1JhMUIbt2yzY/RA7EPKOAZGpVLKUQIhAIH9DNUmu4k9zWLzVGnYYNzUrZjehv/FuGbaauWnDsqG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197600},"pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild"]},"type":"module","engines":{"node":">=20"},"gitHead":"925de42e908275c0c76f4f6f49a6a8e884e91c5d","scripts":{"dev":"tsx src/cli.tsx","lint":"eslint . --fix","test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist","start":"node dist/cli.js","format":"prettier --write .","prepack":"pnpm run build","coverage":"vitest run --coverage","openwiki":"node dist/cli.js","prebuild":"pnpm run clean","typecheck":"tsc --noEmit -p tsconfig.json","lint:check":"eslint .","format:check":"prettier --check ."},"_npmUser":{"name":"basproul","email":"braceasproul@gmail.com"},"_npmVersion":"10.5.2","description":"A CLI that uses a DeepAgents documentation agent to generate and maintain an OpenWiki for a codebase.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ink":"^5.1.0","react":"^18.3.1","marked":"^18.0.5","langchain":"^1.5.1","deepagents":"^1.10.5","@langchain/core":"^1.2.1","@langchain/openai":"^1.5.3","@langchain/anthropic":"^1.5.1","@langchain/openrouter":"^0.4.3","@langchain/langgraph-checkpoint-sqlite":"^1.0.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2+sha512.a90faf6feeab71ad6c6e57f94e0fe1a12f5dcc22cd754db40ae9593eb6a3e0b6b12e3540218bb37ae083404b1f2ce6db2a4121e979829b4aff94b99f49da1cf8","devDependencies":{"tsx":"^4.19.2","eslint":"^10.5.0","vitest":"^4.1.10","prettier":"^3.8.4","@eslint/js":"^10.0.1","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.17","typescript-eslint":"^8.62.0","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/openwiki_0.0.2_1783447274538_0.7797443502281685","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"openwiki","version":"0.0.3","keywords":["ai","agents","documentation","wiki","deepagents","langchain","cli"],"license":"MIT","_id":"openwiki@0.0.3","maintainers":[{"name":"basproul","email":"braceasproul@gmail.com"}],"bin":{"openwiki":"dist/cli.js"},"dist":{"shasum":"ef88638680943cfd072ead4bfebf9f23b21e3c32","tarball":"https://registry.npmjs.org/openwiki/-/openwiki-0.0.3.tgz","fileCount":27,"integrity":"sha512-R1Xf0kxdS5xsKpediKH7YT/VEtVqoWR9hVT9ZFblGQQXdzc0ilE5bNRwydULMxD+qh6ujx7G9HaAIqoquHy55Q==","signatures":[{"sig":"MEUCIQCfPiISCytXN6KWffaTnEWwjcUT+9lxgB9wn4DR6ZQ8tAIgDYXGajdT1whQXfSC1D2puXwKFuU1lGZi+N4FpibvccY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194040},"pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild"]},"type":"module","engines":{"node":">=20"},"gitHead":"d5fdd80a8246515f5a564df01402e763e33b1bd0","scripts":{"dev":"tsx src/cli.tsx","lint":"eslint . --fix","test":"vitest run","build":"tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js","format":"prettier --write .","prepack":"pnpm run build","coverage":"vitest run --coverage","openwiki":"node dist/cli.js","prebuild":"pnpm run clean","typecheck":"tsc --noEmit -p tsconfig.json","lint:check":"eslint .","format:check":"prettier --check ."},"_npmUser":{"name":"basproul","email":"braceasproul@gmail.com"},"_npmVersion":"10.5.2","description":"A CLI that uses a DeepAgents documentation agent to generate and maintain an OpenWiki for a codebase.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ink":"^5.1.0","react":"^18.3.1","marked":"^18.0.5","langchain":"^1.5.1","deepagents":"^1.10.6","@langchain/core":"^1.2.1","@langchain/openai":"^1.5.3","@langchain/protocol":"^0.0.18","@langchain/anthropic":"^1.5.1","@langchain/openrouter":"^0.4.3","@langchain/langgraph-checkpoint-sqlite":"^1.0.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2+sha512.a90faf6feeab71ad6c6e57f94e0fe1a12f5dcc22cd754db40ae9593eb6a3e0b6b12e3540218bb37ae083404b1f2ce6db2a4121e979829b4aff94b99f49da1cf8","devDependencies":{"tsx":"^4.19.2","eslint":"^10.5.0","vitest":"^4.1.10","prettier":"^3.8.4","@eslint/js":"^10.0.1","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.17","typescript-eslint":"^8.62.0","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/openwiki_0.0.3_1783532425637_0.8595720277326777","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"openwiki","version":"0.0.4","keywords":["ai","agents","documentation","wiki","deepagents","langchain","cli"],"license":"MIT","_id":"openwiki@0.0.4","maintainers":[{"name":"basproul","email":"braceasproul@gmail.com"}],"bin":{"openwiki":"dist/cli.js"},"dist":{"shasum":"16689ab17374c07b825d52857bf8a7c4af0a8356","tarball":"https://registry.npmjs.org/openwiki/-/openwiki-0.0.4.tgz","fileCount":29,"integrity":"sha512-9qgxHu9XFz7gzpIgp4PdBn/sVA48FLbUhXN9cs0RPngmuVBktBgxgNFk6LkaAbfkOGxDpdSWpkh+gzSaokIjQw==","signatures":[{"sig":"MEQCIDX9JoKPZHcxVvcVk9LATB9v/wMptSR8lhDP0z/8wZyCAiAoRrvhGXxo9E5IIAvZZMcKi3Sj1rCrhHd5I1F40eWkDg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":196641},"pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild"]},"type":"module","engines":{"node":">=20"},"gitHead":"974ef27d5f3071f6f69ea50dd3df545f3b4c296c","scripts":{"dev":"tsx src/cli.tsx","lint":"eslint . --fix","test":"vitest run","build":"tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js","format":"prettier --write .","prepack":"pnpm run build","coverage":"vitest run --coverage","openwiki":"node dist/cli.js","prebuild":"pnpm run clean","typecheck":"tsc --noEmit -p tsconfig.json","lint:check":"eslint .","format:check":"prettier --check ."},"_npmUser":{"name":"basproul","email":"braceasproul@gmail.com"},"_npmVersion":"10.5.2","description":"A CLI that uses a DeepAgents documentation agent to generate and maintain an OpenWiki for a codebase.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ink":"^5.1.0","react":"^18.3.1","marked":"^18.0.5","langchain":"^1.5.3","deepagents":"^1.10.7","@langchain/core":"^1.2.1","@langchain/openai":"^1.5.3","@langchain/protocol":"^0.0.18","@langchain/anthropic":"^1.5.1","@langchain/openrouter":"^0.4.3","@langchain/langgraph-checkpoint-sqlite":"^1.0.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2+sha512.a90faf6feeab71ad6c6e57f94e0fe1a12f5dcc22cd754db40ae9593eb6a3e0b6b12e3540218bb37ae083404b1f2ce6db2a4121e979829b4aff94b99f49da1cf8","devDependencies":{"tsx":"^4.19.2","eslint":"^10.5.0","vitest":"^4.1.10","prettier":"^3.8.4","@eslint/js":"^10.0.1","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.17","typescript-eslint":"^8.62.0","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/openwiki_0.0.4_1783557715323_0.15459757304926347","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"openwiki","version":"0.1.0","keywords":["ai","agents","documentation","wiki","deepagents","langchain","cli"],"license":"MIT","_id":"openwiki@0.1.0","maintainers":[{"name":"basproul","email":"braceasproul@gmail.com"}],"bin":{"openwiki":"dist/cli.js"},"dist":{"shasum":"a83fd054325ce604485011af0ccb93cde104044e","tarball":"https://registry.npmjs.org/openwiki/-/openwiki-0.1.0.tgz","fileCount":79,"integrity":"sha512-8psMqPkH4XAXX/IQLXB4nyCy+or4rvhoBjfqCFOewAL78qArIbQs7FAZZQQcMRpry+oY+cTj6JfVgpxgu8ZWuw==","signatures":[{"sig":"MEQCIDmkS1xJd604jBlqkDFb5/fSmZTerctp6Pht2Snl/T5wAiB7KDih26qz0NW73w8g/MyofTxIyQh2sgvf23Zna5BE3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":530958},"pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild"]},"type":"module","engines":{"node":">=20"},"gitHead":"681b25a9993a3ef516185c68bef03a07c71df098","scripts":{"dev":"tsx src/cli.tsx","lint":"eslint . --fix","test":"vitest run","build":"tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js","format":"prettier --write .","prepack":"pnpm run build","coverage":"vitest run --coverage","openwiki":"node dist/cli.js","prebuild":"pnpm run clean","typecheck":"tsc --noEmit -p tsconfig.json","lint:check":"eslint .","format:check":"prettier --check ."},"_npmUser":{"name":"basproul","email":"braceasproul@gmail.com"},"_npmVersion":"10.5.2","description":"A CLI that uses a DeepAgents documentation agent to generate and maintain an OpenWiki for a codebase.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ink":"^5.1.0","zod":"^4.4.3","react":"^18.3.1","marked":"^18.0.5","cronstrue":"3.24.0","langchain":"^1.5.3","deepagents":"^1.10.7","cron-parser":"5.6.1","@langchain/core":"^1.2.1","@langchain/openai":"^1.5.5","@langchain/tavily":"1.2.0","@langchain/protocol":"^0.0.18","@langchain/anthropic":"^1.5.1","@langchain/openrouter":"^0.4.3","@langchain/langgraph-checkpoint-sqlite":"^1.0.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2+sha512.a90faf6feeab71ad6c6e57f94e0fe1a12f5dcc22cd754db40ae9593eb6a3e0b6b12e3540218bb37ae083404b1f2ce6db2a4121e979829b4aff94b99f49da1cf8","devDependencies":{"tsx":"^4.19.2","eslint":"^10.5.0","vitest":"^4.1.10","prettier":"^3.8.4","@eslint/js":"^10.0.1","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.17","typescript-eslint":"^8.62.0","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/openwiki_0.1.0_1783619508752_0.5858751680824659","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"openwiki","version":"0.1.1","keywords":["ai","agents","documentation","wiki","deepagents","langchain","cli"],"license":"MIT","_id":"openwiki@0.1.1","maintainers":[{"name":"basproul","email":"braceasproul@gmail.com"}],"bin":{"openwiki":"dist/cli.js"},"dist":{"shasum":"456b90a7fbe407d3de9b69fed4e225bd89428f4e","tarball":"https://registry.npmjs.org/openwiki/-/openwiki-0.1.1.tgz","fileCount":83,"integrity":"sha512-D8KHqsu1RXHey+bRiynLq0hlE54wKjQKO2fUyPhhW3esU8PsQAzpldTQ7SLxfXTnwPMW6nDTqKqZKOy0tA0LNQ==","signatures":[{"sig":"MEQCIGUcxWOLqW0k44fwWjvlt/kzBy8Yp4yD8nf8qQTWfOBVAiAer4sqPwI9TCXS0tFmTzQfPWLxsvgWDpU7BUmnPOIUZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":588550},"pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild"]},"type":"module","engines":{"node":">=20"},"gitHead":"ea3e4e81743f5c270bb94d293f2c7e52c1e100df","scripts":{"dev":"tsx src/cli.tsx","lint":"eslint . --fix","test":"vitest run","build":"tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js","format":"prettier --write .","prepack":"pnpm run build","coverage":"vitest run --coverage","openwiki":"node dist/cli.js","prebuild":"pnpm run clean","typecheck":"tsc --noEmit -p tsconfig.json","lint:check":"eslint .","format:check":"prettier --check ."},"_npmUser":{"name":"basproul","email":"braceasproul@gmail.com"},"_npmVersion":"10.5.2","description":"A CLI that uses a DeepAgents documentation agent to generate and maintain an OpenWiki for a codebase.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ink":"^5.1.0","zod":"^4.4.3","react":"^18.3.1","marked":"^18.0.5","cronstrue":"3.24.0","langchain":"^1.5.3","deepagents":"^1.10.7","cron-parser":"5.6.1","@langchain/core":"^1.2.1","@langchain/openai":"^1.5.5","@langchain/tavily":"1.2.0","@langchain/protocol":"^0.0.18","@langchain/anthropic":"^1.5.1","@langchain/openrouter":"^0.4.3","@langchain/langgraph-checkpoint-sqlite":"^1.0.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2+sha512.a90faf6feeab71ad6c6e57f94e0fe1a12f5dcc22cd754db40ae9593eb6a3e0b6b12e3540218bb37ae083404b1f2ce6db2a4121e979829b4aff94b99f49da1cf8","devDependencies":{"tsx":"^4.19.2","eslint":"^10.5.0","vitest":"^4.1.10","prettier":"^3.8.4","@eslint/js":"^10.0.1","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.17","typescript-eslint":"^8.62.0","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/openwiki_0.1.1_1783730509634_0.36291526913035854","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"openwiki","version":"0.1.2","keywords":["ai","agents","documentation","wiki","deepagents","langchain","cli"],"license":"MIT","_id":"openwiki@0.1.2","maintainers":[{"name":"basproul","email":"braceasproul@gmail.com"}],"bin":{"openwiki":"dist/cli.js"},"dist":{"shasum":"32ad522e89da8d069d93992a7d2a3f74443319c5","tarball":"https://registry.npmjs.org/openwiki/-/openwiki-0.1.2.tgz","fileCount":83,"integrity":"sha512-mq4pxTNm3vYBBEFD1nRgSZv0wT10yHc2JeOR1Tk3it2425E3Q4xR+wqYs7koUw3rMtsFgDFuNfwOl7fmsUJi3g==","signatures":[{"sig":"MEUCIQCnFbSvTHOXV3k8w7b+HSQ1e18WpfQ4jz3n53BWktbr5QIgXPd7xgZhoEmCSfLMivkTSPdovnwQIp48q08QQbF990M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":593325},"pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild"]},"type":"module","engines":{"node":">=20"},"gitHead":"61f5d1487695b3072fb5aec9d83ec0ba0fe15fd0","scripts":{"dev":"tsx src/cli.tsx","lint":"eslint . --fix","test":"vitest run","build":"tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js","format":"prettier --write .","prepack":"pnpm run build","coverage":"vitest run --coverage","openwiki":"node dist/cli.js","prebuild":"pnpm run clean","typecheck":"tsc --noEmit -p tsconfig.json","lint:check":"eslint .","format:check":"prettier --check ."},"_npmUser":{"name":"basproul","email":"braceasproul@gmail.com"},"_npmVersion":"10.5.2","description":"A CLI that uses a DeepAgents documentation agent to generate and maintain an OpenWiki for a codebase.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ink":"^5.1.0","zod":"^4.4.3","react":"^18.3.1","marked":"^18.0.5","cronstrue":"3.24.0","langchain":"^1.5.3","deepagents":"^1.10.8","cron-parser":"5.6.1","@langchain/core":"^1.2.1","@langchain/openai":"^1.5.5","@langchain/tavily":"1.2.0","@langchain/protocol":"^0.0.18","@langchain/anthropic":"^1.5.1","@langchain/openrouter":"^0.4.3","@langchain/langgraph-checkpoint-sqlite":"^1.0.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2+sha512.a90faf6feeab71ad6c6e57f94e0fe1a12f5dcc22cd754db40ae9593eb6a3e0b6b12e3540218bb37ae083404b1f2ce6db2a4121e979829b4aff94b99f49da1cf8","devDependencies":{"tsx":"^4.19.2","eslint":"^10.5.0","vitest":"^4.1.10","prettier":"^3.8.4","@eslint/js":"^10.0.1","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.17","typescript-eslint":"^8.62.0","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/openwiki_0.1.2_1783975784086_0.5619723606544214","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"openwiki","version":"0.2.0","keywords":["ai","agents","documentation","wiki","deepagents","langchain","cli"],"license":"MIT","_id":"openwiki@0.2.0","maintainers":[{"name":"basproul","email":"braceasproul@gmail.com"}],"bin":{"openwiki":"dist/cli.js"},"dist":{"shasum":"04108006302933f6ce7474fd9ce903c013068e66","tarball":"https://registry.npmjs.org/openwiki/-/openwiki-0.2.0.tgz","fileCount":109,"integrity":"sha512-hLop7FDz4zwj7z5VCdXhyY0yJxYVOKtVrBZJj1cSkiMN8nbr1ywm9F6gDxP59kWkuaCs39DCU9QpyzxL7grxnw==","signatures":[{"sig":"MEUCIBtfYUm8oAkDWa9Bzlg/K9rOoXifny7qwhH5N/hdJmfmAiEAs2K7QhzXTNdYoYS3CmH8uKroWlp9URT2d4cCXhbhpME=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":706110},"pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild"]},"type":"module","engines":{"node":">=22"},"gitHead":"d4e94ab513ab13908c6b61346b23dc17bbd59b1f","scripts":{"dev":"tsx src/cli.tsx","lint":"eslint . --fix","test":"vitest run","build":"tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js","format":"prettier --write .","prepack":"pnpm run build","coverage":"vitest run --coverage","openwiki":"node dist/cli.js","prebuild":"pnpm run clean","typecheck":"tsc --noEmit -p tsconfig.json","lint:check":"eslint .","format:check":"prettier --check ."},"_npmUser":{"name":"basproul","email":"braceasproul@gmail.com"},"_npmVersion":"10.5.2","description":"A CLI that uses a DeepAgents documentation agent to generate and maintain an OpenWiki for a codebase.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ink":"^5.1.0","zod":"^4.4.3","yaml":"^2.9.0","react":"^18.3.1","marked":"^18.0.5","ci-info":"^4.4.0","cronstrue":"3.24.0","langchain":"^1.5.3","deepagents":"^1.11.0","cron-parser":"5.6.1","posthog-node":"^5.39.4","@langchain/aws":"^1.4.2","@langchain/core":"^1.2.1","@langchain/google":"^0.2.1","@langchain/openai":"^1.5.5","@langchain/tavily":"1.2.0","@langchain/protocol":"^0.0.18","google-auth-library":"^10.9.0","@langchain/anthropic":"^1.5.1","@langchain/openrouter":"^0.4.3","@anthropic-ai/vertex-sdk":"^0.19.0","@aws-sdk/client-bedrock-runtime":"^3.1080.0","@langchain/langgraph-checkpoint-sqlite":"^1.0.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2+sha512.a90faf6feeab71ad6c6e57f94e0fe1a12f5dcc22cd754db40ae9593eb6a3e0b6b12e3540218bb37ae083404b1f2ce6db2a4121e979829b4aff94b99f49da1cf8","devDependencies":{"tsx":"^4.19.2","eslint":"^10.5.0","vitest":"^4.1.10","prettier":"^3.8.4","@eslint/js":"^10.0.1","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.17","typescript-eslint":"^8.62.0","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/openwiki_0.2.0_1784220786702_0.6699837414688088","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"openwiki","version":"0.2.1","keywords":["ai","agents","documentation","wiki","deepagents","langchain","cli"],"license":"MIT","_id":"openwiki@0.2.1","maintainers":[{"name":"basproul","email":"braceasproul@gmail.com"}],"bin":{"openwiki":"dist/cli.js"},"dist":{"shasum":"85c72282ba585928a065199951173f4f5f92d528","tarball":"https://registry.npmjs.org/openwiki/-/openwiki-0.2.1.tgz","fileCount":112,"integrity":"sha512-+4JkV5hx6qOiuk5p2ZPJ4htca6crFKbJN+dXYjwlvLU199mjNzeYHF2WZtsArar+aaZCZcTKtAYjfFu5Af04XQ==","signatures":[{"sig":"MEQCIA0rbgWpvWTrBfbNyxcRuTqNB/QEPbIkm++4WSBwxBU8AiAJILzB+7K03wuSbZNOvLc9RMWltVZwiavdb6u/DTjMQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":759265},"pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild"]},"type":"module","engines":{"node":">=22"},"gitHead":"613aa6d5d37f37c39e40661f5ad939ee6317e673","scripts":{"dev":"tsx src/cli.tsx","lint":"eslint . --fix","test":"vitest run","build":"tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/cli.js","format":"prettier --write .","prepack":"pnpm run build","coverage":"vitest run --coverage","openwiki":"node dist/cli.js","prebuild":"pnpm run clean","typecheck":"tsc --noEmit -p tsconfig.json","lint:check":"eslint .","format:check":"prettier --check ."},"_npmUser":{"name":"basproul","email":"braceasproul@gmail.com"},"_npmVersion":"10.5.2","description":"A CLI that uses a DeepAgents documentation agent to generate and maintain an OpenWiki for a codebase.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ink":"^5.1.0","zod":"^4.4.3","yaml":"^2.9.0","react":"^18.3.1","marked":"^18.0.5","ci-info":"^4.4.0","cronstrue":"3.24.0","langchain":"^1.5.3","deepagents":"^1.11.1","cron-parser":"5.6.1","posthog-node":"^5.39.4","@langchain/aws":"^1.4.2","@langchain/core":"^1.2.1","@langchain/google":"^0.2.1","@langchain/openai":"^1.5.5","@langchain/tavily":"1.2.0","@langchain/protocol":"^0.0.18","google-auth-library":"^10.9.0","@langchain/anthropic":"^1.5.1","@langchain/openrouter":"^0.4.3","@anthropic-ai/vertex-sdk":"^0.19.0","@aws-sdk/client-bedrock-runtime":"^3.1080.0","@langchain/langgraph-checkpoint-sqlite":"^1.0.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2+sha512.a90faf6feeab71ad6c6e57f94e0fe1a12f5dcc22cd754db40ae9593eb6a3e0b6b12e3540218bb37ae083404b1f2ce6db2a4121e979829b4aff94b99f49da1cf8","devDependencies":{"tsx":"^4.19.2","eslint":"^10.5.0","vitest":"^4.1.10","prettier":"^3.8.4","@eslint/js":"^10.0.1","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.17","typescript-eslint":"^8.62.0","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/openwiki_0.2.1_1784578195112_0.600707774995463","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"openwiki","version":"0.2.2","description":"A CLI that uses a DeepAgents documentation agent to generate and maintain an OpenWiki for a codebase.","license":"MIT","type":"module","engines":{"node":">=22"},"bin":{"openwiki":"dist/cli.js"},"keywords":["ai","agents","documentation","wiki","deepagents","langchain","cli"],"scripts":{"openwiki":"node dist/cli.js","build":"tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","coverage":"vitest run --coverage","dev":"tsx src/cli.tsx","format":"prettier --write .","format:check":"prettier --check .","lint":"eslint . --fix","lint:check":"eslint .","prebuild":"pnpm run clean","prepack":"pnpm run build","start":"node dist/cli.js","test":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json"},"dependencies":{"@anthropic-ai/vertex-sdk":"^0.19.0","@aws-sdk/client-bedrock-runtime":"^3.1080.0","@langchain/anthropic":"^1.5.1","@langchain/aws":"^1.4.2","@langchain/core":"^1.2.1","@langchain/google":"^0.2.1","@langchain/langgraph-checkpoint-sqlite":"^1.0.3","@langchain/openai":"^1.5.5","@langchain/openrouter":"^0.4.3","@langchain/protocol":"^0.0.18","@langchain/tavily":"1.2.0","ci-info":"^4.4.0","cron-parser":"5.6.1","cronstrue":"3.24.0","deepagents":"^1.11.1","google-auth-library":"^10.9.0","ink":"^5.1.0","langchain":"^1.5.3","marked":"^18.0.5","posthog-node":"^5.39.4","react":"^18.3.1","yaml":"^2.9.0","zod":"^4.4.3"},"devDependencies":{"@eslint/js":"^10.0.1","@types/node":"^22.10.2","@types/react":"^18.3.17","@vitest/coverage-v8":"^4.1.10","eslint":"^10.5.0","prettier":"^3.8.4","tsx":"^4.19.2","typescript":"^5.7.2","typescript-eslint":"^8.62.0","vitest":"^4.1.10"},"pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild"]},"packageManager":"pnpm@10.33.2+sha512.a90faf6feeab71ad6c6e57f94e0fe1a12f5dcc22cd754db40ae9593eb6a3e0b6b12e3540218bb37ae083404b1f2ce6db2a4121e979829b4aff94b99f49da1cf8","_id":"openwiki@0.2.2","gitHead":"fe72ce1d903ecedabb364adafd2982faaaa23de9","_nodeVersion":"22.16.0","_npmVersion":"10.5.2","dist":{"integrity":"sha512-D0oZPZZMLrmPVlHXw+7U+KXGcYXyQblYvxuOc+Tbd36ic/I50l2irdvdUmDrg4LnPyy8VPEYVcQ+i8qCcs4ctA==","shasum":"3a1b34b6917c2858b56b7ee191292e150e196b28","tarball":"https://registry.npmjs.org/openwiki/-/openwiki-0.2.2.tgz","fileCount":112,"unpackedSize":759393,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCBLwo4q2FLhGuNkWinKmwDUMqNfudxtP2aVAf9dbKQkgIhAP85TMSaz6bS8jY5NIURQPepsV0bmJt/b4LhKfEZU+oS"}]},"_npmUser":{"name":"basproul","email":"braceasproul@gmail.com"},"directories":{},"maintainers":[{"name":"basproul","email":"braceasproul@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/openwiki_0.2.2_1784652540521_0.8414123845264443"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-26T17:19:50.951Z","modified":"2026-07-21T16:49:00.875Z","0.0.0":"2026-06-26T17:19:51.172Z","0.0.1":"2026-07-01T17:33:56.339Z","0.0.2":"2026-07-07T18:01:14.749Z","0.0.3":"2026-07-08T17:40:25.805Z","0.0.4":"2026-07-09T00:41:55.477Z","0.1.0":"2026-07-09T17:51:48.884Z","0.1.1":"2026-07-11T00:41:49.766Z","0.1.2":"2026-07-13T20:49:44.245Z","0.2.0":"2026-07-16T16:53:06.867Z","0.2.1":"2026-07-20T20:09:55.392Z","0.2.2":"2026-07-21T16:49:00.727Z"},"license":"MIT","keywords":["ai","agents","documentation","wiki","deepagents","langchain","cli"],"description":"A CLI that uses a DeepAgents documentation agent to generate and maintain an OpenWiki for a codebase.","maintainers":[{"name":"basproul","email":"braceasproul@gmail.com"}],"readme":"# OpenWiki\n\nOpenWiki is a CLI that writes and maintains agent wikis for codebases or purpose memory. It's built specifically for agents, can ingest local knowledge sources through built-in connectors or git repositories and synthesize them into a local wiki.\n\n<div align=\"center\">\n  <a href=\"https://trendshift.io/repositories/70339?utm_source=trendshift-badge&amp;utm_medium=badge&amp;utm_campaign=badge-trendshift-70339\" target=\"_blank\" rel=\"noopener noreferrer\"><img src=\"https://trendshift.io/api/badge/trendshift/repositories/70339/daily\" alt=\"langchain-ai%2Fopenwiki | Trendshift\" width=\"250\" height=\"55\"/></a>\n</div>\n\n![OpenWiki](https://raw.githubusercontent.com/langchain-ai/openwiki/main/static/openwiki.png)\n\n## Install\n\n```sh\nnpm install -g openwiki\n```\n\nOn Windows, prefer installing OpenWiki with Node.js package managers such as\n`npm` or `pnpm`:\n\n```sh\nnpm install -g openwiki\n# or\npnpm add -g openwiki\n```\n\n`bun install -g openwiki` can fall back to compiling OpenWiki's `better-sqlite3`\ncheckpointing dependency. Before using that path, install Visual Studio Build\nTools with the Desktop development with C++ workload. Bun does not run lifecycle\nscripts from installed packages by default, so it cannot display a package-level\nwarning before that native dependency build starts.\n\n## Quick Start\n\nInitialize OpenWiki in code mode, configure your model and API key, then generate documentation:\n\n```sh\nopenwiki --init\n```\n\nOpenWiki has two modes:\n\n- **Personal mode** builds a local personal brain wiki in `~/.openwiki/wiki` from\n  configured sources like local repositories, Gmail, Notion, Web Search, Hacker\n  News, and X/Twitter.\n- **Code mode** builds repository documentation in `openwiki/` for the current\n  codebase.\n\nBare `openwiki --init` and `openwiki --update` run in code mode. Use\n`openwiki personal --init` or `openwiki personal --update` for the local\npersonal brain wiki.\n\nThen to ensure your documentation stays up-to-date, add the CI workflow for your Git provider to automatically open a PR or merge request with documentation updates:\n\n- GitHub Actions: copy [openwiki-update.yml](./examples/openwiki-update.yml) into `.github/workflows/openwiki-update.yml`.\n- GitLab CI: copy [openwiki-update.gitlab-ci.yml](./examples/openwiki-update.gitlab-ci.yml) into `.gitlab-ci.yml` or include it from your existing GitLab pipeline.\n- Bitbucket Pipelines: copy [openwiki-update.bitbucket-pipelines.yml](./examples/openwiki-update.bitbucket-pipelines.yml) into `bitbucket-pipelines.yml`, then schedule the `openwiki-update` custom pipeline from Repository settings > Pipelines > Schedules.\n\nFor repository documentation in GitHub Actions, use\n`openwiki code --update --print`. You do not need to run `--init` in CI:\n`--update` will create the initial `openwiki/` docs if they do not exist yet, as\nlong as the workflow provides the required provider and model environment\nvariables.\n\nScheduled/CI runs send anonymous reliability telemetry. See [Telemetry](#telemetry)\nfor what is collected and how to turn it off (uncomment `OPENWIKI_TELEMETRY_DISABLED`\nin the example workflow).\n\n## Open Knowledge Format compatibility\n\nOpenWiki emits [Google Open Knowledge Format (OKF) v0.1](https://github.com/GoogleCloudPlatform/knowledge-catalog/blob/main/okf/SPEC.md) bundles in both code and personal modes.\n\n- Every non-reserved Markdown concept has YAML front matter with a non-empty\n  `type`; all other standard fields are optional.\n- Valid `timestamp` values and producer-defined extension fields are accepted\n  and preserved during updates and migrations.\n- `index.md` and `log.md` are reserved documents rather than concepts. Nested\n  indexes contain no front matter, while the root index declares\n  `okf_version: \"0.1\"`.\n- Standard Markdown links between concept documents express relationships.\n\n## Usage\n\nStart the interactive CLI in code mode for the current repository:\n\n```sh\nopenwiki\n```\n\nStart OpenWiki with an initial request:\n\n```sh\nopenwiki \"Please generate documentation for this repository\"\n```\n\nStart the interactive local personal brain instead:\n\n```sh\nopenwiki personal\n```\n\nRun a single command and exit:\n\n```sh\nopenwiki -p \"Summarize what you can do\"\n```\n\nInitialize OpenWiki:\n\n```sh\nopenwiki --init\n```\n\nInitialize the local personal brain wiki:\n\n```sh\nopenwiki personal --init\n```\n\nUpdate repository code documentation:\n\n```sh\nopenwiki --update\n```\n\nUpdate the local personal brain wiki:\n\n```sh\nopenwiki personal --update\n```\n\nRun an update that can ingest configured local connectors first:\n\n```sh\nopenwiki personal --update \"Refresh the wiki from configured connectors\"\n```\n\nShow help:\n\n```sh\nopenwiki --help\n```\n\nIn chat, use `/api-key` to update the current provider API key and\n`/langsmith-key` to update or clear LangSmith tracing credentials. Both commands\nuse masked prompts.\n\nAuthenticate a connector provider:\n\n```sh\nopenwiki auth slack\nopenwiki auth gmail\nopenwiki auth x\nopenwiki auth notion\n```\n\nStart an ngrok tunnel for Slack OAuth:\n\n```sh\nopenwiki ngrok start\n```\n\nThis starts ngrok with a random HTTPS forwarding URL. OpenWiki reads ngrok's\nlocal inspection API, appends `/callback`, and saves\n`OPENWIKI_HTTPS_OAUTH_REDIRECT_URI` automatically. Register the printed callback\nURL in Slack. If you have a fixed ngrok domain, run\n`openwiki ngrok start https://<your-ngrok-domain>`. X/Twitter and Gmail auth\nignore that HTTPS override and keep using the local loopback callback,\n`http://127.0.0.1:53682/callback`.\n\nBare `openwiki` runs in code mode for the current repository. It creates initial repository documentation in `openwiki/` when no wiki exists. Use `openwiki personal` for the local general-purpose wiki in `~/.openwiki/wiki/`. By default, the CLI stays open after each run so you can send follow-up messages. Use `-p` or `--print` for a one-shot non-interactive run that prints the final assistant output.\n\nBare `openwiki --init` and `openwiki --update` default to code mode and operate on repository documentation. Use the `personal` positional mode or `--mode personal` to initialize or update the local personal brain wiki.\n\nOn each `code` run, `openwiki` maintains both an `AGENTS.md` and a `CLAUDE.md` at the repository root, adding prompting that instructs your coding agent to reference the wiki when searching for context. Each file is created if it does not already exist. If a file is present, OpenWiki only rewrites its own `<!-- OPENWIKI:START -->…<!-- OPENWIKI:END -->` block and leaves the rest of your content untouched (appending the block the first time). The scheduled GitHub Actions workflow includes these files, along with the workflow itself, in the documentation pull request.\n\nRepository-specific wiki instructions are stored separately in\n`openwiki/INSTRUCTIONS.md`. This file is a shared, user-authored brief for the\nrepository wiki: OpenWiki reads it for scope and priorities, but it is not\ngenerated documentation and is not rewritten during normal init, update, or chat\nruns unless you explicitly ask to change the brief.\n\nOn the first interactive run, OpenWiki will have you configure your inference provider, API key, and LLM. You will also be able to set a LangSmith API key to trace your OpenWiki runs to a LangSmith tracing project named \"openwiki\" (optional).\n\nThese configuration options and secrets will be saved to `~/.openwiki/.env` on your local machine.\n\n## Local Connectors\n\nOpenWiki's first-run onboarding offers connector setup for local Git repositories, Notion, Gmail, X/Twitter, Web Search, and Hacker News. During an ingestion run, deterministic connector tools write raw data and manifests under `~/.openwiki/connectors/<connector>/raw/`, then source-specific agent runs synthesize the local wiki under `~/.openwiki/wiki/` from those local files.\n\nYou can configure the same connector more than once. For example, add one Web\nSearch source for AI research and another for NBA news; OpenWiki stores them as\nseparate source instances such as `web-search-1` and `web-search-2`. Run all\ninstances with `openwiki ingest all`, all instances for one connector with\n`openwiki ingest web-search`, or one instance with\n`openwiki ingest web-search-2`.\n\n- `git-repo` reads configured local repository paths and writes compact manifests.\n- `x` uses the X API directly with OAuth user-context credentials for home timeline, user posts, mentions, bookmarks, and list posts.\n- `notion` targets the hosted Notion MCP server, so users should authenticate through Notion OAuth instead of pasting a Notion token into OpenWiki.\n- `google` uses the Gmail API directly with OAuth user credentials to fetch recent mail, with room to add Drive, Calendar, and other Google providers later.\n- `web-search` uses Tavily through LangChain and requires `TAVILY_API_KEY`.\n- `hackernews` uses public Hacker News feed and search APIs, with no credentials required.\n\nConnector secrets are referenced by env var name and stored in `~/.openwiki/.env`; connector config files should never contain raw secret values.\n\n`openwiki auth <provider>` runs a local browser OAuth flow, saves returned tokens into `~/.openwiki/.env`, creates connector config when possible, and discovers MCP tools for MCP-backed providers. Slack and Gmail require app client credentials to already be set in that file; Notion uses dynamic client registration for hosted MCP; X uses OAuth 2.0 with PKCE. After `openwiki auth gmail`, the Google connector can ingest Gmail directly with no MCP transport setup.\n\n`openwiki auth configure <provider>` and `openwiki auth tools <provider>` are advanced/retry commands for regenerating connector config or inspecting live MCP tools.\n\nFirst-run onboarding also lets users choose a wiki template, customize its scope,\nand save per-source ingestion notes and source schedules in\n`~/.openwiki/onboarding.json`. The global personal wiki instructions are saved\nin `~/.openwiki/INSTRUCTIONS.md`. On macOS, source schedules are installed as\nuser LaunchAgents under `~/Library/LaunchAgents/` and write logs under\n`~/.openwiki/logs/`.\n\nSee the OpenWiki operations docs for credential storage and provider setup\nnotes.\n\n## Customizing\n\nOpenWiki supports OpenAI (with an API key or a ChatGPT login), OpenRouter, Gemini (AI Studio), Gemini Enterprise (Vertex AI), Nebius Token Factory, Fireworks, Baseten, NVIDIA NIM, an OpenAI-compatible provider, AWS Bedrock, and Anthropic out of the box. The onboarding default is OpenAI with `gpt-5.6-terra`, and each inference provider also includes pre-defined model options plus support for custom model IDs.\n\n### Alternative base URLs\n\nTo route the Anthropic provider at an alternative, Anthropic-compatible endpoint\n(for example a self-hosted or proxied gateway) instead of the default API, set\n`ANTHROPIC_BASE_URL` alongside `ANTHROPIC_API_KEY`:\n\n```bash\nOPENWIKI_PROVIDER=anthropic\nANTHROPIC_API_KEY=your-key\nANTHROPIC_BASE_URL=https://your-gateway.example.com/anthropic\n```\n\nThe `openai` provider likewise supports an alternative, OpenAI-compatible\nendpoint (for example a self-hosted or proxied gateway) via `OPENAI_BASE_URL`,\nset alongside `OPENAI_API_KEY`. This is useful for OpenAI-compatible gateways\nthat expose the Responses API, since the `openai` provider routes tool calls\nthrough the Responses API (`/v1/responses`) rather than chat completions:\n\n```bash\nOPENWIKI_PROVIDER=openai\nOPENAI_API_KEY=your-key\nOPENAI_BASE_URL=https://your-gateway.example.com/v1\nOPENWIKI_MODEL_ID=your-model-name\n```\n\n### OpenAI-compatible endpoints\n\nThe `openai-compatible` provider targets any OpenAI-compatible chat-completions\nendpoint via a required base URL. This can be used for OpenAI-compatible LLM\nendpoints like those exposed by a LiteLLM gateway when it is used as a gateway —\nletting you reach whatever upstream providers the gateway fronts through a single\nOpenAI-shaped API. Set the model ID to whatever name the gateway exposes:\n\n```bash\nOPENWIKI_PROVIDER=openai-compatible\nOPENAI_COMPATIBLE_API_KEY=your-gateway-key\nOPENAI_COMPATIBLE_BASE_URL=https://your-gateway.example.com/v1\nOPENWIKI_MODEL_ID=your-gateway-model-name\n```\n\nLocal LLM servers that expose OpenAI-compatible chat completions use the same\nprovider. The model ID must match a model available from that local server:\n\n```bash\n# Ollama, after `ollama serve` and `ollama pull llama3.2`\nOPENWIKI_PROVIDER=openai-compatible\nOPENAI_COMPATIBLE_API_KEY=ollama\nOPENAI_COMPATIBLE_BASE_URL=http://localhost:11434/v1\nOPENWIKI_MODEL_ID=llama3.2\nopenwiki --init\n```\n\n```bash\n# LM Studio, after starting the local server from the Developer tab\nOPENWIKI_PROVIDER=openai-compatible\nOPENAI_COMPATIBLE_API_KEY=lm-studio\nOPENAI_COMPATIBLE_BASE_URL=http://localhost:1234/v1\nOPENWIKI_MODEL_ID=your-loaded-model-id\nopenwiki --init\n```\n\nFor local gateways such as 9Router, use the OpenAI-compatible endpoint URL,\nAPI key, and model ID shown by the gateway:\n\n```bash\nOPENWIKI_PROVIDER=openai-compatible\nOPENAI_COMPATIBLE_API_KEY=your-local-gateway-key\nOPENAI_COMPATIBLE_BASE_URL=http://localhost:20128/v1\nOPENWIKI_MODEL_ID=your-routed-model-id\nopenwiki --init\n```\n\nSome local servers ignore the API key value, but OpenWiki still requires\n`OPENAI_COMPATIBLE_API_KEY` because the OpenAI-compatible client expects one.\n\n### AWS Bedrock\n\nThe `bedrock` provider calls foundation models hosted on AWS Bedrock using IAM\ncredentials rather than a single vendor API key. It authenticates with an AWS\naccess key ID, a secret access key, and a region:\n\n```bash\nOPENWIKI_PROVIDER=bedrock\nBEDROCK_AWS_ACCESS_KEY_ID=your-access-key-id\nBEDROCK_AWS_SECRET_ACCESS_KEY=your-secret-access-key\nBEDROCK_AWS_REGION=us-east-1\nOPENWIKI_MODEL_ID=anthropic.claude-sonnet-5\n```\n\nWhich model IDs are available depends on your AWS account and region (which\nfoundation models you've enabled in the Bedrock console), so there is no\npreset model list — paste the Bedrock model ID directly, as shown above.\n\nSome newer models only accept on-demand invocation through a cross-region\ninference profile rather than their bare model ID — if you see `ValidationException:\nInvocation of model ID ... with on-demand throughput isn't supported`, prefix\nthe model ID with the profile's region code instead, for example\n`us.anthropic.claude-sonnet-5`. Your IAM policy also needs to allow\n`bedrock:InvokeModel`/`InvokeModelWithResponseStream` on both the\n`foundation-model` and `inference-profile` resource types in that case.\n\n### OpenAI (ChatGPT login)\n\nThe `openai-chatgpt` provider calls OpenAI's Codex backend using your ChatGPT\nsubscription instead of a metered API key. Model usage draws on your ChatGPT\nPlus/Pro/Team plan's included Codex usage rather than per-token API billing. It\nserves the same model list as the `openai` provider.\n\nInstead of pasting an API key, run the setup wizard and complete a browser\nlogin:\n\n```bash\nOPENWIKI_PROVIDER=openai-chatgpt openwiki code --init\n# or\nOPENWIKI_PROVIDER=openai-chatgpt openwiki personal --init\n```\n\nThe wizard opens `https://auth.openai.com` in your browser (and also prints the\nURL for headless/SSH use, where you can open it on another machine — or paste the\nredirect URL back into the terminal to finish without a callback). After you sign\nin with your ChatGPT account, OpenWiki captures the OAuth callback, shows the\nsigned-in email and plan, and then continues to model and LangSmith selection\njust like the other providers. It stores the resulting access token, refresh\ntoken, expiry, account id, email, and plan in `~/.openwiki/.env`\n(`OPENAI_CHATGPT_ACCESS_TOKEN`, `OPENAI_CHATGPT_REFRESH_TOKEN`,\n`OPENAI_CHATGPT_EXPIRES_AT`, `OPENAI_CHATGPT_ACCOUNT_ID`, `OPENAI_CHATGPT_EMAIL`,\n`OPENAI_CHATGPT_PLAN`). These are managed for you — the access token is refreshed\nautomatically when it expires, so you normally never edit them by hand. Treat the\nrefresh token like a password.\n\n### Gemini (AI Studio)\n\nThe `gemini` provider runs Google's Gemini models through the AI Studio API with\na single API key:\n\n```bash\nOPENWIKI_PROVIDER=gemini\nGEMINI_API_KEY=your-ai-studio-key\n```\n\n### Gemini Enterprise (Vertex AI)\n\nThe `gemini-enterprise` provider runs models from the Gemini Enterprise Model\nGarden (formerly Vertex AI) — Google's own Gemini/Gemma models, Anthropic's\nClaude, and partner/open-weight models (Llama, Mistral, DeepSeek, Qwen, …). It\nroutes each model ID to the right API surface automatically, so one credential\nreaches all of them. It uses no API key — authentication happens with Google\nApplication Default Credentials (ADC), so any of the standard mechanisms work:\n\n- a service account key file via `GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json`,\n- user credentials from `gcloud auth application-default login`, or\n- workload identity when running on Google Cloud (GKE, Cloud Run, GCE) or in CI.\n\n```bash\nOPENWIKI_PROVIDER=gemini-enterprise\nGOOGLE_CLOUD_PROJECT=your-gcp-project\nGOOGLE_CLOUD_LOCATION=global   # optional, defaults to global\n```\n\nSet `OPENWIKI_MODEL_ID` to any Model Garden model. Gemini and Claude ship as\npreset options; partner/open-weight models are reached by pasting their model ID\n(for example `publishers/meta/models/llama-3.3-70b-instruct-maas`).\n\nThe credentials used need Vertex AI access (`roles/aiplatform.user`) in the\nproject, and the models you want must be enabled in the Model Garden. The\n`global` endpoint serves Gemini and Claude and offers the best availability;\nregional endpoints (for example `europe-west1` or `us-east5`) can be set via\n`GOOGLE_CLOUD_LOCATION` for data-residency requirements. Partner/open-weight\n(MaaS) models are region-specific, so set `GOOGLE_CLOUD_LOCATION` explicitly when\nusing them.\n\nNote that `GOOGLE_CLOUD_PROJECT` (and `GOOGLE_APPLICATION_CREDENTIALS`, if you\nchoose to store it there) is persisted to `~/.openwiki/.env` and loaded into the\nOpenWiki process environment at startup when not already set — values already\npresent in your shell always win.\n\nFor CI, authenticate before the update job runs — for example with\n[`google-github-actions/auth`](https://github.com/google-github-actions/auth)\n(workload identity federation) in GitHub Actions — and set\n`OPENWIKI_PROVIDER=gemini-enterprise` and `GOOGLE_CLOUD_PROJECT` in the job\nenvironment.\n\nBase URLs (and all credentials) can be set in your environment or stored in `~/.openwiki/.env`.\n\n### OpenRouter provider pinning\n\nWhen OpenRouter serves a model through multiple upstream providers, set\n`OPENWIKI_OPENROUTER_PROVIDER_ONLY` to restrict routing to one provider or a\ncomma-separated provider allowlist:\n\n```bash\nOPENWIKI_PROVIDER=openrouter\nOPENROUTER_API_KEY=your-key\nOPENWIKI_OPENROUTER_PROVIDER_ONLY=Novita\n```\n\n### Provider retry attempts\n\nOpenWiki uses LangChain's built-in retry handling for transient provider errors.\nTo override the number of retries after the first provider request, set `OPENWIKI_PROVIDER_RETRY_ATTEMPTS`:\n\n```bash\nOPENWIKI_PROVIDER_RETRY_ATTEMPTS=3\n```\n\nThe value must be a positive integer. If the value is unset, OpenWiki defaults to 3 retries.\n\nIf there's an inference provider or model you'd like to see added, please open a PR!\n\n## Telemetry\n\nOpenWiki collects anonymous, aggregate usage data so we can understand how the\ntool is used and improve it. Telemetry is on by default and easy to turn off.\n\n**What is collected**, on a single `openwiki_run` event, keyed by a random\ninstall ID stored locally in `~/.openwiki/install-id`:\n\n- Every run: the command (init / update) and the outcome (success / failure /\n  no-op), plus a coarse error category on failure (never the error message).\n  Interactive chat, `auth`, and `ingest` are not recorded.\n- At setup (on init only): which brain mode (code / personal), the model\n  provider, and which connectors you configured (connector names only, never\n  their contents).\n\n**What is never collected:** file contents, repository data or names,\ncredentials, prompts, model output, connector payloads, error messages, file\npaths, URLs, model IDs, run duration, your IP address, or any personal\ninformation. Geoip enrichment is disabled and your IP is never stored. Events\nare grouped by your random install ID so we can measure repeat usage, but that\nID contains no personal data.\n\n**Scheduled/CI runs** are collected as anonymous reliability data (tagged so\nthey can be told apart from human runs), under a shared CI identifier rather than\na per-machine install ID, and never counted as distinct installs. To disable in\nCI, set `OPENWIKI_TELEMETRY_DISABLED=1` in your workflow environment.\n\nTo see exactly what a run would send, add `--telemetry-file=<path>` to any run.\n\n### Opting out\n\nSet either environment variable:\n\n```sh\nexport OPENWIKI_TELEMETRY_DISABLED=1\n# or the cross-tool standard:\nexport DO_NOT_TRACK=1\n```\n\nTo disable permanently, add `OPENWIKI_TELEMETRY_DISABLED=1` to `~/.openwiki/.env`.\nIn CI, set it in the workflow environment (config files do not persist on\nephemeral runners).\n\n### Seeing exactly what is sent\n\nAdd `--telemetry-file=<path>` to any run to also write the exact payload to a\nlocal JSON file.\n\n## Contributing\n\nContributions are welcome! Please read [CONTRIBUTING.md](./CONTRIBUTING.md) before opening a PR. We intentionally keep PRs tightly scoped to one change each, and PRs that bundle unrelated changes may be closed with a request to split them.\n","readmeFilename":"README.md"}