{"_id":"@octen.ai/cli","_rev":"27-29a18f163352a59ff72b580fbec80fe8","name":"@octen.ai/cli","dist-tags":{"latest":"0.10.0"},"versions":{"0.1.0":{"name":"@octen.ai/cli","version":"0.1.0","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.1.0","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"231537bf94d1e0c7b786346f78e6fe130dd32b23","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.1.0.tgz","fileCount":75,"integrity":"sha512-S0ttdes2E+JAUzfW2YK7W+khiUlM65SXLV99KQQepQDUkQLGvMFfthws7px4XStebUd59nFKV3WmzdP/FC93jA==","signatures":[{"sig":"MEYCIQCKP7rIp6sD6+4Xf+jMptt9mcOv4wIFYEXUUl68vgmH3AIhAPUMdHLfBBH69erzCCW8hc2iR399NoJAt99BEMZPofeV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127352},"type":"module","engines":{"node":">=18"},"gitHead":"110b07fd6a61690770600c8a224ba482472dc415","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"dorianzhang","email":"dorianzhang@octen.ai"},"_npmVersion":"10.8.2","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.0_1782447157777_0.9285734907999439","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@octen.ai/cli","version":"0.1.1","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.1.1","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"d1f9256581c249396bf7ffd688a27f1b4b7752a1","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.1.1.tgz","fileCount":75,"integrity":"sha512-JbzFt+sDduRlaUT4BLo9ygitGkbQRUEQ2YlTTx3SHAthxCI3cKVEvE0L5q3NVB+bLrQIRnJt2aFLVveRJ22mBQ==","signatures":[{"sig":"MEQCIElsPXL3YJcgOwPuVeC56QAKQ9zOwQXwfCaXVOB1uIP9AiBYF6aFsg0f9yXN+dswCTt2sRDlWFqiOAbam5ZCgTzIvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130076},"type":"module","engines":{"node":">=18"},"gitHead":"f50ff6df9960bbb56d8e692ce9da1ee0bfe56086","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"dorianzhang","email":"dorianzhang@octen.ai"},"_npmVersion":"10.8.2","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.1_1782448015086_0.30000104364764546","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@octen.ai/cli","version":"0.1.2","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.1.2","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"722538e84b2958ae6df7004510ec0bbac357971d","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.1.2.tgz","fileCount":75,"integrity":"sha512-2LO1GgB892W+MC6+wlDA7KftvvXe3vQKxXO63ZeUXVws+8zJpEyogAbHzjuVdgd7goqfIq/Cj3GAJFeq8eNA/Q==","signatures":[{"sig":"MEUCIAaG93LSuTY+C4wZFtG38xeuwpjWwW+ESF7u64T1OI/oAiEAx+GhJTv9SSGc+M1xkTsj7pROoA7ufG2ifIXyWDAz62g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130215},"type":"module","engines":{"node":">=18"},"gitHead":"26fe14577b4d1c00993f0fe4d410ffc754353097","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"dorianzhang","email":"dorianzhang@octen.ai"},"_npmVersion":"10.8.2","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.2_1782448575748_0.8425139114183449","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@octen.ai/cli","version":"0.1.3","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.1.3","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"a6bbbd93f3660cfe00ae3c38459a1a9f945bbf5f","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.1.3.tgz","fileCount":77,"integrity":"sha512-rzOxuYOPuzPEnbnvuAppicN0gGsQw4OST0cgCVZd+bZCV4W8ln0cAqVJUAzMnZFzKBYh/pkfaI1X3z2M3tjLSw==","signatures":[{"sig":"MEYCIQDsLFiskJcJuTIWfrKpjgbXxUdBm+F12wbb+s14ZDYzdgIhAKsQ3jeYfuukPzKQaoxCdFd4XRQIbO3wKwDHHw0IEPkT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135317},"type":"module","engines":{"node":">=18"},"gitHead":"b436d412d5fb558e30081e5a9df27e729cc491a5","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"dorianzhang","email":"dorianzhang@octen.ai"},"_npmVersion":"10.8.2","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.3_1782449177648_0.8613578097497216","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@octen.ai/cli","version":"0.1.4","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.1.4","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"6995820e1b2cf019d85d0a5b2445c38a6918cef6","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.1.4.tgz","fileCount":77,"integrity":"sha512-CpPE59TrWhchMSv//LK94lrUU2HmysucQGuBiI8F8Ak2DfYa1Il59MWzt+PaG4C3Qv8cdOPtaJ4SKvhqmg1wEA==","signatures":[{"sig":"MEYCIQD77PRi1NM4EhIAoj/CFoOvCa1rhhbvQ36cla3KPniplwIhAJm8zJhiHVU5jO8YmZb67QldGVrrX0p+1LoHhaxnRhpw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135317},"type":"module","engines":{"node":">=18"},"gitHead":"4358d43133e1d63f9df488fccec076d33b7c8b2f","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"_npmVersion":"11.17.0","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.4_1782455194917_0.4296155626580678","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@octen.ai/cli","version":"0.1.5","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.1.5","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"e6e3bdaf8bdbd0e19084f9032b1f2c1d73b35805","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.1.5.tgz","fileCount":77,"integrity":"sha512-RSu17EFYA9XUpqaqV2ieC548o9vA+ld0QVCydfJlMoIIqiS3HLwNBOXzeOcQF8iCzrEGe/g1unJl6SQOku6P8Q==","signatures":[{"sig":"MEYCIQDyHtQS7idxUe9dXSuonKFwqI9e4GUHhhrn4CMoc30NhAIhAOCep0xYB9zzT7LuKYaA5j/GCfnBlAxzh7wtcTOnDVjN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136768},"type":"module","engines":{"node":">=18"},"gitHead":"bec824e009b531f1679cb628c53cc07233e6e3e8","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:e2e":"vitest run --config vitest.e2e.config.ts","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"_npmVersion":"11.17.0","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.5_1782457682258_0.9602031256962551","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@octen.ai/cli","version":"0.1.6","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.1.6","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"94163e92437b9a7f7c10b30864c404c5a518d99a","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.1.6.tgz","fileCount":77,"integrity":"sha512-V/hMa4U5CL6q1w24W9JlIFyPahAMiityZSt03wWr7HkOQDxxH6kzOQD4bpBefc9EuoShD4aWQNPNWSoOrU6BBg==","signatures":[{"sig":"MEYCIQDEj8GDFz43UO14+CeupWuk/5jbtT2muucAZqIZn9sv3wIhAL2gkljDef7eihW0vzrHOOqFi+/PCeu3LvM551zBFs7R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136966},"type":"module","engines":{"node":">=18"},"gitHead":"c0d1e4a1fa0b103fbc2e5d7168a8f15be4127e38","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:e2e":"vitest run --config vitest.e2e.config.ts","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"_npmVersion":"11.17.0","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.6_1782458672484_0.14790523667427302","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@octen.ai/cli","version":"0.1.7","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.1.7","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"4e6b52ff45f659fb028ee223de2227ad918b3853","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.1.7.tgz","fileCount":79,"integrity":"sha512-I6aDozD7ArIwpGnQZmCcnGJNTB2iR9uyMNGZP1BnJrBdiFbRIjhZP4D5qYiuD/8Eo4IcvN89T3zFNr/+dz/qwg==","signatures":[{"sig":"MEQCICVLUW8FnguvFvf5tKhvtsGCrV4fqDQtKTsMgo9Wjs5kAiBUM9xKAMqsKEhWqGI/PfgS0Z2ENoAXcMWs9pInQ+ng5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143808},"type":"module","engines":{"node":">=18"},"gitHead":"7697c9ef10a8b2e66aa8d09c423f3c8a969eac28","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:e2e":"vitest run --config vitest.e2e.config.ts","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"_npmVersion":"11.17.0","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.7_1782460477604_0.9310331275117141","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@octen.ai/cli","version":"0.1.8","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.1.8","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"07954d60be1891447a26ed62345a4fbd3882696c","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.1.8.tgz","fileCount":81,"integrity":"sha512-Df81zTjSvubhz/kgtcrDYyaBdgj/jJLWwK5O1i63ogTgD+yltJa+dCCUocQRnKpwH0c4XqLiBErwIKOPM7v73A==","signatures":[{"sig":"MEUCIQDCPtt4I67AT6Zq0faxSCe/dKBo3fj9lhcxLdZWABYd0QIgSbAhpamVlrAIoxWtPK9pYhfBXnOTIU2Jb+UNUgwwtyY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149935},"type":"module","engines":{"node":">=18"},"gitHead":"ea3ad3bd72bb765bddd3379a5e6471af6f42d389","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:e2e":"vitest run --config vitest.e2e.config.ts","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"_npmVersion":"11.17.0","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.8_1782465660298_0.34346585420130293","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@octen.ai/cli","version":"0.1.9","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.1.9","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"6f6b5d634cb974189be1a56ed9143a137d096dce","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.1.9.tgz","fileCount":81,"integrity":"sha512-GuYwMLqLVMySRUC4Xtfzwlrej9g7rjZz7gZwUNgXvixeOMys98rRjaiZLWkBOu6yW2u4qFuaW055FVm+xc0kcQ==","signatures":[{"sig":"MEUCIQDZ7Z2ZGfwNJ4oyy7eOL6rC66wHnxNZIPWc3rTIKityiQIgb7n/yy1yhkSrzmNxR0HwP3/u3Wjhwljl3tdnVfc6/5A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150983},"type":"module","engines":{"node":">=18"},"gitHead":"ea4d6ac78c16ad485c720516e4dd28a9feea336c","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:e2e":"vitest run --config vitest.e2e.config.ts","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"_npmVersion":"11.17.0","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.9_1782466644379_0.73148524321117","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@octen.ai/cli","version":"0.1.10","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.1.10","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"da7261eebb9710712047a00418dced887059bc27","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.1.10.tgz","fileCount":83,"integrity":"sha512-WqdxiBf4FsaXpHIECMAAftloPsI4vqDy7h+q4RK0TmkdiSuvEdk84Jb8HFteQCMMAA0P+v3J1YE7nPjcU7HPMw==","signatures":[{"sig":"MEUCICN/BruQ5GPhp37efFvHFkzR2VK17+eaoLfpMlyfQQWtAiEAmwrwPoc+20ZwwvITtO9KKrXKJhzlAkDYh+GblnSDzoc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152637},"type":"module","engines":{"node":">=18"},"gitHead":"b2d7d1cb77677809ef613be918cefee3688c09d6","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:e2e":"vitest run --config vitest.e2e.config.ts","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"_npmVersion":"11.17.0","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.10_1782468265999_0.008635981615964239","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@octen.ai/cli","version":"0.1.11","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.1.11","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"2433c3f703694ad5e2a86bedaf32f31240137d08","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.1.11.tgz","fileCount":83,"integrity":"sha512-jpfSm57R2u5AYM5UzXY+pdgUk3UBoWMeaAU7iv1nplPlBtXAVuRoSrvVyB71OiG4Ae8C7DInnJ7MVoCFfWxwAQ==","signatures":[{"sig":"MEUCIQDvVF8CY6pA0t0HefdZM4CYrI1FIyE0BnWLzzJpuxuTTgIgGXo/Q1pILGh3nLgHSO+foEo0GtSThFMceTxtf7nN10E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":155602},"type":"module","engines":{"node":">=18"},"gitHead":"1d7c0094ffe952e20b205695ce29304fd402cbc3","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:e2e":"vitest run --config vitest.e2e.config.ts","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"_npmVersion":"11.17.0","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.11_1782468536549_0.02534664365586914","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@octen.ai/cli","version":"0.1.12","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.1.12","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"6586a632879fc6f041cdf01eb3f803efb7424d20","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.1.12.tgz","fileCount":83,"integrity":"sha512-NeXJOsCAKopzUcT4HJTCmF9yMSFuO/EpwAtSrKJgyl7c4cfxUXJMnInJ9t3s1009vqEHLs+1gawuTsGYXNBHEQ==","signatures":[{"sig":"MEQCIHokYxsB0JLezWNwLUr3RIRYWMelYvqCmlAAGLmDGYZWAiBM7Jb5XgWHMQz+ZDAnnu2qvDOX3DEs3/MmLbouqDRTvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":156092},"type":"module","engines":{"node":">=18"},"gitHead":"805b5950f392cd8aed7ee91d68970a5654313c74","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:e2e":"vitest run --config vitest.e2e.config.ts","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"_npmVersion":"11.17.0","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.12_1782469044134_0.5057890670381273","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@octen.ai/cli","version":"0.1.13","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.1.13","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"86869d2e42b88eb6481475863a4b08393aef6eeb","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.1.13.tgz","fileCount":83,"integrity":"sha512-/bcIuP3ROcVSu3AvCZ5SbQ7a09umo99O+tCpok0VlkZ2LxTwSbAD95NE7M7dKXOktF8NZ1GjxAKBoqv3u9/jQg==","signatures":[{"sig":"MEYCIQD9YmJ8rjQQu95OremK9Ufc5d0saVzP+5jdDCDAJeE/lgIhAIRQ1M5GPxzLHfqQqJCy2GjryyExsuWOjpt02mW+tHWa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":161371},"type":"module","engines":{"node":">=18"},"gitHead":"32ce17ed0ff2e6fb82c3503fc2a3de364e0099c5","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:e2e":"vitest run --config vitest.e2e.config.ts","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"_npmVersion":"11.17.0","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.13_1782472638120_0.6286564560994934","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@octen.ai/cli","version":"0.2.0","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.2.0","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"homepage":"https://github.com/Octen-Team/octen-cli#readme","bugs":{"url":"https://github.com/Octen-Team/octen-cli/issues"},"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"64010437f13e77d1b05f42b2cc20bfadd2670882","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.2.0.tgz","fileCount":83,"integrity":"sha512-fvv2EqXvH78gQ0ASQiy2dtA04x0EJc17kePcdNKi/2fnPXHPvwwy8lpCgJ6iHwFBB1BXV/WxKcTdPIqCgRh+ig==","signatures":[{"sig":"MEQCIBTUVFr9j6/GbduSk722o4NOfPvxRQiTifXMKBarKmMoAiAnvZPGwskW4H26Ewbp0V5WHAaDPE7xM6E6eppknrePKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@octen.ai%2fcli@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":161801},"type":"module","engines":{"node":">=18"},"gitHead":"511ee067aeb62d7630528f3891be602eafa649ee","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:e2e":"vitest run --config vitest.e2e.config.ts","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"repository":{"url":"git+https://github.com/Octen-Team/octen-cli.git","type":"git"},"_npmVersion":"11.17.0","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.0_1782475248739_0.47010922527031074","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@octen.ai/cli","version":"0.3.0","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.3.0","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"homepage":"https://github.com/Octen-Team/octen-cli#readme","bugs":{"url":"https://github.com/Octen-Team/octen-cli/issues"},"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"87a1ac498b434ea0b6e53efb082b5464896cf530","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.3.0.tgz","fileCount":83,"integrity":"sha512-fmZrsvb3oopaDU6QrvCXg7n82nGkW4OivQ0E6ZrzVr7PJnfU7auZ7Ew2q/3/rxZTSUEHQNKJfBmrWBh5bBTHgg==","signatures":[{"sig":"MEUCIQD+OuosVrDfcTaiRMOwmwFHcSBwuB4s/M8FbqjdnGL2+gIgRpElL6mIwMUiK5LF7MCk317MlMdEc2x/977HgkT78ys=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@octen.ai%2fcli@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":161817},"type":"module","engines":{"node":">=18"},"gitHead":"f50832cc22e048b9359cded405a71bbd9b3a5c24","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:e2e":"vitest run --config vitest.e2e.config.ts","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"repository":{"url":"git+https://github.com/Octen-Team/octen-cli.git","type":"git"},"_npmVersion":"11.17.0","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.3.0_1782632601943_0.5785029512359436","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@octen.ai/cli","version":"0.5.0","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.5.0","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"homepage":"https://github.com/Octen-Team/octen-cli#readme","bugs":{"url":"https://github.com/Octen-Team/octen-cli/issues"},"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"c540064215416dfe79355960d4370232fd40eb20","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.5.0.tgz","fileCount":97,"integrity":"sha512-PWs/Gaf8XWjw5rR3nFbWoM+sRZewGJR3Z8zSAXEDJTW/s2D49ORZ35lLRzAm1s1Xnzik3qB8ABhvyziTHBCe/Q==","signatures":[{"sig":"MEUCIEP+1pbNWzMBFv5zX9CC4O3oabubKu5RSVJzPVzIrLsBAiEA6m56x8lF3n6Tf13//1Q+0Y7A1YTMhFY5a4nPx47NqKI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@octen.ai%2fcli@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":198035},"type":"module","engines":{"node":">=18"},"gitHead":"15aaf021a1166916ef2707b56cd85a540cff6a74","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:e2e":"vitest run --config vitest.e2e.config.ts","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"repository":{"url":"git+https://github.com/Octen-Team/octen-cli.git","type":"git"},"_npmVersion":"11.17.0","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.5.0_1782737972086_0.007247581448537765","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@octen.ai/cli","version":"0.5.1","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.5.1","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"homepage":"https://github.com/Octen-Team/octen-cli#readme","bugs":{"url":"https://github.com/Octen-Team/octen-cli/issues"},"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"585bdc6afec4656467e7dd9b63d6aca9351611d6","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.5.1.tgz","fileCount":97,"integrity":"sha512-v6T58xEAN7p3ccxRmExs36pHlLMxUqs4OqxHx6O0I9YYjOyBdpgGuYWaa8ot8DFz7RsaRROr2O5R5HVRROgu+w==","signatures":[{"sig":"MEYCIQDC3/7Hbxs8a4esJEqzN1kmPbwzPzb7NQ6aHkgruxfdLgIhALb89zqRXuI5H97aY1OWW/1kCeCU99hatTcW4YMtq0h+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@octen.ai%2fcli@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":198407},"type":"module","engines":{"node":">=18"},"gitHead":"4592226f93f635658e385b62fd3dd9e9b4c0fb65","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:e2e":"vitest run --config vitest.e2e.config.ts","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"repository":{"url":"git+https://github.com/Octen-Team/octen-cli.git","type":"git"},"_npmVersion":"11.18.0","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.5.1_1783326741708_0.9439553353636769","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@octen.ai/cli","version":"0.5.2","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.5.2","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"homepage":"https://github.com/Octen-Team/octen-cli#readme","bugs":{"url":"https://github.com/Octen-Team/octen-cli/issues"},"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"edb6723b125d93efd52d6c584ac7cabc8dc19ba2","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.5.2.tgz","fileCount":97,"integrity":"sha512-9LnuCcP1k4Y8nv6fHEQuT+xTPsPt00cVHtWwFS2sHbZ7fHzhapTlbFQbyi6d/x0B1v5t6ecW5L3t4FNvrBkERg==","signatures":[{"sig":"MEUCIQDgTj5XArWDTtvG882NdmrXc3ItIwbycSyog27h0izAlQIgbk5tI64nRzJ3NNh55JIYLHf1VGOHIzGH1ZtRamSFwgQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@octen.ai%2fcli@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":203127},"type":"module","engines":{"node":">=18"},"gitHead":"7c5561a0378ec8287014ee0cc7f0efa080c4806d","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:e2e":"vitest run --config vitest.e2e.config.ts","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"repository":{"url":"git+https://github.com/Octen-Team/octen-cli.git","type":"git"},"_npmVersion":"12.0.1","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.5.2_1784549873519_0.03966935926503368","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@octen.ai/cli","version":"0.5.3","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.5.3","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"homepage":"https://github.com/Octen-Team/octen-cli#readme","bugs":{"url":"https://github.com/Octen-Team/octen-cli/issues"},"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"3f2d7d4942fba78da66780cd14416ffdac074619","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.5.3.tgz","fileCount":97,"integrity":"sha512-R/yNh5gvEMEQyJ+AGxTkz46sYu19Lspd9Wr/X1Ahygq2iko1n0Fax3sCr1KZiqeVgucp8QhSd1ViTxcq4MIRkA==","signatures":[{"sig":"MEQCIECsLQ6fslXIRGBFnNwq50KH2IEoX1yp1+w0VEkVZZe6AiBtFbHKm8wosv0vPC6MOb97B5Ecv/rPIYv5N+f9STqImg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@octen.ai%2fcli@0.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":203139},"type":"module","engines":{"node":">=18"},"gitHead":"a268602ad13194451b09c52937f78e945b6e7df8","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:e2e":"vitest run --config vitest.e2e.config.ts","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"repository":{"url":"git+https://github.com/Octen-Team/octen-cli.git","type":"git"},"_npmVersion":"12.0.1","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.5.3_1784550915111_0.8936957960752452","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"@octen.ai/cli","version":"0.5.4","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.5.4","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"homepage":"https://github.com/Octen-Team/octen-cli#readme","bugs":{"url":"https://github.com/Octen-Team/octen-cli/issues"},"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"05f63a3dd02a2178e9c7b65ce24cb66fec8708b8","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.5.4.tgz","fileCount":97,"integrity":"sha512-deCQOdlMVxc2lQcPvsCA0jDOHelsGwC1Mj6Vl/ncOQTAsO980K4yW9f1+yRos4q3OrCBKeIIoAGIaQaGT6zzoA==","signatures":[{"sig":"MEYCIQCo/9dMcRBcAt77jtDUPy1SlJ3xEz+CdwRCYJ77i+dfQgIhAPscLVvwR8FbCuKFYtMyvWCNAoqbMx/TiiROCbLzbkX0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@octen.ai%2fcli@0.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":202348},"type":"module","engines":{"node":">=18"},"gitHead":"ef8ab328776c8bc142127c6c2084dd349ec441ec","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:e2e":"vitest run --config vitest.e2e.config.ts","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"repository":{"url":"git+https://github.com/Octen-Team/octen-cli.git","type":"git"},"_npmVersion":"12.0.1","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.5.4_1784870256080_0.2797087655454178","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"@octen.ai/cli","version":"0.5.5","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.5.5","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"homepage":"https://github.com/Octen-Team/octen-cli#readme","bugs":{"url":"https://github.com/Octen-Team/octen-cli/issues"},"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"fd08a14a47fdb7d1e388e23bf828d5b85e147baf","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.5.5.tgz","fileCount":97,"integrity":"sha512-DzlWeRBq+Ykcf9pLgcRTZk/M25eaob1zLpuMAztdqY/m03w0RlQDr7XfqAKDKtLGC8MjwHVX4XktbXd1LsBtBA==","signatures":[{"sig":"MEUCIQCU5F1hES8XEhPnZl3e/tgv3WnHuZ07UbaI8g9lXnmWzgIgT9FzYN2D/P0NEuQb9uJuZxS6rrlN10KwxbxI1eUV2Gg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@octen.ai%2fcli@0.5.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":203126},"type":"module","engines":{"node":">=18"},"gitHead":"5d9574f87c09fa05edc1539bad0521d63f65435a","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:e2e":"vitest run --config vitest.e2e.config.ts","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"repository":{"url":"git+https://github.com/Octen-Team/octen-cli.git","type":"git"},"_npmVersion":"12.0.1","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.5.5_1785157655608_0.9141354104468915","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@octen.ai/cli","version":"0.6.0","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.6.0","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"homepage":"https://github.com/Octen-Team/octen-cli#readme","bugs":{"url":"https://github.com/Octen-Team/octen-cli/issues"},"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"085eb85e7660d9534e4fefe5db416f1a8d33d7b4","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.6.0.tgz","fileCount":97,"integrity":"sha512-wUavZfRxLlTyRhiAsGWEnsfqkMGldijIT0W5Z2Al07Pa7Ec57o2++7OGhecLGE/AR4ZsqhYGXCl3Ll7Gt3oLZg==","signatures":[{"sig":"MEYCIQDoLDKRn0/qIzew8JbtDcT/G6ZqNnM15/7lmZjEF5fmswIhAOcMSLdyUOOXDTVVSlSKsz5KvzOh4/TKPVvgN5Xi32cB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@octen.ai%2fcli@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":207012},"type":"module","engines":{"node":">=18"},"gitHead":"81c8c3f8222a77a4f1e9871d88d0ef4023ec61a9","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:e2e":"vitest run --config vitest.e2e.config.ts","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"repository":{"url":"git+https://github.com/Octen-Team/octen-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.6.0_1785414435535_0.6375015320994668","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@octen.ai/cli","version":"0.7.0","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.7.0","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"homepage":"https://github.com/Octen-Team/octen-cli#readme","bugs":{"url":"https://github.com/Octen-Team/octen-cli/issues"},"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"b753f5f66784d8dbf17f8b4a5c0cbd9f93122442","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.7.0.tgz","fileCount":97,"integrity":"sha512-OCJ1ufNvXqMY5qki/+GHR/FnFbHcReSWHqbBsOWi1fVtXbYh3twOoVUE4sCCFa9mokUWWCsmN4/Vu7itJkfQ3w==","signatures":[{"sig":"MEUCICpuAdklMJMs5Kqg84BkV6xHh35P5n/3VaGrBkcGfbZsAiEAmlVpPi2K/EcKJjNn21wG2Ei7HyoOeUtpbanR6F6Upfw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@octen.ai%2fcli@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":207778},"type":"module","engines":{"node":">=18"},"gitHead":"ba1ddbce4e74d580e20e8d7ca85c9ec170bf9d67","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:e2e":"vitest run --config vitest.e2e.config.ts","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"repository":{"url":"git+https://github.com/Octen-Team/octen-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.7.0_1788162541702_0.8814175367519042","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@octen.ai/cli","version":"0.8.0","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.8.0","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"homepage":"https://github.com/Octen-Team/octen-cli#readme","bugs":{"url":"https://github.com/Octen-Team/octen-cli/issues"},"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"342500664abe929365fa3fb0914a5c0fad509ed4","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.8.0.tgz","fileCount":97,"integrity":"sha512-iXjE7kQhHlIBF04QdCtenX4/068oqwiqiF8CQfl2OiSwd55PV3kftURUE+xU5UXghYiFrSNELaB5tj7Lyy0Qhg==","signatures":[{"sig":"MEUCIHGlji7bpRu0a8ptCSlrqfdee8wC+lWATyCowSVw7gDQAiEAwrf3gDFt+aCl0VKiaIqc/KAuH9XOjpPs2K0vFj/r2dY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@octen.ai%2fcli@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":228242},"type":"module","engines":{"node":">=18"},"gitHead":"c52062d71572ca9cbfc38ef5a7eb3dba044c5edc","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:e2e":"vitest run --config vitest.e2e.config.ts","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"repository":{"url":"git+https://github.com/Octen-Team/octen-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.8.0_1788850275851_0.0521765168885544","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@octen.ai/cli","version":"0.9.0","author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","_id":"@octen.ai/cli@0.9.0","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"homepage":"https://github.com/Octen-Team/octen-cli#readme","bugs":{"url":"https://github.com/Octen-Team/octen-cli/issues"},"bin":{"octen":"dist/cli.js"},"dist":{"shasum":"35b278761104802e26e7d70e8f5d486569918e84","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.9.0.tgz","fileCount":123,"integrity":"sha512-3HIUi7VanfGgA4LXIxDvIByHbIg3YptA041CXecD6J2uJM4n/QRLM9/G5G8OYObhkryRyB6LpAJ1thmbeXZu9A==","signatures":[{"sig":"MEYCIQDEDKnKupAU+reG0y/MuingiNQbm7EQq/OndBN70SlM5gIhAIc9r1edJtzWMxOjswzA5bL1ar34EeIzzOMyD8e1E+KY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@octen.ai%2fcli@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":352248},"type":"module","engines":{"node":">=18"},"gitHead":"05d9179583863ecc60904152e1c8e95b248937a0","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:e2e":"vitest run --config vitest.e2e.config.ts","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"repository":{"url":"git+https://github.com/Octen-Team/octen-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.9.0_1789098163399_0.8614561945481847","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"_id":"@octen.ai/cli@0.10.0","bin":{"octen":"dist/cli.js"},"bugs":{"url":"https://github.com/Octen-Team/octen-cli/issues"},"dist":{"shasum":"f87b9c8cc62ceb3a58d6a95c08c7dfe0059a3a07","tarball":"https://registry.npmjs.org/@octen.ai/cli/-/cli-0.10.0.tgz","fileCount":134,"integrity":"sha512-KC+RrJ6cWp7ZN2Ddlf4sBGpsXhRnH+JV/8qtByQYbYhb56WK6NKgwJwScpRHlfpCtzezn2Drsa0KVS8YjPHZow==","signatures":[{"sig":"MEUCIHyXEqDoz/2HBSJZ+dtZJVGMmO7D5ypSVsrTS6wZ1i0BAiEAww713fb0LdxTu57WJ24C0CWOiUoHMLAWHSZl7WxLpxw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEgcmxPBjxGXZj7WzZDW5whx1eCI7hx5y3SpvtiE2rPEAiBY5TuGQejKgZvn3/7Jxlwi6X3uFu3izgcE9Q8pjGDRBg=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@octen.ai%2fcli@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":431149},"name":"@octen.ai/cli","type":"module","author":{"name":"Octen","email":"hello@octen.ai"},"engines":{"node":">=18"},"gitHead":"3507dae1fc8f1dc3a472257ef324a1d16efc99e3","license":"MIT","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc && chmod +x dist/cli.js","test:e2e":"vitest run --config vitest.e2e.config.ts","test:watch":"vitest","sync-skills":"tsx scripts/sync-skills.ts","prepublishOnly":"npm run build"},"version":"0.10.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"b7e2b001-118a-4282-9b6f-d4e2551c45c6"}},"homepage":"https://github.com/Octen-Team/octen-cli#readme","repository":{"url":"git+https://github.com/Octen-Team/octen-cli.git","type":"git"},"_npmVersion":"12.1.0","description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","directories":{},"maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"_nodeVersion":"22.23.2","dependencies":{"tar":"^7.5.16","commander":"^12.1.0","smol-toml":"^1.7.0","picocolors":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.0.0","@types/tar":"^6.1.13","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cli_0.10.0_1790652149509_0.5307843275954482"}}},"time":{"created":"2026-06-26T04:12:37.573Z","modified":"2026-09-29T03:22:30.015Z","0.1.0":"2026-06-26T04:12:37.928Z","0.1.1":"2026-06-26T04:26:55.246Z","0.1.2":"2026-06-26T04:36:15.913Z","0.1.3":"2026-06-26T04:46:17.803Z","0.1.4":"2026-06-26T06:26:35.080Z","0.1.5":"2026-06-26T07:08:02.404Z","0.1.6":"2026-06-26T07:24:32.616Z","0.1.7":"2026-06-26T07:54:37.748Z","0.1.8":"2026-06-26T09:21:00.435Z","0.1.9":"2026-06-26T09:37:24.564Z","0.1.10":"2026-06-26T10:04:26.142Z","0.1.11":"2026-06-26T10:08:56.679Z","0.1.12":"2026-06-26T10:17:24.320Z","0.1.13":"2026-06-26T11:17:18.253Z","0.2.0":"2026-06-26T12:00:48.883Z","0.3.0":"2026-06-28T07:43:22.067Z","0.5.0":"2026-06-29T12:59:32.224Z","0.5.1":"2026-07-06T08:32:21.843Z","0.5.2":"2026-07-20T12:17:53.654Z","0.5.3":"2026-07-20T12:35:15.265Z","0.5.4":"2026-07-24T05:17:36.216Z","0.5.5":"2026-07-27T13:07:35.769Z","0.6.0":"2026-07-30T12:27:15.682Z","0.7.0":"2026-08-31T07:49:01.867Z","0.8.0":"2026-09-08T06:51:16.023Z","0.9.0":"2026-09-11T03:42:43.573Z","0.10.0":"2026-09-29T03:22:29.648Z"},"bugs":{"url":"https://github.com/Octen-Team/octen-cli/issues"},"author":{"name":"Octen","email":"hello@octen.ai"},"license":"MIT","homepage":"https://github.com/Octen-Team/octen-cli#readme","repository":{"url":"git+https://github.com/Octen-Team/octen-cli.git","type":"git"},"description":"Command-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup.","maintainers":[{"name":"dorianzhang","email":"dorianzhang@octen.ai"},{"name":"octen","email":"jack@octen.ai"},{"name":"bookerliu","email":"booker@octen.ai"}],"readme":"# @octen.ai/cli\n\nCommand-line tool for Octen — web search, extract, chat, embeddings, and one-command MCP/Skills setup for Claude Code, Cursor, and more.\n\n## Install\n\n**With Node.js (npm):**\n\n```sh\nnpm i -g @octen.ai/cli\n```\n\nOr run without installing: `npx @octen.ai/cli <command>`. Requires Node.js 18+.\nUninstall: `npm uninstall -g @octen.ai/cli`.\n\n### Without Node.js — Homebrew (macOS/Linux)\n\nInstall (one command — it taps automatically):\n\n```sh\nbrew install Octen-Team/tap/octen\n```\n\nUninstall:\n\n```sh\nbrew uninstall octen\nbrew untap Octen-Team/tap   # optional — also removes the tap\n```\n\n### Without Node.js — raw binary\n\nDownload the binary for your platform from the\n[latest release](https://github.com/Octen-Team/octen-cli/releases/latest)\n(`octen-darwin-arm64`, `octen-darwin-x64`, `octen-linux-x64`, `octen-linux-arm64`),\n`chmod +x` it, and put it on your `PATH`.\n\nThen enable tab-completion (one-time; `bash` / `zsh` / `fish`):\n\n```sh\nocten completion zsh --install     # writes to ~/.zshrc — then: source ~/.zshrc\n```\n\n## Auth\n\nOcten CLI resolves the API key to use in this order — each step stopping resolution before\nthe next, so an explicit value always wins over a stored one:\n\n1. `--api-key <key>` on the command itself\n2. `OCTEN_API_KEY` in the environment\n3. `~/.octen/credentials.json`, written by `octen login`\n\nGet a key at https://octen.ai. Either export it directly:\n\n```sh\nexport OCTEN_API_KEY=your_key_here\n```\n\nor log in once and let the CLI manage it:\n\n```sh\nocten login\n```\n\n`octen login` opens your browser, completes an OAuth consent flow, and stores the resulting\nAPI key at `~/.octen/credentials.json` (written with `0600` permissions). That key does not\nexpire, so `octen configure-mcp` and `octen configure-skills --set-key` can write it into\nAI-client configs once and forget about it.\n\nYou can also pass `--api-key <key>` or `--base-url <url>` on any command; to point at a\nself-hosted or staging endpoint, set `OCTEN_API_URL` or pass `--base-url <url>`.\n\nRun `octen whoami` to see which of the three sources is actually in effect — it names the\nwinner explicitly, so a stored credential that is being shadowed or ignored says so rather\nthan looking live.\n\n### Auth environment variables\n\n| Variable | Default | What it does |\n| --- | --- | --- |\n| `OCTEN_API_KEY` | — | The API key to use. Takes precedence over `~/.octen/credentials.json`, so a stored login is ignored while it is set. |\n| `OCTEN_API_URL` | `https://api.octen.ai` | The Octen API base URL. |\n| `OCTEN_AUTH_ISSUER` | `https://auth.octen.ai` | The OAuth authorization server `octen login` talks to. Only for local development against a self-hosted AS. |\n| `OCTEN_AUTH_RESOURCE` | `https://cli.octen.ai` | The audience `octen login` requests the access token for. Despite the shape it is an identifier, not a site — nothing ever connects to it. Only for local development. |\n\n`OCTEN_AUTH_ISSUER` and `OCTEN_AUTH_RESOURCE` **must not have a trailing slash** — a\ntrailing one is rejected with a named error rather than silently trimmed, because trimming\nis what once turned a JWKS URL into `//api/oauth/jwks` and made a byte-for-byte issuer\ncomparison fail.\n\nChanging either of them makes an existing stored credential **inapplicable**: the credential\nrecords the issuer and resource it was minted for, and one minted for a different pair\nbelongs to another environment. The CLI never uses it and never deletes it — it says so and\nnames the variable. Unset the variable to go back to the stored credential, or run `octen\nlogin` again to get one for the new environment. `octen whoami` shows both the stored\n`Issuer`/`Resource` and which credential is in effect.\n\n### What the resource is, and why there are two\n\nOne authorization server issues access tokens for two different audiences, and they are\ndeliberately not interchangeable:\n\n| Audience | Scope | What a token for it can do |\n| --- | --- | --- |\n| `https://mcp.octen.ai/mcp` | `mcp:tools` | Call MCP tools |\n| `https://cli.octen.ai` | `octen:api_key` | Exchange for your account's API key |\n\nOnly the second can be traded for the API key. If both shared one audience, a token minted\nfor the MCP server — the one an AI client holds — could be replayed against the CLI's\nexchange endpoint and walk away with that key. The `resource` is what keeps them apart: the\nserver checks that a token's granted audience is exactly this value before handing anything\nover, and answers `403` otherwise.\n\nThat check is a byte-for-byte comparison, with no normalization anywhere along the chain,\nwhich is why the trailing-slash rule above is a rejection rather than a quiet trim.\nNormalizing in one place and not another produces a 401 on every request while each side\nlooks correct in isolation.\n\nYou do not need to set `OCTEN_AUTH_RESOURCE` to use Octen. It exists so a locally running\nauthorization server can use a different audience string.\n\n**Add `.octen/` to your global gitignore.** A credentials file living in a dotfile directory\nis more likely to be committed by accident than an environment variable ever was:\n\n```sh\ngit config --global core.excludesfile ~/.gitignore_global\necho \".octen/\" >> ~/.gitignore_global\n```\n\n**No browser on this machine (CI, containers)?** Paste a key directly — this branch makes\nzero network requests:\n\n```sh\nocten login --api-key \"$OCTEN_API_KEY\"\n```\n\n**Over SSH**, forward the loopback callback port and pin it on both ends:\n\n```sh\n# on the remote machine\nocten login --port 8765\n# from your local machine, before approving the consent screen in your browser\nssh -L 8765:localhost:8765 remote-host\n```\n\n### `octen logout`'s exact semantics\n\n`octen logout` deletes `~/.octen/credentials.json` and revokes *this device's authorization*\n(the OAuth grant behind it). Revoking the authorization only prevents it from being used to\nsilently mint a new credential later — it does **not** deactivate the underlying API key.\nThat key is your own account-wide, long-lived key, and the same key is very likely also\nsitting on other machines, in your production code, and in the AI-client configs `octen\nconfigure-mcp` wrote. All of those keep working after `octen logout` — that's by design,\nsince they're your own legitimate uses of your own key. If you believe the key itself was\nexposed, deactivate or rotate it from the key management page at https://octen.ai — that\naction, unlike `logout`, affects every place holding the key.\n\n`octen logout --local` skips the network call entirely and only removes the local file,\nwithout attempting to revoke the authorization.\n\n### One key, used by both the CLI and MCP\n\nThe audience split above applies to OAuth *access tokens*. The API key you end up with is\nnot audience-bound at all — it is your own account-wide key, and using it in more than one\nplace is the normal case, not a workaround. `octen configure-mcp` does exactly that: it\nresolves your key through the same `--api-key` > `OCTEN_API_KEY` > stored-login order as\nevery other command and writes it into the MCP client config.\n\nThree consequences of sharing one key:\n\n- **`octen logout` does not stop MCP.** It revokes this device's authorization, not the key.\n  The key is still sitting in the MCP config and keeps working. To stop it everywhere,\n  deactivate or rotate the key from the key management page at https://octen.ai.\n- **Usage and billing are pooled.** One key, one account — CLI calls and MCP calls land in\n  the same bucket.\n- **The blast radius is shared.** Rotating or losing the key affects both at once.\n\nTo keep the two independent, pick a separate key for the CLI in the consent screen's **API\nKey** dropdown instead of accepting the default, and leave MCP on another one.\n\nThis applies to the local stdio MCP server (`npx octen-mcp`, what `octen configure-mcp`\nconfigures). A **remote OAuth connector** holds no API key at all — it carries an\nMCP-audience token that the server resolves internally — so it is already independent of\nwhatever the CLI stores.\n\n### Dashboard \"revoke\" and an already-logged-in CLI\n\nThe dashboard's per-authorization \"revoke\" button has **no effect on a device that already\nholds a credential**: it only stops that device from obtaining a *new* one without going\nthrough the consent screen again — the API key it already has keeps working exactly as\nbefore. The authorization still shows up in the dashboard's list either way; run `octen\nwhoami` on the device in question to get its `grantId` so you can identify which entry in\nthat list corresponds to it. To actually stop a key from working anywhere, deactivate or\nrotate it from the key management page, not the authorization list.\n\n### Switching from a browser login to a pasted key\n\n`octen login --api-key <KEY>` overwrites any existing `source: login` credential on disk\nwithout revoking its grant — that branch makes no network request at all, deliberately, so\nthat it still works on a machine with no browser and no reachable auth server (see above).\nSo if you switch a machine from a browser login to a pasted key, the old\nauthorization is left behind: it stays listed as active in the dashboard's authorization\nlist, and once its `grantId` is gone from this machine's disk, nothing here can revoke it —\nonly the dashboard can. The command prints that `grantId` on stderr before overwriting the\nfile, so you can still find the entry; revoke it there directly if you want to clean it up,\nor run `octen logout` first to revoke it properly.\n\n## Commands\n\n### `octen login`\n\nLog in via your browser and store the resulting long-lived API key at\n`~/.octen/credentials.json`.\n\n```sh\nocten login\n\n# print the authorize URL instead of opening a browser\nocten login --no-browser\n\n# pin the loopback callback port, e.g. for the ssh -L forwarding above\nocten login --port 8765\n\n# no browser available: store a key directly, with zero network requests\nocten login --api-key \"$OCTEN_API_KEY\"\n```\n\nThe consent screen asks for two things, and shows one you should check:\n\n- **Account** — whose key this is: your personal account, or an organization you belong to.\n  This decides whose usage and billing the key draws on.\n- **API Key** — which of that account's keys to hand over. Pick a separate one here if you\n  want the CLI's key independent of the one MCP uses (see\n  [One key, used by both the CLI and MCP](#one-key-used-by-both-the-cli-and-mcp)).\n- **\"Authorization result will be sent to 127.0.0.1:PORT\"** — the loopback listener this\n  `octen login` just opened. If you did not just run it, press **Deny**.\n\nOn success the terminal names the account you approved as — `Logged in as Octen family.` —\nfalling back to the raw account id when the server does not supply a name.\n\nIf a `source: login` credential already exists, `octen login` best-effort revokes its grant\nbefore starting the new login, so repeated logins don't accumulate orphaned authorizations\nin the dashboard. A failure to revoke never blocks the new login.\n\nOptions: `--port <n>`, `--no-browser`.\n\n---\n\n### `octen logout`\n\nRevoke this device's authorization and remove the locally stored credential. See\n[Auth](#auth) above for the exact semantics — this does **not** deactivate the API key\nitself.\n\n```sh\nocten logout\n\n# skip the network call; only remove the local file\nocten logout --local\n```\n\nA credential created with `octen login --api-key` has no authorization to revoke, so this\njust removes the file, with zero network requests, and the output never mentions revocation\nfor that case.\n\nOptions: `--local`.\n\n---\n\n### `octen whoami`\n\nShow the locally stored credential: account, credential source, and the `grantId` you can\nuse to find and revoke this device in the dashboard's authorization list. This reads only\n`~/.octen/credentials.json` — it makes **zero network requests** and does not verify that\nthe key still works (run `octen search` for that; there's deliberately no `--verify` flag).\n\n```sh\nocten whoami\nocten whoami --json\n```\n\nExits non-zero when not logged in.\n\n---\n\n### `octen search`\n\nSearch the live web.\n\n```sh\nocten search \"latest LLM benchmarks\" -n 10 --topic news --highlight --time-range week\n```\n\nOptions: `-n` (result count 1–100), `--topic` (general|news), `--highlight` (+`--highlight-max-tokens`, 100–20000), `--time-range` (day|week|month|year or d|w|m|y), `--start-time`/`--end-time` (YYYY-MM-DD or ISO datetime), `--include-domains`, `--exclude-domains`, `--language` (comma-separated ISO 639-1 codes, e.g. `en,ja` — one of `ar de en es fr hi id it ja ko nl pl pt ru th tr vi zh`), `--full-content` (+`--full-content-max-tokens`, 100–100000), `--images`, `--format` (text|markdown), `--safesearch`.\n\n---\n\n### `octen news`\n\nNews-focused web search (same flags as `search` minus `--topic`).\n\n```sh\nocten news \"OpenAI announcement\" --highlight --time-range day\n```\n\n---\n\n### `octen broad-search`\n\nBroad multi-angle web search (alias: `octen broad`). Decomposes the query into sub-queries searched concurrently, returning results grouped by sub-query for comprehensive coverage.\n\nUse it for comparisons across many sources (pricing, products, vendors), surveys/research, and multi-angle questions — cases where a single `octen search` only reaches a few subtopics. Pass the query as-is (sub-queries are generated for you); raise `--max-queries` for broader coverage, or use `octen search` for a single focused query.\n\n```sh\nocten broad-search \"compare cloud GPU pricing across providers\" --max-queries 5 -n 10\n```\n\nOptions: `--max-queries` (decompose into up to N sub-queries, 1–30, default 5), plus all `octen search` flags (`-n/--count` per sub-query, `--topic`, `--highlight`, `--full-content`, `--time-range`, `--start-time`/`--end-time`, `--include-domains`/`--exclude-domains`, `--include-text`/`--exclude-text`, `--language`, `--images`, `--format`, `--safesearch`).\n\n---\n\n### `octen extract`\n\nExtract content from one or more URLs (1–20).\n\n```sh\nocten extract https://example.com --query \"pricing\" --max-age 3600 --images\nocten extract https://www.reddit.com/r/programming --mode advanced --fetch-timeout 60\nocten extract https://docs.octen.ai --links prefer_internal --max-links 50\n```\n\nOptions: `--query` (relevance hint), `--max-age <sec>` (cache age, 300–31536000), `--images` (also returns `cover_image` when present), `--videos`, `--audio`, `--format` (markdown|text), `--fetch-timeout <sec>` (per-URL, 1–60), `--mode <m>` (standard|advanced|auto), `--links [scope]` (prefer_internal|prefer_external), `--max-links <n>` (1–1000), `--full` (print full page content, links and media). The page favicon is returned by default when available.\n\n**Choosing `--mode`.** When omitted the server uses `standard`; the CLI never sends a mode you did not ask for.\n\n- `standard` (default): fastest and cheapest ($1 / 1K successful URLs). Right for well-structured pages without anti-bot protection: news, blogs, docs, product pages, static sites. On login-walled, JS-heavy or anti-bot sites it may return empty content or only a page skeleton and still report `success`.\n- `advanced`: highest success rate. Renders in a real browser with stronger anti-bot handling; slower and 2.5x the price ($2.5 / 1K). Use it for known hard sites: anti-bot/WAF-protected sites, JS-heavy SPAs, social sites (Reddit, X, LinkedIn), academic sites (ResearchGate), dynamically loaded content.\n- `auto`: picks per URL — standard where it suffices, advanced only for hard URLs, each billed at the mode it actually used. Use it for a mixed batch when you can't tell which URLs are hard; if most are hard, its cost approaches all-advanced.\n\n| Scenario | mode |\n|---|---|\n| News / blogs / docs / product pages (ordinary sites) | standard (or omit) |\n| Known hard sites (Reddit / X / LinkedIn / ResearchGate / anti-bot / SPA) | advanced |\n| Mixed batch, unsure which are hard | auto |\n| Cost-sensitive, mostly ordinary sites | standard |\n| Quality first, mostly hard sites | advanced |\n\nIf a standard result failed or came back empty/skeletal (`page_structure.primary` \"No Main Content\", or very short content on a page that should have a body), retry just those URLs with `--mode advanced`; pretty output prints that hint under failed and \"No Main Content\" results unless advanced was already requested or used. With advanced/auto, raise `--fetch-timeout` (e.g. 60). The client's own request timeout follows it: `fetch-timeout + 90s` (capped at 180s), so 120s when `--fetch-timeout` is omitted and at most 150s. That timeout is per attempt, and 429/5xx responses are retried (up to 3 times), so the worst-case wall time is longer. Failed URLs are not billed; each successful result carries `resolved_mode` (the mode actually used, which can differ from the one requested), and the authoritative billing count is `meta.usage.successful_by_mode`, shown in the pretty-output footer.\n\n**Links.** `--links` returns each page's links (`url`, `anchor_text`, `is_external`) — use it to discover a site's pages or follow outbound references. A bare `--links` uses the server defaults; `--links prefer_internal` (the default) lists same-site links first, `--links prefer_external` lists links to other registered domains first, keeping page order within each group. `--max-links <n>` caps the count (1–1000, default 200) and implies `--links`. Because the scope is optional, put `--links` after the URLs or write `--links=<scope>`; if it would swallow a URL as its scope, the CLI stops with an error saying so.\n\nPretty output truncates page content to ~500 chars and lists at most 10 links and 10 of each media type for readability; pass `--full` to print everything (or `--json` for the raw response).\n\n---\n\n### `octen chat`\n\nChat completion with optional streaming.\n\n```sh\nocten chat \"Summarize the Octen docs\" -m anthropic/claude-haiku-4.5\n```\n\nStreaming is on by default when output is a TTY; use `--no-stream` to get a single JSON response. Pass `-i` for interactive REPL mode. Set `OCTEN_CHAT_MODEL` to avoid specifying `-m` every time.\n\n**Web search** is powered by built-in server tools. Pass `--search` to let the model search the web via the `octen_search` tool (the old `--web-search on` flag has been removed), and/or `--broad-search` to enable the `octen_broad_search` tool, which fans a question out into several sub-queries for comprehensive coverage — both may be enabled together:\n\n```sh\nocten chat \"What launched at the latest Octen event?\" -m anthropic/claude-haiku-4.5 --search --search-count 10\nocten chat \"Compare cloud GPU pricing across providers\" -m anthropic/claude-haiku-4.5 --broad-search --search-max-queries 5\n```\n\nWhen search runs, cited sources are listed after the answer (pretty mode) and the raw response includes `search_results` and per-message `annotations`.\n\nCore options: `-m/--model`, `--system`, `--cache-system` (mark the system message as a cache_control ephemeral block), `--no-stream`, `-i/--interactive`.\n\nSampling: `--temperature`, `--top-p`, `--top-k`, `--min-p`, `--top-a`, `--repetition-penalty`, `--frequency-penalty`, `--presence-penalty`, `--max-tokens`, `--stop`, `--seed`, `--verbosity` (low|medium|high).\n\nReasoning: `--reasoning-effort` (xhigh|high|medium|low|minimal|none), `--reasoning-max-tokens`. When a model emits reasoning it is shown under a dim `reasoning:` prefix in pretty mode.\n\nWeb search (only meaningful with `--search` and/or `--broad-search`): `--search-max-searches <n>` (octen_search only; default 5), `--search-max-queries <n>` (octen_broad_search only; 1-30, default 5), `--search-topic` (general|news), `--search-count <n>` (1-100), `--search-include-domains <list>`, `--search-exclude-domains <list>`, `--search-include-text <list>`/`--search-exclude-text <list>` (max 5 each), `--search-time-basis` (auto|published|crawled), `--search-time-range` (day|week|month|year or d|w|m|y), `--search-start-time <when>`, `--search-end-time <when>`, `--search-format` (markdown|text), `--search-safesearch` (off|strict), `--search-language <list>` (comma-separated ISO 639-1 codes, e.g. `en,ja` — one of `ar de en es fr hi id it ja ko nl pl pt ru th tr vi zh`), `--search-include-images`, `--search-full-content` (+`--search-full-content-max-tokens <n>`), `--search-highlight-max-tokens <n>`. The shared options apply to whichever tool(s) are enabled.\n\n---\n\n### `octen embed`\n\nCreate text embeddings.\n\n```sh\nocten embed \"semantic search query\" -m 4b\n```\n\nAccepts multiple positional args, `--file <path>` (one text per line), or stdin. Use `--json` (global flag) to print the raw vector array.\n\nOptions: `-m/--model` (0.6b|4b|8b or full ID), `--dimension`, `--input-type` (query|document), `--truncation`/`--no-truncation`.\n\n---\n\n### `octen vl-embed`\n\nCreate multimodal embeddings from text, images, and/or video.\n\n```sh\nocten vl-embed \"text:a red car\" \"image:https://example.com/car.jpg\" -m base --fusion\n```\n\nContent tokens are prefixed with `text:`, `image:`, or `video:`. Image/video values can be URLs or local file paths.\n\nOptions: `-m/--model` (base|large or full ID), `--fusion`/`--no-fusion`, `--dimension`, `--fps`, `--instruct`.\n\n---\n\n### `octen image-search`\n\n**In Beta** — contact us to request beta access.\n\nSearch the web for images, either by text query or by example image.\n\n```sh\nocten image-search \"red sports car\" -n 10 --topic design\nocten image-search --image https://example.com/car.jpg\nocten image-search --image ./car.png\n```\n\nThe endpoint takes exactly one input, so pass a query **or** `--image`, not both. `--image` accepts a public URL or a local file path (read inline as base64, max 5MB).\n\nOptions: `--image <url|path>`, `--topic` (general|design), `-n` (result count 1–10), `--include-domains`, `--exclude-domains`, `--safesearch` (off|strict), `--html-snippet` (+`--html-snippet-max-tokens`, 100–100000).\n\nUnlike `octen search` and `octen video-search`, this endpoint has no time filters.\n\n---\n\n### `octen video-search`\n\n**In Beta** — contact us to request beta access.\n\nSearch the web for videos by text query.\n\n```sh\nocten video-search \"how to make espresso\" -n 10 --time-range month\n```\n\nOptions: `-n` (result count 1–10), `--time-range` (day|week|month|year or d|w|m|y), `--start-time`/`--end-time` (YYYY-MM-DD or ISO datetime), `--safesearch` (off|strict).\n\n---\n\n### `octen configure-mcp`\n\nConfigure the Octen MCP server in AI clients (merges into existing config, does not clobber).\n\n```sh\n# Configure all supported clients at once\nocten configure-mcp --all\n\n# Or pick specific clients\nocten configure-mcp --claude-code --cursor\n\n# Pin to a specific octen-mcp version\nocten configure-mcp --all --pin 0.2.1\n```\n\nSupported clients: Claude Code, Claude Desktop, Cursor, Windsurf, VS Code, Codex.\n\nOnly clients detected as installed are configured; `--all` skips the rest, and an explicitly-named client that isn't detected is skipped unless you pass `--force`.\n\nOptions: `--all`, `--claude-code`, `--cursor`, `--claude-desktop`, `--windsurf`, `--vscode`, `--codex`, `--scope` (user|project), `--pin <version>`, `--force` (configure even if the client is not detected).\n\nRun without flags to print current status for each client.\n\n#### Config scopes\n\n`--scope` selects which file is written, and an unknown scope is an error rather\nthan a silent fall back to `user`:\n\n| Client | `--scope user` | `--scope project` |\n|---|---|---|\n| Codex | `$HOME/.codex/config.toml` | `<project>/.codex/config.toml` |\n| Cursor | `$HOME/.cursor/mcp.json` | `<project>/.cursor/mcp.json` |\n| VS Code | `<project>/.vscode/mcp.json` | `<project>/.vscode/mcp.json` |\n| Claude Code, Claude Desktop, Windsurf | user config only | same as user |\n\nCodex reads a project-level `.codex/config.toml` only in a repository it has\nbeen told to trust, so a project-scoped entry stays inert until you trust the\ndirectory in Codex. `--scope status` and `reset --scope project` read and remove\nfrom the same project file.\n\n#### Codex cold start\n\nOn a machine that has never run `octen-mcp`, `npx -y octen-mcp` has to fetch\nthe package and its dependency tree before the server can answer `initialize`.\nMeasured on macOS 15 / Node 24.18 / octen-mcp 0.5.1, from an empty npm cache\n(`npm_config_cache` pointed at a fresh directory) over three trials: **9.45s,\n9.59s and 9.75s** to `initialize`, 53 MB and ~4,200 files downloaded, all six\ntools listed. The same run against a warm cache: **0.24s**.\n\nCodex's default MCP startup window is in the same ballpark as that cold\nfigure, so a fresh-cache first run is a race — which is how the Octen tools\ncan be missing from a session that reports no error. Two optional keys make\nCodex wait for the server instead:\n\n```toml\n[mcp_servers.octen]\ncommand = \"npx\"\nargs = [\"-y\", \"octen-mcp\"]\nrequired = true\nstartup_timeout_sec = 60\n\n[mcp_servers.octen.env]\nOCTEN_API_KEY = \"${OCTEN_API_KEY}\"\n```\n\n`required` and `startup_timeout_sec` are fields of Codex's MCP server config\n(verified against codex-cli 0.153.4); Codex silently ignores config keys it does\nnot know, so check your own version before relying on them. Warming the cache\nonce with `npm i -g octen-mcp` (or a single `npx -y octen-mcp` run) is the\nother way to close the same gap. `required = true`\nmeans a server that fails to start blocks the Codex session, which is why\n`octen configure-mcp --codex` does not write these two keys by default — add\nthem yourself where Octen has to be available. The `env` table is the same shape\n`configure-mcp` writes. `${OCTEN_API_KEY}` above is a documentation placeholder,\nnot a value Codex expands: inject the real key through `configure-mcp` or your\nown secret handling, and never commit one.\n\n---\n\n### `octen configure-skills`\n\nInstall Octen Agent Skills into AI clients.\n\n```sh\n# Install into all supported clients (fetches latest from upstream)\nocten configure-skills --all\n\n# Use bundled skills — no network required\nocten configure-skills --all --offline\n\n# Fetch from a specific git ref\nocten configure-skills --claude-code --ref v0.3.0\n\n# Also write OCTEN_API_KEY into the client's env config\nocten configure-skills --claude-code --set-key --api-key <key>\n```\n\nSupported clients: Claude Code, Cursor, Codex, OpenClaw, Hermes.\n\nClaude Desktop reads the same `~/.claude/skills` as Claude Code, so `--claude-code` already installs skills the desktop app will use. `--claude-desktop` is accepted as an explicit alias for that shared target.\n\n`--set-key` also writes OCTEN_API_KEY into the client's env config (Claude Code `~/.claude/settings.json`, Codex `config.toml`, OpenClaw `.env`); Cursor/Hermes print a shell-profile hint. The key comes from `--api-key` or the `OCTEN_API_KEY` environment variable.\n\nOnly clients detected as installed are configured; `--all` skips the rest, and an explicitly-named client that isn't detected is skipped unless you pass `--force`.\n\nOptions: `--all`, `--claude-code`, `--cursor`, `--codex`, `--openclaw`, `--hermes`, `--scope` (user|project), `--ref <ref>` (default: main), `--bundled`/`--offline` (use vendored skills), `--only <names>` (comma-separated skill names), `--skills-dir <path>` (custom source directory), `--set-key` (write OCTEN_API_KEY into the client's env config), `--force` (configure even if the client is not detected).\n\nRun without flags to show installed skills per client.\n\n---\n\n### `octen reset`\n\nRemove the Octen MCP server and/or skills from AI clients, or clear the stored login\ncredential.\n\n```sh\n# Remove everything from all clients\nocten reset --all\n\n# Remove only MCP entries\nocten reset --mcp\n\n# Remove only skills from a specific client\nocten reset --skills --claude-code\n\n# Clear ~/.octen/credentials.json (like octen logout --local, but see the note below)\nocten reset --credentials\n```\n\nOptions: `--all` (both surfaces, all clients), `--mcp`, `--skills`, `--credentials`, plus per-client flags: `--claude-code`, `--cursor`, `--claude-desktop`, `--windsurf`, `--vscode`, `--codex`, `--openclaw`, `--hermes`, `--scope` (user|project).\n\n`--credentials` is **not** included in `--all` — `--all`'s existing meaning is \"both\nsurfaces (MCP + skills) across all clients\", and folding in the login credential would mean\n`--all` silently logs you out, which would be an unwelcome surprise. Reach for `octen\nlogout` instead of `reset --credentials` when there's a remote authorization to revoke too;\n`reset --credentials` only ever touches the local file, with no network request.\n\nIt behaves like `octen logout --local` — same file, same zero network requests — but it is\nnot the same command: `reset --credentials` reports removal in `reset`'s own style, and\n`logout` is the command whose whole job is the authorization. Both print the `grantId` of a\n`source: login` credential before destroying it, so the authorization left listed in the\ndashboard can still be identified and revoked there.\n\n---\n\n## Shell completion\n\n`octen completion <shell>` (bash | zsh | fish) sets up tab-completion for subcommands and flags.\n\n**Easiest — `--install`** writes it into your shell config for you (idempotent):\n\n```sh\nocten completion zsh --install     # appends to ~/.zshrc\nocten completion bash --install    # appends to ~/.bashrc\nocten completion fish --install    # writes ~/.config/fish/completions/octen.fish\n```\n\nThen `source ~/.zshrc` (or open a new terminal) to activate it in the current session.\n\n**Manual** — print the script and source it yourself (a subprocess can't change your running shell, so this is how to activate it immediately in the current shell):\n\n```sh\neval \"$(octen completion zsh)\"     # add this line to ~/.zshrc to persist\n```\n\n---\n\n## Output\n\nAll commands print human-readable output when stdout is a TTY. When stdout is piped or `--json` is passed, commands emit raw JSON. Use `--pretty` to force human-readable output even when piped. `--no-color` disables ANSI colors.\n\n## Errors and exit codes\n\nScripts must check the exit status, not just the output.\n\n| Status | When |\n|---|---|\n| `0` | The command completed and the response was complete. |\n| `2` | Bad input, caught before any request: a malformed number (`--count 1.5`, `--count 2junk`), an empty comma list (`--include-domains \"\"`), a blank query, an unknown `--scope`, or a missing API key. |\n| `1` | Everything else: HTTP errors, an API envelope with a non-zero `code`, a timeout, and stream failures. |\n\nTwo consequences worth knowing:\n\n- **Malformed numbers and empty lists fail instead of being guessed.** `--count 1.5`\n  used to be sent as `1` and `--include-domains \"\"` as `[\"\"]`. Both now name the\n  flag and exit 2, so no request is made.\n- **A streaming answer can fail after printing part of itself.** If the stream\n  carries an error event, ends without its terminator, or stalls past the\n  timeout, `octen chat` exits non-zero with the partial answer already on stdout.\n  It is not rolled back — a caller that ignores the exit status will treat a\n  truncated answer as a complete one.\n\n## Keeping things up to date\n\n- **MCP server**: `octen-mcp` is invoked via `npx` so it auto-pulls the latest version on each run. Pin a version with `--pin` if you need stability.\n- **Skills**: re-run `octen configure-skills --all` to fetch the latest skills from upstream.\n- **CLI itself**: `npm i -g @octen.ai/cli@latest`\n\n## About\n\n`@octen.ai/cli` wraps the Octen API (web search, content extraction, chat completions, text and multimodal embeddings) and handles one-command setup of the [Octen MCP server](https://www.npmjs.com/package/octen-mcp) and Agent Skills across Claude Code (CLI and Desktop app), Cursor, Claude Desktop, Windsurf, VS Code, Codex, OpenClaw, and Hermes.\n","readmeFilename":"README.md"}