{"_id":"ai-cli","_rev":"36-8ff8202c84f878073a98de96e9fd3fb0","name":"ai-cli","dist-tags":{"beta":"0.0.2-beta.0","latest":"0.5.2"},"versions":{"0.0.1-security":{"name":"ai-cli","version":"0.0.1-security","_id":"ai-cli@0.0.1-security","maintainers":[{"name":"lisayu","email":"lisa@npmjs.com"}],"homepage":"https://github.com/npm/security-holder#readme","bugs":{"url":"https://github.com/npm/security-holder/issues"},"dist":{"shasum":"0a739ca00ff745ffd4e3c643aef1006f32f5862e","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.0.1-security.tgz","fileCount":2,"integrity":"sha512-R6eP0TIGCSficeJaJ8RvxU8vtp7PJ71iJwfk6MZjYxHaCK2uJbvpSrUGTsjCm6rFDo5MoWIs1HG3Wmf2Jqxk1w==","signatures":[{"sig":"MEUCIQCmmBALW3q65YUHR2gB62YAK5n8ZfE0P91hriS1lscMmgIgAPdMS+O5tI8iuhW3rbcDcsbKTA1evwzjhcat1lvDr14=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":426},"_npmUser":{"name":"lisayu","email":"lisa@npmjs.com"},"repository":{"url":"git+https://github.com/npm/security-holder.git","type":"git"},"_npmVersion":"10.8.2","description":"security holding package","directories":{},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.0.1-security_1753798552016_0.4431805074542692","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"ai-cli","version":"0.0.1","_id":"ai-cli@0.0.1","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"strangle","email":"your@afterima.ge"}],"bin":{"ai":"dist/ai.mjs"},"dist":{"shasum":"8398528a895bd28322399a70055599cec54e1326","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.0.1.tgz","fileCount":3,"integrity":"sha512-dJnAUZ6zG7RO+pUMkJipjBmKmB4/McDijjO/3rgCZPBAwKiZXiLRUpF5BH16b8T9zqUMF0fJCpHMlf4uuIuNBA==","signatures":[{"sig":"MEYCIQCdICiBTA/UWCxzMIHRGHWRdlhIRV3uOLT7OV7MU3itgwIhAK7gUcm5Fud++Fh/TaWBz1p4SvRQDD2PIcB+2+bnqgVi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":427715},"main":"dist/ai.mjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"115b3883134dfe16ed24d675122d3bdc719a9e27","scripts":{"build":"node build.mjs","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"strangle","email":"your@afterima.ge"},"_npmVersion":"10.9.2","description":"AI CLI using OpenAI's open source model.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ai":"5.0.4","arg":"^5.0.2","zod":"^3.25.76","yoctocolors":"^2.1.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0+sha512.6540583f41cc5f628eb3d9773ecee802f4f9ef9923cc45b69890fb47991d4b092964694ec3a4f738a420c918a333062c8b925d312f42e4f0c263eb603551f977","devDependencies":{"esbuild":"^0.25.8","typescript":"^5.8.3","@types/node":"^24.1.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.0.1_1754437634845_0.9478402907771708","host":"s3://npm-registry-packages-npm-production"}},"0.0.2-beta.0":{"name":"ai-cli","version":"0.0.2-beta.0","_id":"ai-cli@0.0.2-beta.0","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"strangle","email":"your@afterima.ge"}],"bin":{"ai":"dist/ai.mjs"},"dist":{"shasum":"39105d53a69ab6a18e1f7bd23449e92fe048f322","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.0.2-beta.0.tgz","fileCount":3,"integrity":"sha512-KxNV461LVU7/vcQaFKoPAIPe8U/MJuh1X4ZJaVA3umGBvc0wIUrSfIqMGr3bhsIHkXuAk9RI19y1hArlrkf8Yg==","signatures":[{"sig":"MEYCIQDYg+6Dw9ogt5mFQ7VD/gT0VKvM0YCx2o2CFfqQcWAf4wIhALqPp5q4N/Gx1r09yR8KJ5SRzLkP8s4VZpt2F9fOwoQv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1284063},"main":"dist/ai.mjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"a37b313ce4e062c7a520cfb70da525a0207e2919","scripts":{"lint":"biome lint .","build":"node build.mjs","check":"biome check .","format":"biome format . --write","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"strangle","email":"your@afterima.ge"},"_npmVersion":"10.9.2","description":"AI CLI using Vercel AI Gateway","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.11.0+sha512.6540583f41cc5f628eb3d9773ecee802f4f9ef9923cc45b69890fb47991d4b092964694ec3a4f738a420c918a333062c8b925d312f42e4f0c263eb603551f977","readmeFilename":"README.md","devDependencies":{"ai":"6.0.6","arg":"^5.0.2","ink":"npm:@jrichman/ink@6.4.6","rc9":"^2.1.2","zod":"^4.1.8","react":"^19.2.3","esbuild":"^0.25.8","typescript":"^5.8.3","@types/node":"^24.1.0","yoctocolors":"^2.1.1","@types/react":"^19.2.7","@biomejs/biome":"2.1.4","ink-text-input":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.0.2-beta.0_1767890909615_0.15622731596577677","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"ai-cli","version":"0.0.3","_id":"ai-cli@0.0.3","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"strangle","email":"your@afterima.ge"}],"bin":{"ai":"dist/ai.mjs"},"dist":{"shasum":"f42d361e7368806ba846326957e75e4e48b87733","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.0.3.tgz","fileCount":3,"integrity":"sha512-t/y5LwWAHs5a5vJKL3QWk8zRQvNZ7Zod9PN675pEpvC0R9913bPkCkNNsIXXNnFqHc1T6QmOFY/18hQodmkofQ==","signatures":[{"sig":"MEYCIQC4ycH1/Ruk4VAsu3+udHSj6waySdg6gWa/XdCjaY7pNAIhAJyvmQtCwpOLYmxhRfCHNaCTYd+WAf4Zhb5FSVQb3LZl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":985372},"main":"dist/ai.mjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"876541f762274f105f8047f03acce800bd61996d","scripts":{"lint":"biome lint .","test":"bun test","build":"node build.mjs","check":"biome check .","format":"biome format . --write","prepublishOnly":"bun run build"},"_npmUser":{"name":"strangle","email":"your@afterima.ge"},"_npmVersion":"10.9.2","description":"minimal terminal AI assistant","directories":{},"_nodeVersion":"22.16.0","dependencies":{"linkedom":"^0.18.12","@ai-sdk/mcp":"^1.0.18","@ai-sdk/gateway":"3.0.34","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"ai":"6.0.71","arg":"^5.0.2","rc9":"^2.1.2","zod":"^4.1.8","esbuild":"^0.25.8","typescript":"^5.8.3","@types/node":"^24.1.0","yoctocolors":"^2.1.1","ansi-escapes":"^7.3.0","@biomejs/biome":"2.1.4"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.0.3_1770303460764_0.4069373650646595","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"ai-cli","version":"0.0.4","_id":"ai-cli@0.0.4","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@studiotate.com"},{"name":"strangle","email":"your@afterima.ge"}],"bin":{"ai":"dist/ai.mjs"},"dist":{"shasum":"57d6e711bc5b8145be39291a10492ac9184afa17","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.0.4.tgz","fileCount":3,"integrity":"sha512-E97tBoBfIscr8v/6AUikXmkFBDNJns5KOO/iUJBr+6ukbIWQV/7xNQ3cQNe3PRd3rU9BmA1dbs3L40aiEl65cQ==","signatures":[{"sig":"MEQCIFkycdoVHTDyPaiSZETaeNFC+ll/Nuua5NbWnzNi+ddAAiABrdy9uPMnOmnG8cQe19n6jRDyoQHnOp1WecpgiQuRGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1034309},"main":"dist/ai.mjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"73c89dc091ded4a4d31c47ccaca79b1c5568bba2","scripts":{"lint":"biome lint .","test":"bun test","build":"node build.mjs","check":"biome check .","format":"biome format . --write","typecheck":"tsc --noEmit","format:check":"biome format .","prepublishOnly":"bun run build"},"_npmUser":{"name":"ctate","email":"chris@studiotate.com"},"_npmVersion":"10.9.0","description":"minimal terminal AI assistant","directories":{},"_nodeVersion":"22.12.0","dependencies":{"linkedom":"^0.18.12","@ai-sdk/mcp":"^1.0.18","@ai-sdk/gateway":"3.0.34","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"ai":"6.0.71","arg":"^5.0.2","rc9":"^2.1.2","zod":"^4.1.8","esbuild":"^0.25.8","typescript":"^5.8.3","@types/node":"^24.1.0","yoctocolors":"^2.1.1","ansi-escapes":"^7.3.0","@biomejs/biome":"2.1.4"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.0.4_1770742217202_0.47476420632788385","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"ai-cli","version":"0.0.5","_id":"ai-cli@0.0.5","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@studiotate.com"},{"name":"strangle","email":"your@afterima.ge"}],"bin":{"ai":"dist/ai.mjs"},"dist":{"shasum":"21f0d2660249a55c240e9d2f4923678edf27a74f","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.0.5.tgz","fileCount":3,"integrity":"sha512-8dN9/4gSmGiJTeVvN8NpVqM8E8eugEAjHolWym6cNiFwMQd/eQ5kjMIMCcDQhLfN52bn6/be9eCpr0MXD9lp0Q==","signatures":[{"sig":"MEQCIDZbFsbb6eNCAd0WZYFPy0yozP0nZLMH8XzHa4QCvN+yAiAttbWk4SA28YPSuSKBIssm99ByIsJHHeR9XWlIzQa24A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1036983},"main":"dist/ai.mjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"cd2ca46516dafcb9f621da063ec51bc1810ff530","scripts":{"lint":"biome lint .","test":"bun test tests/*.test.ts","build":"node build.mjs","check":"biome check .","format":"biome format . --write","test:e2e":"bun test tests/e2e/","typecheck":"tsc --noEmit","format:check":"biome format .","prepublishOnly":"bun run build"},"_npmUser":{"name":"ctate","email":"chris@studiotate.com"},"_npmVersion":"10.9.0","description":"minimal terminal AI assistant","directories":{},"_nodeVersion":"22.12.0","dependencies":{"linkedom":"^0.18.12","@ai-sdk/mcp":"^1.0.18","@ai-sdk/gateway":"3.0.34","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"ai":"6.0.71","arg":"^5.0.2","rc9":"^2.1.2","zod":"^4.1.8","esbuild":"^0.25.8","typescript":"^5.8.3","@types/node":"^24.1.0","yoctocolors":"^2.1.1","ansi-escapes":"^7.3.0","@biomejs/biome":"2.1.4","@xterm/headless":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.0.5_1770767541883_0.005555350616901711","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"ai-cli","version":"0.0.6","_id":"ai-cli@0.0.6","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@studiotate.com"},{"name":"strangle","email":"your@afterima.ge"}],"bin":{"ai":"dist/ai.mjs"},"dist":{"shasum":"7d0f8acbdf9ae0e8d412f0586ab092351b1c5932","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.0.6.tgz","fileCount":3,"integrity":"sha512-6pU5HAW/LQnSRhnI7bO0ra0wniF93F+YxE5N15jS5hEGwMT+5h+/AadQIYbM8gpjLAxG7qcH4q1w+Hd5Ch1rWA==","signatures":[{"sig":"MEUCIDtctTuWAsmJNa8E6G2AIJp1VVsjenw1lptTEULsBZmGAiEAtcnAjDpD7Sw1qsreFzNxVKiZioA8Pp1HFHQGygZqO6g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1037116},"main":"dist/ai.mjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"656278173a8813f788066d27aa4fecdfb8b84367","scripts":{"lint":"biome lint .","test":"bun test tests/*.test.ts","build":"node build.mjs","check":"biome check .","format":"biome format . --write","test:e2e":"bun test tests/e2e/","typecheck":"tsc --noEmit","format:check":"biome format .","prepublishOnly":"bun run build"},"_npmUser":{"name":"ctate","email":"chris@studiotate.com"},"_npmVersion":"10.9.0","description":"minimal terminal AI assistant","directories":{},"_nodeVersion":"22.12.0","dependencies":{"linkedom":"^0.18.12","@ai-sdk/mcp":"^1.0.18","@ai-sdk/gateway":"3.0.34","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"ai":"6.0.71","arg":"^5.0.2","rc9":"^2.1.2","zod":"^4.1.8","esbuild":"^0.25.8","typescript":"^5.8.3","@types/node":"^24.1.0","yoctocolors":"^2.1.1","ansi-escapes":"^7.3.0","@biomejs/biome":"2.1.4","@xterm/headless":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.0.6_1770773164860_0.1009434971840133","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"ai-cli","version":"0.0.7","_id":"ai-cli@0.0.7","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@studiotate.com"},{"name":"strangle","email":"your@afterima.ge"}],"bin":{"ai":"dist/ai.mjs"},"dist":{"shasum":"3ed04b568aa74d7b0581f551c899dd81e2261b71","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.0.7.tgz","fileCount":3,"integrity":"sha512-DfAKne8jIGoARSoAPSc+tlZTA85gDGKpiiBjnMUGt/mSwIhyJ+LuQf3ZGEoTpZBsBfiZpB4ZaS6YIvAVrAz5Vw==","signatures":[{"sig":"MEYCIQCI4zwn7Ivo7ZbnznOHj3ytJCPg4j7A78V9BdIhaQK7pAIhAP2g+4c/uYYBkM8Bp0O6o0XKyfejplpgGw9bsHBd6XZE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1040649},"main":"dist/ai.mjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"0f589268b2fce0c017ba6214ac6ebb492073b90c","scripts":{"lint":"biome lint .","test":"bun test tests/*.test.ts","build":"node build.mjs","check":"biome check .","format":"biome format . --write","test:e2e":"bun test tests/e2e/","typecheck":"tsc --noEmit","format:check":"biome format .","prepublishOnly":"bun run build"},"_npmUser":{"name":"ctate","email":"chris@studiotate.com"},"_npmVersion":"10.9.0","description":"minimal terminal AI assistant","directories":{},"_nodeVersion":"22.12.0","dependencies":{"linkedom":"^0.18.12","@ai-sdk/mcp":"^1.0.18","@ai-sdk/gateway":"3.0.34","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"ai":"6.0.71","arg":"^5.0.2","rc9":"^2.1.2","zod":"^4.1.8","esbuild":"^0.25.8","typescript":"^5.8.3","@types/node":"^24.1.0","yoctocolors":"^2.1.1","ansi-escapes":"^7.3.0","@biomejs/biome":"2.1.4","@xterm/headless":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.0.7_1770831866893_0.8257528193905603","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"ai-cli","version":"0.0.8","_id":"ai-cli@0.0.8","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@studiotate.com"},{"name":"strangle","email":"your@afterima.ge"}],"bin":{"ai":"dist/ai.mjs"},"dist":{"shasum":"c9eab4fd4d38b65ce739f34786ea904c179fb095","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.0.8.tgz","fileCount":3,"integrity":"sha512-moKQOwTqV2WlgZJYhRj2PxHK4sjS/fK/jxxI3XYHkmQIQRzB9u7ewelZ4yv49VGHXYWlhGMut58ZruR5WAwbYA==","signatures":[{"sig":"MEQCICKmutNR0GVtVNELPTCORBxP2g47ds57oP89Dp6AaIq8AiA2Ee5eVpGQvdW+sqIGW+OHpbmDJKLYEDcN3jCkHg0Qow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1043058},"main":"dist/ai.mjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"9afcb6bfd727f7cf55d958b809ba6ecd2cc26df0","scripts":{"lint":"biome lint .","test":"bun test tests/*.test.ts","build":"node build.mjs","check":"biome check .","format":"biome format . --write","test:e2e":"bun test tests/e2e/","typecheck":"tsc --noEmit","format:check":"biome format .","prepublishOnly":"bun run build"},"_npmUser":{"name":"ctate","email":"chris@studiotate.com"},"_npmVersion":"10.9.0","description":"minimal terminal AI assistant","directories":{},"_nodeVersion":"22.12.0","dependencies":{"linkedom":"^0.18.12","@ai-sdk/mcp":"^1.0.18","@ai-sdk/gateway":"3.0.40","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"ai":"6.0.79","arg":"^5.0.2","rc9":"^2.1.2","zod":"^4.1.8","esbuild":"^0.25.8","typescript":"^5.8.3","@types/node":"^24.1.0","yoctocolors":"^2.1.1","ansi-escapes":"^7.3.0","@biomejs/biome":"2.1.4","@xterm/headless":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.0.8_1770848167178_0.12392823105926243","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"ai-cli","version":"0.0.9","_id":"ai-cli@0.0.9","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@studiotate.com"},{"name":"strangle","email":"your@afterima.ge"}],"bin":{"ai":"dist/ai.mjs"},"dist":{"shasum":"c9edc11d6f94e19a7007ae9e4ccc4b6143091b80","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.0.9.tgz","fileCount":3,"integrity":"sha512-7KZKs+XSocMX76OeD/4caWY/W04XKT2GEugsd0vkxPrp349VtB/L0zjyrUgH54NYESCEIyoSh1tI4lYcMXWc0w==","signatures":[{"sig":"MEQCIF2d4C5vSBlTR3AMEWolbu6+yTW8Gz50Oykt/bTDIB2EAiA5BEkSPobt8xzB2q/iue8yOZKPPbIUssK+AR0og5Ii6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1045115},"main":"dist/ai.mjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"acfa2c2f59cace7ab985861493e42a050a20f183","scripts":{"lint":"biome lint .","test":"bun test tests/*.test.ts","build":"node build.mjs","check":"biome check .","format":"biome format . --write","test:e2e":"bun test tests/e2e/","typecheck":"tsc --noEmit","format:check":"biome format .","prepublishOnly":"bun run build"},"_npmUser":{"name":"ctate","email":"chris@studiotate.com"},"_npmVersion":"10.9.0","description":"minimal terminal AI assistant","directories":{},"_nodeVersion":"22.12.0","dependencies":{"linkedom":"^0.18.12","@ai-sdk/mcp":"^1.0.18","@ai-sdk/gateway":"3.0.40","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"ai":"6.0.79","arg":"^5.0.2","rc9":"^2.1.2","zod":"^4.1.8","esbuild":"^0.25.8","typescript":"^5.8.3","@types/node":"^24.1.0","yoctocolors":"^2.1.1","ansi-escapes":"^7.3.0","@biomejs/biome":"2.1.4","@xterm/headless":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.0.9_1770856742706_0.4358354018343542","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"ai-cli","version":"0.0.10","_id":"ai-cli@0.0.10","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@studiotate.com"},{"name":"strangle","email":"your@afterima.ge"}],"bin":{"ai":"dist/ai.mjs"},"dist":{"shasum":"5ec5829180009ea65602efb17e7bae9109c988a1","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.0.10.tgz","fileCount":3,"integrity":"sha512-F6o9yRGQ1xbl3GnU6EZzgUfFlVvVTyuN1d6XNZYzkkj/2C4xFc6Rli4XRjCAK+E8hsCopjh3MmDGczHAQEgzbg==","signatures":[{"sig":"MEYCIQCEuL55/8AgVohoUgLsFbuZuyBnMPEdE7ygqWZmbWCCuAIhALX/ljrIFZi1KzkBQFPldJYzdHXGzffGKNU1xp2sp+qM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1045897},"main":"dist/ai.mjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"7e285cecb976e2cdcc900c2413d4d34e86360904","scripts":{"lint":"biome lint .","test":"bun test tests/*.test.ts","build":"node build.mjs","check":"biome check .","format":"biome format . --write","test:e2e":"bun test tests/e2e/","typecheck":"tsc --noEmit","format:check":"biome format .","prepublishOnly":"bun run build"},"_npmUser":{"name":"ctate","email":"chris@studiotate.com"},"_npmVersion":"10.9.0","description":"minimal terminal AI assistant","directories":{},"_nodeVersion":"22.12.0","dependencies":{"linkedom":"^0.18.12","@ai-sdk/mcp":"^1.0.18","@ai-sdk/gateway":"3.0.40","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"ai":"6.0.79","arg":"^5.0.2","rc9":"^2.1.2","zod":"^4.1.8","esbuild":"^0.25.8","typescript":"^5.8.3","@types/node":"^24.1.0","yoctocolors":"^2.1.1","ansi-escapes":"^7.3.0","@biomejs/biome":"2.1.4","@xterm/headless":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.0.10_1770910592443_0.8155258854068317","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"ai-cli","version":"0.0.11","_id":"ai-cli@0.0.11","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@studiotate.com"},{"name":"strangle","email":"your@afterima.ge"}],"bin":{"ai":"dist/ai.mjs"},"dist":{"shasum":"492c17932c26d2d9305b7b2b744f96332a9a5490","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.0.11.tgz","fileCount":3,"integrity":"sha512-Gy3U2osgYIJ0iKrYpHpLHCoswOXCKmyysKjd0+uUPb81qoWSs7vpcrVPk8IuL1F0YD+ISPYY9n51enSV1Uk7Cg==","signatures":[{"sig":"MEQCIGP1owPlufv8nvNyx3N8k2VAflXxL+AjuMUsONVP1CsuAiBkmm2qApNxwjPMfZXmKd5dUPiGkhzYsilU+F3Ohu8vGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1055438},"main":"dist/ai.mjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"05789882b64f9aca40fd5e054ad291f5ba957e6b","scripts":{"lint":"biome lint .","test":"bun test tests/*.test.ts","build":"node build.mjs","check":"biome check .","format":"biome format . --write","test:e2e":"bun test tests/e2e/","typecheck":"tsc --noEmit","format:check":"biome format .","test:coverage":"bun test --coverage tests/*.test.ts","prepublishOnly":"bun run build"},"_npmUser":{"name":"ctate","email":"chris@studiotate.com"},"_npmVersion":"10.9.0","description":"minimal terminal AI assistant","directories":{},"_nodeVersion":"22.12.0","dependencies":{"linkedom":"^0.18.12","@ai-sdk/mcp":"^1.0.18","@ai-sdk/gateway":"3.0.40","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"ai":"6.0.79","arg":"^5.0.2","rc9":"^2.1.2","zod":"^4.1.8","esbuild":"^0.25.8","typescript":"^5.8.3","@types/node":"^24.1.0","yoctocolors":"^2.1.1","ansi-escapes":"^7.3.0","@xterm/headless":"^6.0.0","@ai-cli/typescript-config":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.0.11_1771485253395_0.607395628205132","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"ai-cli","version":"0.0.12","_id":"ai-cli@0.0.12","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@studiotate.com"},{"name":"strangle","email":"your@afterima.ge"}],"bin":{"ai":"dist/ai.mjs"},"dist":{"shasum":"a3edb0b50cd55427a27b49fac79840472413d375","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.0.12.tgz","fileCount":3,"integrity":"sha512-G/lGVBLnXox4cnhH8AqoZPVMPb1U5BhxsKU0iAg6DgWVWcYQSbGGOzK51uiBvrwbJWP3ImcusVd9UJ4CxOqxNg==","signatures":[{"sig":"MEYCIQDVmWff8ZSLBabCe13+9za9riOEfyv0pwYc5NYyhvA0rgIhAP6CSHrX1uKWSGR4YqmDaNszPy7HVoz3CK4LY9AWCn1R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1065648},"main":"dist/ai.mjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"4910e37fb17c376fb728386c66f4d56061942e87","scripts":{"lint":"biome lint .","test":"bun test tests/*.test.ts","build":"node build.mjs","check":"biome check .","format":"biome format . --write","test:e2e":"bun test tests/e2e/","typecheck":"tsc --noEmit","test:evals":"bun test tests/evals/","format:check":"biome format .","test:coverage":"bun test --coverage tests/*.test.ts","prepublishOnly":"bun run build","test:evals:matrix":"bun run tests/evals/run-matrix.ts"},"_npmUser":{"name":"ctate","email":"chris@studiotate.com"},"_npmVersion":"10.9.0","description":"Minimal terminal AI assistant.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"linkedom":"^0.18.12","@ai-sdk/mcp":"^1.0.18","@ai-sdk/gateway":"3.0.40","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"ai":"6.0.79","arg":"^5.0.2","rc9":"^2.1.2","zod":"^4.1.8","esbuild":"^0.25.8","typescript":"^5.8.3","@types/node":"^24.1.0","yoctocolors":"^2.1.1","ansi-escapes":"^7.3.0","@xterm/headless":"^6.0.0","@ai-cli/typescript-config":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.0.12_1772347957874_0.9999703857531244","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"ai-cli","version":"0.0.13","_id":"ai-cli@0.0.13","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@studiotate.com"},{"name":"strangle","email":"your@afterima.ge"}],"bin":{"ai":"dist/ai.mjs"},"dist":{"shasum":"6dfae4f624286e5c22a3033e8e59aa5ad7d85f60","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.0.13.tgz","fileCount":3,"integrity":"sha512-S0+EJi2JtnTmej3VVsIcHFRsKw+WKfsfUuN/oGTVkZffAaA/eiup6uzHGnCkOeed2WGqDaZCP7s+5w5++SvX0g==","signatures":[{"sig":"MEUCIB6m2vZKYrUjHGEbEEKLy01r+6mgnw1oVUodPVIRghleAiEA5sdjumfRg4cTeJ3Oh6tevZV9nNTwuGqS8FnqiLNElHc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1066299},"main":"dist/ai.mjs","type":"module","engines":{"node":">=18.0.0"},"gitHead":"e7aaf9e1ba05ada081fa6e5ff26ef819dce6eee0","scripts":{"lint":"biome lint .","test":"bun test tests/*.test.ts","build":"node build.mjs","check":"biome check .","format":"biome format . --write","test:e2e":"bun test tests/e2e/","typecheck":"tsc --noEmit","test:evals":"bun test tests/evals/","format:check":"biome format .","test:coverage":"bun test --coverage tests/*.test.ts","prepublishOnly":"bun run build","test:evals:matrix":"bun run tests/evals/run-matrix.ts"},"_npmUser":{"name":"ctate","email":"chris@studiotate.com"},"_npmVersion":"10.9.0","description":"Minimal terminal AI assistant.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"linkedom":"^0.18.12","@ai-sdk/mcp":"^1.0.18","@ai-sdk/gateway":"3.0.40","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"ai":"6.0.79","arg":"^5.0.2","rc9":"^2.1.2","zod":"^4.1.8","esbuild":"^0.25.8","typescript":"^5.8.3","@types/node":"^24.1.0","yoctocolors":"^2.1.1","ansi-escapes":"^7.3.0","@xterm/headless":"^6.0.0","@ai-cli/typescript-config":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.0.13_1772397990910_0.434540123187072","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"ai-cli","version":"0.1.0","keywords":["ai","cli","generative","image","video","text","ai-sdk","vercel"],"license":"Apache-2.0","_id":"ai-cli@0.1.0","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@ctate.dev"},{"name":"strangle","email":"your@afterima.ge"}],"homepage":"https://github.com/vercel-labs/ai-cli#readme","bugs":{"url":"https://github.com/vercel-labs/ai-cli/issues"},"bin":{"ai":"src/index.ts"},"dist":{"shasum":"bad3b811d8d235229f287cc5d71d841e6fc15ef9","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.1.0.tgz","fileCount":32,"integrity":"sha512-Rd6x+l3dOT9YTC7nsGJ1rjf+pd9SdU4pvJNWdfrx0YDzUG9ieGQM7CCTUegTy/fYoSvP2iQ4SyC/tjvOlKHV5Q==","signatures":[{"sig":"MEUCIDfN/AGCgafJPG8zQaeTY1GdbxiMbAU9/L+eMzivoN6+AiEAkbtI/Z0EBVxwHkRKIAbrQJGEQ4EkZWjUcj0QOBvO/yM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ai-cli@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":501171},"type":"module","gitHead":"beec3003dca3e9f22bd19a625478cd2babd5bf97","scripts":{"dev":"bun run src/index.ts","lint":"oxlint src/","test":"bun test","build":"bun build src/index.ts --compile --outfile=dist/ai","format":"oxfmt --write src/","typecheck":"tsc --noEmit","format:check":"oxfmt --check src/","prepublishOnly":"bun run typecheck"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f83b3896-6293-4bbd-af6a-fb60395f7909"}},"repository":{"url":"git+https://github.com/vercel-labs/ai-cli.git","type":"git"},"_npmVersion":"11.11.0","description":"A tiny, agent-native CLI for generating images, video and text with dead-simple commands, stdin support and predictable artifact outputs","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ai":"^6.0.173","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","@types/bun":"^1.3.13","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.1.0_1777661416053_0.6295007388546787","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"ai-cli","version":"0.1.1","keywords":["ai","cli","generative","image","video","text","ai-sdk","vercel"],"license":"Apache-2.0","_id":"ai-cli@0.1.1","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@ctate.dev"},{"name":"strangle","email":"your@afterima.ge"}],"homepage":"https://github.com/vercel-labs/ai-cli#readme","bugs":{"url":"https://github.com/vercel-labs/ai-cli/issues"},"bin":{"ai":"src/index.ts"},"dist":{"shasum":"25b62b7ae8093b2d1dde774df8005dc14f6989a4","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.1.1.tgz","fileCount":33,"integrity":"sha512-cU5U/3du4X8HEyirPnGAUcty9RHJS5/Nnpsm51iFDJ0XLLcL5b7O5RDx8HFr6UeyzDib017URHg9cJbsSye0YA==","signatures":[{"sig":"MEUCIDxQ6776J81LmAG1J/DuTDxeUeLEd7JXmLQsC+BTuT+uAiEA5xxZ6HStbIvtYj0odhKb/mXaF1J3tcfOtPbhzD5hgI4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ai-cli@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":505690},"type":"module","gitHead":"799694c25b46d829d13e812ccdab04c7c41d45fa","scripts":{"dev":"bun run src/index.ts","lint":"oxlint src/","test":"bun test","build":"bun build src/index.ts --compile --outfile=dist/ai","format":"oxfmt --write src/","typecheck":"tsc --noEmit","format:check":"oxfmt --check src/","prepublishOnly":"bun run typecheck"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f83b3896-6293-4bbd-af6a-fb60395f7909"}},"repository":{"url":"git+https://github.com/vercel-labs/ai-cli.git","type":"git"},"_npmVersion":"11.11.0","description":"A tiny, agent-native CLI for generating images, video and text with dead-simple commands, stdin support and predictable artifact outputs","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ai":"^6.0.173","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","@types/bun":"^1.3.13","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.1.1_1777662987362_0.06090414974862646","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"ai-cli","version":"0.2.0","keywords":["ai","cli","generative","image","video","text","ai-sdk","vercel"],"license":"Apache-2.0","_id":"ai-cli@0.2.0","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@ctate.dev"},{"name":"strangle","email":"your@afterima.ge"}],"homepage":"https://github.com/vercel-labs/ai-cli#readme","bugs":{"url":"https://github.com/vercel-labs/ai-cli/issues"},"bin":{"ai":"src/index.ts"},"dist":{"shasum":"ba6c46c3739f3d05138693eac18e6dbef64ca01e","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.2.0.tgz","fileCount":32,"integrity":"sha512-zb4yyJr7F4cShnnbia5PA1m+kV0uh2D72tiKx2aLMopOr5ZJfiBE2cBXgG/J/FsWY3WFVUf4vfthWIHxLhyLSA==","signatures":[{"sig":"MEUCIGTdFb4F7amirAg2KkzBdUKPhhDTOWPar+UWArKkvXWGAiEA2CrfdfCvlmu5jzpzRRT5txuvkUt7J/23z9mPDNCn5Ws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ai-cli@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":500618},"type":"module","gitHead":"0cd2d91336fdcd4893135e4a1c75327416076d62","scripts":{"dev":"bun run src/index.ts","lint":"oxlint src/","test":"bun test","build":"bun build src/index.ts --compile --outfile=dist/ai","format":"oxfmt --write src/","typecheck":"tsc --noEmit","format:check":"oxfmt --check src/","prepublishOnly":"bun run typecheck"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f83b3896-6293-4bbd-af6a-fb60395f7909"}},"repository":{"url":"git+https://github.com/vercel-labs/ai-cli.git","type":"git"},"_npmVersion":"11.11.0","description":"A tiny, agent-native CLI for generating images, video and text with dead-simple commands, stdin support and predictable artifact outputs","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ai":"^6.0.173","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","@types/bun":"^1.3.13","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.2.0_1777842262743_0.014215140976353569","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"ai-cli","version":"0.2.1","keywords":["ai","cli","generative","image","video","text","ai-sdk","vercel"],"license":"Apache-2.0","_id":"ai-cli@0.2.1","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@ctate.dev"},{"name":"strangle","email":"your@afterima.ge"}],"homepage":"https://github.com/vercel-labs/ai-cli#readme","bugs":{"url":"https://github.com/vercel-labs/ai-cli/issues"},"bin":{"ai":"dist/index.js"},"dist":{"shasum":"502638b2e01d6545fcb0d6d16aad136dc68744d3","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.2.1.tgz","fileCount":4,"integrity":"sha512-MdhlUKtLXVNIF8S5AzJxM3o6z7KFgm9jcZKu+hZEvXCJn2e6UZTawN4QJo+S1bHPUHcz+tKb7/8ph87cPIcrfA==","signatures":[{"sig":"MEUCIBnhKnF8TpsrkidfLmHsV6JF03+22qNXTUqPvRke28b/AiEAsPPLig/CHYf9YSNY0FMPOcRU1WsuTMec0BC4iRSzN8c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ai-cli@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1390292},"type":"module","engines":{"node":">=20"},"gitHead":"67b621fb350d0eab0d062e311530c096d1d255e5","scripts":{"dev":"bun run src/index.ts","lint":"oxlint src/","test":"bun test","build":"bun run clean && bun build src/index.ts --target=node --outdir=dist","clean":"bun -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","format":"oxfmt --write src/","prepack":"bun run typecheck && bun run build","typecheck":"tsc --noEmit","format:check":"oxfmt --check src/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f83b3896-6293-4bbd-af6a-fb60395f7909"}},"repository":{"url":"git+https://github.com/vercel-labs/ai-cli.git","type":"git"},"_npmVersion":"11.11.0","description":"A tiny, agent-native CLI for generating images, video and text with dead-simple commands, stdin support and predictable artifact outputs","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ai":"^6.0.173","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","@types/bun":"^1.3.13","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.2.1_1778781901632_0.3938401559370903","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"ai-cli","version":"0.3.0","keywords":["ai","cli","generative","image","video","text","ai-sdk","vercel"],"license":"Apache-2.0","_id":"ai-cli@0.3.0","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@ctate.dev"},{"name":"strangle","email":"your@afterima.ge"}],"homepage":"https://github.com/vercel-labs/ai-cli#readme","bugs":{"url":"https://github.com/vercel-labs/ai-cli/issues"},"bin":{"ai":"dist/index.js"},"dist":{"shasum":"86fe0580d55464694266ccd93cd5296348edd1c7","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.3.0.tgz","fileCount":4,"integrity":"sha512-ITvHX8Hq8I/TB1AXTe9w8XZZYZ/KV2tM67WQ+/BkaMCMdk19XkGjpeFuDTNGUHIZVQUMrZ1Bc8sjxHc9DxQHsQ==","signatures":[{"sig":"MEQCIHgME3xwwnAL8JeP5Xreg/gclfFX19yLkiytqGypDeQBAiAr2bAGPGPEXywDY5yspTwwdcEC4jhn5DERayhwBx4BJQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ai-cli@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1396396},"type":"module","engines":{"node":">=20"},"gitHead":"51db4e3ef95b8c0db02bd6012d2a11617a4bd9ec","scripts":{"dev":"bun run src/index.ts","lint":"oxlint src/","test":"bun test","build":"bun run clean && bun build src/index.ts --target=node --outdir=dist","clean":"bun -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","format":"oxfmt --write src/","prepack":"bun run typecheck && bun run build","typecheck":"tsc --noEmit","format:check":"oxfmt --check src/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f83b3896-6293-4bbd-af6a-fb60395f7909"}},"repository":{"url":"git+https://github.com/vercel-labs/ai-cli.git","type":"git"},"_npmVersion":"11.13.0","description":"A tiny, agent-native CLI for generating images, video and text with dead-simple commands, stdin support and predictable artifact outputs","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ai":"^6.0.173","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","@types/bun":"^1.3.13","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.3.0_1780187234324_0.12577022587823294","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"ai-cli","version":"0.3.1","keywords":["ai","cli","generative","image","video","text","ai-sdk","vercel"],"license":"Apache-2.0","_id":"ai-cli@0.3.1","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@ctate.dev"},{"name":"strangle","email":"your@afterima.ge"}],"homepage":"https://github.com/vercel-labs/ai-cli#readme","bugs":{"url":"https://github.com/vercel-labs/ai-cli/issues"},"bin":{"ai":"dist/index.js"},"dist":{"shasum":"0dc74bbab318e8741c28f48e789996969e56b317","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.3.1.tgz","fileCount":4,"integrity":"sha512-egTQ8hcx/ZmrNxwmz6cV9UX110+g6oT+F2beCp6TCGnF+xPP2zYT64H2LmX0whzVVdn5M8lP9lPI9lWlbOl8/w==","signatures":[{"sig":"MEUCIAWQScZB52j6xskYt06hWPIrpnpUM507d88oH5lzmHIiAiEArZ+2Q3arNImUEgjZxpCEW6ANvpti5LS2SCKx1AICqMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ai-cli@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1399337},"type":"module","engines":{"node":">=20"},"gitHead":"1cf578f888d7e7e26f99e07f57c8970d6d104a47","scripts":{"dev":"bun run src/index.ts","lint":"oxlint src/","test":"bun test","build":"bun run clean && bun build src/index.ts --target=node --outdir=dist","clean":"bun -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","format":"oxfmt --write src/","prepack":"bun run typecheck && bun run build","typecheck":"tsc --noEmit","format:check":"oxfmt --check src/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f83b3896-6293-4bbd-af6a-fb60395f7909"}},"repository":{"url":"git+https://github.com/vercel-labs/ai-cli.git","type":"git"},"_npmVersion":"11.13.0","description":"A tiny, agent-native CLI for generating images, video and text with dead-simple commands, stdin support and predictable artifact outputs","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ai":"^6.0.173","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","@types/bun":"^1.3.13","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.3.1_1780589327254_0.8271836270987329","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"ai-cli","version":"0.4.0","keywords":["ai","cli","generative","image","video","audio","speech","transcription","text","ai-sdk","vercel"],"license":"Apache-2.0","_id":"ai-cli@0.4.0","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@ctate.dev"},{"name":"strangle","email":"your@afterima.ge"}],"homepage":"https://github.com/vercel-labs/ai-cli#readme","bugs":{"url":"https://github.com/vercel-labs/ai-cli/issues"},"bin":{"ai":"dist/index.js"},"dist":{"shasum":"f0f0e17adc01c1488e01ced5c14258e96f446c72","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.4.0.tgz","fileCount":4,"integrity":"sha512-jvKJ/7f/IQsZwwsz53oDvZJsL2vxnuyfe+WpWJhGS+9hTQGmydte9Y8sUQxNW5dWN7Of66KW0brLh+AvhMsS2g==","signatures":[{"sig":"MEUCIQCQEPpqHUNg5OLwZNKBrjmJ0dQqI7gOA/o6F3Auxe6omgIgAZ6VDDCJ8e3VWGNK4nRl0mO+zLLM/+P3Y08COXYYGhU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ai-cli@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1460342},"type":"module","engines":{"node":">=22"},"gitHead":"d6a1c43e80967fb0f12a0ca9fde7e6bf0e8717ff","scripts":{"dev":"bun run src/index.ts","lint":"oxlint src/","test":"bun test","build":"bun run clean && bun build src/index.ts --target=node --outdir=dist","clean":"bun -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","format":"oxfmt --write src/","prepack":"bun run typecheck && bun run build","typecheck":"tsc --noEmit","format:check":"oxfmt --check src/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f83b3896-6293-4bbd-af6a-fb60395f7909"}},"repository":{"url":"git+https://github.com/vercel-labs/ai-cli.git","type":"git"},"_npmVersion":"11.16.0","description":"A tiny, agent-native CLI for generating images, video, audio and text with dead-simple commands, stdin support and predictable artifact outputs","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ai":"7.0.3","commander":"^14.0.3","@ai-sdk/gateway":"4.0.3"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","@types/bun":"^1.3.13","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.4.0_1782837548358_0.7311951136673445","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"ai-cli","version":"0.4.1","keywords":["ai","cli","generative","image","video","audio","speech","transcription","text","ai-sdk","vercel"],"license":"Apache-2.0","_id":"ai-cli@0.4.1","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@ctate.dev"},{"name":"strangle","email":"your@afterima.ge"}],"homepage":"https://github.com/vercel-labs/ai-cli#readme","bugs":{"url":"https://github.com/vercel-labs/ai-cli/issues"},"bin":{"ai":"dist/index.js"},"dist":{"shasum":"27dac753d83ee7e1a8254bafb47d47a543d56355","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.4.1.tgz","fileCount":4,"integrity":"sha512-4a5BAAk7Z66VFQgTPadybE6pzKgXDYxneD64yLHphB4zu603RnCgOMu04QFYlQnFE2kYkl/6rvlSkRWrzRM9bg==","signatures":[{"sig":"MEUCIFuFzAl24q+PqKr//uevYo/BW58TcloggEMsxNBht6WcAiEAt5CFSm+XGZ7jZRYWhO/0+K4CPo01L+zwB0BsQXWBmmc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ai-cli@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1460875},"type":"module","engines":{"node":">=22"},"gitHead":"43cae92837f51e7faa51686deb3f7a5d44fa6d05","scripts":{"dev":"bun run src/index.ts","lint":"oxlint src/","test":"bun test","build":"bun run clean && bun build src/index.ts --target=node --outdir=dist","clean":"bun -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","format":"oxfmt --write src/","prepack":"bun run typecheck && bun run build","typecheck":"tsc --noEmit","format:check":"oxfmt --check src/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f83b3896-6293-4bbd-af6a-fb60395f7909"}},"repository":{"url":"git+https://github.com/vercel-labs/ai-cli.git","type":"git"},"_npmVersion":"11.16.0","description":"A tiny, agent-native CLI for generating images, video, audio and text with dead-simple commands, stdin support and predictable artifact outputs","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ai":"7.0.3","commander":"^14.0.3","@ai-sdk/gateway":"4.0.3"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","@types/bun":"^1.3.13","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.4.1_1782960230631_0.13692586276892094","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"ai-cli","version":"0.4.2","keywords":["ai","cli","generative","image","video","audio","speech","transcription","text","ai-sdk","vercel"],"license":"Apache-2.0","_id":"ai-cli@0.4.2","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@ctate.dev"},{"name":"strangle","email":"your@afterima.ge"}],"homepage":"https://github.com/vercel-labs/ai-cli#readme","bugs":{"url":"https://github.com/vercel-labs/ai-cli/issues"},"bin":{"ai":"dist/index.js"},"dist":{"shasum":"c5ea4a0559c6121134806498b583fe128632ce8d","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.4.2.tgz","fileCount":4,"integrity":"sha512-tDaumzJI5GFYhg4sD8c7a9quAM6w7btlVrsEdbKImuH2GoFT/uz4JgJFnJUy4QYI38O+2QMQjMuufwaXnoqlVw==","signatures":[{"sig":"MEUCIHF6SoKcyGPn+uPof2SUPaj5v5h32mU6BZn+QCb2tFqdAiEA3w5ffuq9ZdbpS1kAG6qL0/VhXB5wJ62Sc4zFLIWvVgA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ai-cli@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1467836},"type":"module","engines":{"node":">=22"},"gitHead":"2a72d32793e21839439e96adc8429453f17500f1","scripts":{"dev":"bun run src/index.ts","lint":"oxlint src/","test":"bun test","build":"bun run clean && bun build src/index.ts --target=node --outdir=dist","clean":"bun -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","format":"oxfmt --write src/","prepack":"bun run typecheck && bun run build","typecheck":"tsc --noEmit","format:check":"oxfmt --check src/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f83b3896-6293-4bbd-af6a-fb60395f7909"}},"repository":{"url":"git+https://github.com/vercel-labs/ai-cli.git","type":"git"},"_npmVersion":"11.13.0","description":"A tiny, agent-native CLI for generating images, video, audio and text with dead-simple commands, stdin support and predictable artifact outputs","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ai":"7.0.3","commander":"^14.0.3","@ai-sdk/gateway":"4.0.3"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","@types/bun":"^1.3.13","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.4.2_1783004879849_0.4723077301616274","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"ai-cli","version":"0.4.3","keywords":["ai","cli","generative","image","video","audio","speech","transcription","text","ai-sdk","vercel"],"license":"Apache-2.0","_id":"ai-cli@0.4.3","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@ctate.dev"},{"name":"strangle","email":"your@afterima.ge"}],"homepage":"https://github.com/vercel-labs/ai-cli#readme","bugs":{"url":"https://github.com/vercel-labs/ai-cli/issues"},"bin":{"ai":"dist/index.js"},"dist":{"shasum":"8fa57c4c88fb6a4b463a15d5bdd8b2e562ea2295","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.4.3.tgz","fileCount":4,"integrity":"sha512-iyb0w3MMKYMrwv8G7nKo2EOCGIuIuQ2k3p/q6M+YKJ2kcrb+HnFNjFiWLAlFodwtnihoXc2mA0bh2xXoJR6Smw==","signatures":[{"sig":"MEUCIQC/TR1fq0Xi4Rkt8Y9Dt6vc+R7KoZW3jSvGeZqQDVMOzwIgT61Vgqr5hDJVFtrjRC/VOkoe4FB6ZP4Yoxo/ghI8L04=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ai-cli@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1406666},"type":"module","engines":{"node":">=22"},"gitHead":"b4f38bf4513076e16b5c58729549e374ce206223","scripts":{"dev":"bun run src/index.ts","lint":"oxlint src/","test":"bun test","build":"bun run clean && bun build src/index.ts --target=node --outdir=dist","clean":"bun -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","format":"oxfmt --write src/","prepack":"bun run typecheck && bun run build","typecheck":"tsc --noEmit","format:check":"oxfmt --check src/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f83b3896-6293-4bbd-af6a-fb60395f7909"}},"repository":{"url":"git+https://github.com/vercel-labs/ai-cli.git","type":"git"},"_npmVersion":"11.16.0","description":"A tiny, agent-native CLI for generating images, video, audio and text with dead-simple commands, stdin support and predictable artifact outputs","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ai":"7.0.3","@ai-sdk/gateway":"4.0.3"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","@types/bun":"^1.3.13","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.4.3_1786232007119_0.5164645494544604","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"ai-cli","version":"0.4.4","keywords":["ai","cli","generative","image","video","audio","speech","transcription","text","ai-sdk","vercel"],"license":"Apache-2.0","_id":"ai-cli@0.4.4","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@ctate.dev"},{"name":"strangle","email":"your@afterima.ge"}],"homepage":"https://github.com/vercel-labs/ai-cli#readme","bugs":{"url":"https://github.com/vercel-labs/ai-cli/issues"},"bin":{"ai":"dist/index.js"},"dist":{"shasum":"c51d3681727c61ec9b1d91b6c708d915896294b2","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.4.4.tgz","fileCount":4,"integrity":"sha512-yqPZXQuR55FoHFLKpVFhYXox3TFNdsI1jV4NrXx1wTikBh+ClsEj41djX7omj91UxYVI1dV2D214MaOLGFpfBA==","signatures":[{"sig":"MEUCIQCsfvrbkeQO19jc8+RYydEP3Wrs6f5k/RzciONbZj03bAIgMY6Y9234v7Qcv2CrAPqlpxGsV1x0PeQSMd3FnuKF7pc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ai-cli@0.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1658463},"type":"module","engines":{"node":">=22"},"gitHead":"9d4a32aca31fd39b0873f003a2c3bc3915b5e466","scripts":{"dev":"bun run src/index.ts","lint":"oxlint src/","test":"bun test","build":"bun run clean && bun build src/index.ts --target=node --outdir=dist","clean":"bun -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","format":"oxfmt --write src/","prepack":"bun run typecheck && bun run build","typecheck":"tsc --noEmit","format:check":"oxfmt --check src/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f83b3896-6293-4bbd-af6a-fb60395f7909"}},"repository":{"url":"git+https://github.com/vercel-labs/ai-cli.git","type":"git"},"_npmVersion":"11.17.0","description":"A tiny, agent-native CLI for generating images, video, audio and text with dead-simple commands, stdin support and predictable artifact outputs","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ai":"7.0.3","sharp":"0.35.4","@ai-sdk/gateway":"4.0.3"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","@types/bun":"^1.3.13","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.4.4_1788370687310_0.3680460786922475","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"ai-cli","version":"0.5.0","keywords":["ai","cli","generative","image","video","audio","speech","transcription","text","ai-sdk","vercel"],"license":"Apache-2.0","_id":"ai-cli@0.5.0","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@ctate.dev"},{"name":"strangle","email":"your@afterima.ge"}],"homepage":"https://github.com/vercel-labs/ai-cli#readme","bugs":{"url":"https://github.com/vercel-labs/ai-cli/issues"},"bin":{"ai":"dist/index.js"},"dist":{"shasum":"c18527ce62ece114702e9391e3464475b4f1d5f8","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.5.0.tgz","fileCount":4,"integrity":"sha512-LOUCblPVW+X0cVK5vkK8p27ncTrtuc2vQTpVIRN9TvaCHtCXxWqwid4OqUpbXnaZEY071Guaiy3aXz+SHgU+Jw==","signatures":[{"sig":"MEUCIFzBGran6HSrWCYHZC5CJrzl3J/gSo0uxzPuG+9vZ2aWAiEA5mXYMvkjcRMj3Ht/3MkBFUls3sCO9UNPIc0Dkl3WasE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGJ/01wcRJUMbvp68UBkr/UekajoW+Hh4qRmVD3yM0IsAiAmibVVNtKvWoNxZNop0TJtqfnELgn4vQNna/eLiJ29og==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ai-cli@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1423847},"type":"module","engines":{"node":">=22"},"gitHead":"fb09594091b233d9518675d64f45c21e6c3f1918","scripts":{"dev":"bun run src/index.ts","lint":"oxlint src/","test":"bun test","build":"bun run clean && bun build src/index.ts --target=node --outdir=dist","clean":"bun -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","format":"oxfmt --write src/","prepack":"bun run typecheck && bun run build","typecheck":"tsc --noEmit","format:check":"oxfmt --check src/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f83b3896-6293-4bbd-af6a-fb60395f7909"}},"repository":{"url":"git+https://github.com/vercel-labs/ai-cli.git","type":"git"},"_npmVersion":"11.19.0","description":"An agent-native CLI for generating media and text, and filtering, ranking, and selecting records with AI","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ai":"7.0.105","sharp":"0.35.4","@ai-sdk/gateway":"4.0.85"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","@types/bun":"^1.3.13","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.5.0_1789623267955_0.6551975977316544","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"ai-cli","version":"0.5.1","keywords":["ai","cli","generative","image","video","audio","speech","transcription","text","ai-sdk","vercel"],"license":"Apache-2.0","_id":"ai-cli@0.5.1","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@ctate.dev"},{"name":"strangle","email":"your@afterima.ge"}],"homepage":"https://github.com/vercel-labs/ai-cli#readme","bugs":{"url":"https://github.com/vercel-labs/ai-cli/issues"},"bin":{"ai":"dist/index.js"},"dist":{"shasum":"f79542c6db1963dd14832e0fe203d141c66c2762","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.5.1.tgz","fileCount":4,"integrity":"sha512-MCeSQ5cFq8ZGBzc6lNCOMRkzOmYGgq4xf7nlPAYd7Up6szqg4L6KmiZwV62jJhHj3cghnfDYqwK/OLH6iJw1OA==","signatures":[{"sig":"MEUCIFV2eywAthG8ytdSduH/rWjFAin062V0nr51Q60WYsseAiEAu297/+1poOe6ozR5iczrLgdSGhcxjoWhUR9PCmbkruo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCh8UmdwomaFHCUEDrnYZL53POZMAoi31XmRBCbRGXwkQIhAMszwsjPrBDwbhvektJeac65vNZ5aj2uAMzZh1pG0jSc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ai-cli@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1420287},"type":"module","engines":{"node":">=22"},"gitHead":"89ab66227644ad909e9c61a316176ceabe6c96f1","scripts":{"dev":"bun run src/index.ts","lint":"oxlint src/","test":"bun test","build":"bun run clean && bun build src/index.ts --target=node --outdir=dist","clean":"bun -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","format":"oxfmt --write src/","prepack":"bun run typecheck && bun run build","typecheck":"tsc --noEmit","format:check":"oxfmt --check src/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f83b3896-6293-4bbd-af6a-fb60395f7909"}},"repository":{"url":"git+https://github.com/vercel-labs/ai-cli.git","type":"git"},"_npmVersion":"11.19.0","description":"The AI SDK for your terminal: generate text and media, and evaluate typed questions","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ai":"7.0.105","sharp":"0.35.4","@ai-sdk/gateway":"4.0.85"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","@types/bun":"^1.3.13","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ai-cli_0.5.1_1789652391796_0.5813952081466325","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"_id":"ai-cli@0.5.2","bin":{"ai":"dist/index.js"},"bugs":{"url":"https://github.com/vercel-labs/ai-cli/issues"},"dist":{"shasum":"b95808f1a9e336d5bcdcea193375f76b6c178aa4","tarball":"https://registry.npmjs.org/ai-cli/-/ai-cli-0.5.2.tgz","fileCount":4,"integrity":"sha512-gDUFmmBnhLRKrM3fBFPaonS8B/TQaKQW3SPwBzQryIGltiWWIa5SoneFS9N+s+0IP7VyRn3z69GAa++zptdZqQ==","signatures":[{"sig":"MEUCIHvCrbmtX9byLyvuwDZx0PgaRu6LXhabVYhdPQnGITO2AiEA+Xvar/oe22RZMti1jtaUbvHTnlhe8vxbgnakXOC6KuE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFIJvauLLHb/vylf5AqZsf3CQX5WUpkgP55mYkxMI0EEAiB3r7s/2pITl/ef6Q8OJlOvSgug5vULJ+BkAYeKKv8q2w=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/ai-cli@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1424510},"name":"ai-cli","type":"module","engines":{"node":">=22"},"gitHead":"6a0ed5d04ea60ee536029d469499b82898d1b214","license":"Apache-2.0","scripts":{"dev":"bun run src/index.ts","lint":"oxlint src/","test":"bun test","build":"bun run clean && bun build src/index.ts --target=node --outdir=dist","clean":"bun -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","format":"oxfmt --write src/","prepack":"bun run typecheck && bun run build","typecheck":"tsc --noEmit","format:check":"oxfmt --check src/"},"version":"0.5.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f83b3896-6293-4bbd-af6a-fb60395f7909"}},"homepage":"https://github.com/vercel-labs/ai-cli#readme","keywords":["ai","cli","generative","image","video","audio","speech","transcription","text","ai-sdk","vercel"],"repository":{"url":"git+https://github.com/vercel-labs/ai-cli.git","type":"git"},"_npmVersion":"11.19.0","description":"The AI SDK for your terminal: generate text and media, and evaluate typed questions","directories":{},"maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@ctate.dev"},{"name":"strangle","email":"your@afterima.ge"}],"_nodeVersion":"24.20.0","dependencies":{"ai":"7.0.105","sharp":"0.35.4","@ai-sdk/gateway":"4.0.85"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","@types/bun":"^1.3.13","typescript":"^6.0.3"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-cli_0.5.2_1789841729471_0.5021455203573197"}}},"time":{"created":"2025-07-29T14:15:52.016Z","modified":"2026-09-19T18:15:29.873Z","1.0.0":"2018-09-13T11:02:45.962Z","1.0.1":"2018-09-13T11:13:19.410Z","0.0.1-security":"2025-07-29T14:15:52.190Z","0.0.1":"2025-08-05T23:47:15.061Z","0.0.2-beta.0":"2026-01-08T16:48:29.824Z","0.0.3":"2026-02-05T14:57:40.951Z","0.0.4":"2026-02-10T16:50:17.394Z","0.0.5":"2026-02-10T23:52:22.128Z","0.0.6":"2026-02-11T01:26:05.050Z","0.0.7":"2026-02-11T17:44:27.141Z","0.0.8":"2026-02-11T22:16:07.365Z","0.0.9":"2026-02-12T00:39:02.866Z","0.0.10":"2026-02-12T15:36:32.674Z","0.0.11":"2026-02-19T07:14:13.555Z","0.0.12":"2026-03-01T06:52:38.028Z","0.0.13":"2026-03-01T20:46:31.100Z","0.1.0":"2026-05-01T18:50:16.281Z","0.1.1":"2026-05-01T19:16:27.524Z","0.2.0":"2026-05-03T21:04:22.923Z","0.2.1":"2026-05-14T18:05:01.867Z","0.3.0":"2026-05-31T00:27:14.465Z","0.3.1":"2026-06-04T16:08:47.500Z","0.4.0":"2026-06-30T16:39:08.528Z","0.4.1":"2026-07-02T02:43:50.777Z","0.4.2":"2026-07-02T15:08:00.019Z","0.4.3":"2026-08-08T23:33:27.270Z","0.4.4":"2026-09-02T17:38:07.454Z","0.5.0":"2026-09-17T05:34:28.042Z","0.5.1":"2026-09-17T13:39:51.886Z","0.5.2":"2026-09-19T18:15:29.570Z"},"bugs":{"url":"https://github.com/vercel-labs/ai-cli/issues"},"license":"Apache-2.0","homepage":"https://github.com/vercel-labs/ai-cli#readme","keywords":["ai","cli","generative","image","video","audio","speech","transcription","text","ai-sdk","vercel"],"repository":{"url":"git+https://github.com/vercel-labs/ai-cli.git","type":"git"},"description":"The AI SDK for your terminal: generate text and media, and evaluate typed questions","maintainers":[{"name":"rauchg","email":"rauchg@gmail.com"},{"name":"ctate","email":"chris@ctate.dev"},{"name":"strangle","email":"your@afterima.ge"}],"readme":"# ai\n\nThe [Vercel AI SDK](https://sdk.vercel.ai) in your terminal. Generate text, images, video, and audio, and evaluate typed questions with composable commands, stdin support, and predictable outputs. Uses [AI Gateway](https://vercel.com/docs/ai-gateway) for unified access to hundreds of models.\n\n## Install\n\n```bash\nnpm install -g ai-cli\n```\n\nRequires Node.js 22+ and an [AI Gateway](https://vercel.com/docs/ai-gateway) API key or a provider-specific key (e.g. `OPENAI_API_KEY`).\n\n## Usage\n\n```bash\nai image \"a cute dog\"\nai video \"a spinning triangle\"\nai text \"explain quantum computing\"\nai audio speak \"Thanks for trying ai-cli\"\nai audio transcribe recording.mp3\nai evaluate --boolean \"refund=Refund requested?\" < ticket.txt\nai models                          # list available models\n```\n\n### Piping and References\n\n```bash\nai image \"a dragon\" | ai video \"animate this\"\nai video -i input.png \"animate this\"\nai image --image reference.png \"make a sticker in this style\"\nai image -i sketch.png -i palette.jpg \"render this product concept\"\nai text --image screenshot.png \"what is broken in this UI?\"\ncat photo.png | ai text \"describe this image\"\ncat notes.txt | ai text \"summarize this\"\ngit diff | ai text \"explain these changes\"\necho \"Ship the changelog\" | ai audio speak -o changelog.mp3\ncat recording.mp3 | ai audio transcribe\n```\n\n### Common Options\n\nGeneration commands support:\n\n```\n-m, --model <id>         Model ID (creator/model-name), comma-separated for multi-model\n-o, --output <path>      Output file path or directory\n-n, --count <n>          Number of generations per model (default: 1)\n-p, --concurrency <n>    Max parallel generations (default: 4, video: 2)\n--timeout <seconds>      Request timeout in seconds (default: text/audio 120, image/video 300)\n-q, --quiet              Suppress progress output\n--json                   Output metadata as JSON\n```\n\nWhen using `--json`, stdout contains only metadata. Generated text, image, video and audio outputs are written to files even when stdout is piped.\n\nModel IDs can be specified as `creator/model-name` or just `model-name` (resolved against models fetched from the gateway):\n\n```bash\nai text -m gpt-5.5 \"hello\"          # resolves to openai/gpt-5.5\nai image -m flux-2-pro \"a sunset\"   # resolves to bfl/flux-2-pro\nai audio speak -m tts-1 \"hello\"     # resolves to openai/tts-1\n```\n\nModel IDs must contain printable ASCII characters without spaces. This applies to both `--model` values and the `AI_CLI_*_MODEL` environment variables.\n\n### evaluate\n\nEvaluate named Boolean, Choice, and Score questions using AI SDK evaluation models:\n\n```bash\ncat ticket.txt |\n  ai evaluate \\\n    --boolean \"refund=Refund requested?\" \\\n    --choice \"team=Which team?\" \\\n    --choices \"team=billing,support\" \\\n    --score \"tone=How positive?\" \\\n    --levels \"tone=angry,neutral,happy\"\n```\n\nAll questions share one unchanged input. Text keeps its line breaks; JSON objects\nand arrays keep their shape. Each question has an explicit type and a unique ID.\nChoices and levels bind to that ID regardless of flag order. Repeat the flags to\nask more questions in the same request.\n\n- Boolean returns `probability`: P(true) from 0 to 1, including strong no answers near zero.\n- Choice returns one supplied option and its distribution when available.\n- Score returns a fractional position on ordered levels, starting at zero, and\n  a distribution when available. Jev uses the probability-weighted mean.\n\nThe command calls AI SDK's `experimental_evaluate`: stdin maps to `state`,\nand typed flags build its named `questions`. `--choices` creates a Choice\n`criteria` map; `--levels` creates a Score `criteria` array. The file form uses\nthe SDK question schema directly. Jev is the default evaluation model; other\nsupported evaluation models use the same interface.\n\nFor richer criteria, save a named question map to `triage.json`:\n\n```json\n{\n  \"refund\": {\n    \"type\": \"boolean\",\n    \"instructions\": \"Is the customer requesting money back?\"\n  },\n  \"team\": {\n    \"type\": \"choice\",\n    \"instructions\": \"Which team should handle this request?\",\n    \"criteria\": {\n      \"billing\": \"Payments, charges, and refunds\",\n      \"support\": \"Other requests\"\n    }\n  },\n  \"impact\": {\n    \"type\": \"score\",\n    \"instructions\": \"How much is the customer prevented from using the product?\",\n    \"criteria\": [\"Cosmetic issue\", \"A workaround exists\", \"Unusable; no workaround\"]\n  }\n}\n```\n\n```bash\nai evaluate --questions triage.json < ticket.json\nai evaluate --boolean \"refund=Refund requested?\" < ticket.txt |\n  jq -e '.answers.refund.probability >= 0.9'\n```\n\nQuestion files support string, JSON object, or array instructions and descriptions;\ndescriptions may also be `null`. Boolean criteria optionally describe `true` and\n`false`; Choice criteria are an option map; Score criteria are ordered levels.\nThere is no implicit rubric. Model-specific limits are enforced by the SDK and provider.\nInline comma-separated choices use each label as its name and description.\nUse a file for labels containing commas or separate names and descriptions.\nFiles and inline questions can be combined; duplicate IDs are errors.\n\n```text\n--boolean <id=question>    P(true) question (repeatable)\n--choice <id=question>     Categorical question (repeatable)\n--choices <id=a,b,...>     Choices for the named question (repeatable)\n--score <id=question>      Ordered-score question (repeatable)\n--levels <id=low,...,high> Score levels for the named question (repeatable)\n--questions <path>        JSON file of named typed questions\n-m, --model <id>          One evaluation model (default: typesafe-ai/jev)\n--input <format>          auto, text, or json (default: auto)\n--provider-options <path> JSON object of provider names to option objects\n--max-retries <n>         Transient-error retries, including 0 (default: 2)\n--timeout <seconds>       Evaluation deadline including retries (default: 30)\n```\n\nOutput is always JSON on stdout; no `--json` flag is needed and no files are\ncreated. Output is the JSON-serialized SDK result: `answers`, `usage`, `warnings`,\n`response`, and optional `rounding` and `providerMetadata`. Fields and values\nare preserved; score indices refer to your supplied criteria.\nNative confidence is distinct from option probability and stays in provider\nmetadata. Missing distributions or confidence are not synthesized.\nUsage has `inputTokens`, `outputTokens`, and `totalTokens`; unknown values\nare omitted, and known zeros remain zero. `response` retains model information,\nprovider headers and body when available, and an ISO timestamp. Use shell `time`\nfor elapsed command time.\n\nStdin is buffered through EOF. Auto mode tries one complete JSON value, then\ntext. Malformed JSON-looking input fails; use `--input text` for literal logs.\nJSON state must be a string, object, or array. Empty stdin and binary input fail;\nexplicit empty JSON objects, arrays, and strings are valid. To read JSONL as a\nshared array, use `jq -s . tickets.jsonl | ai evaluate --questions triage.json`.\nProvider context limits apply; input and questions are never silently split or truncated.\n\nValid evaluations exit `0`, including false and uncertain answers. Input errors,\nprovider failures, timeouts, and invalid answers exit `1` with no partial JSON.\nApply thresholds, sorting, and routing in your code; `jq -e` above owns its exit status.\n\nAsk small, focused questions with complete instructions and meaningful criteria.\nQuestion IDs are for your code and are not instructions to Jev. Questions in one\ncall are independent; use follow-up calls for dependencies. Use `ai text` when\nyou need prose, explanations, or code. Typed output does not guarantee correct judgments.\n\nSupply the context each question needs, including a reference date for questions\nabout \"today\"; the CLI does not add the current date. Keep exact arithmetic,\ncounting, age cutoffs, and date comparisons in code. TypeSafe documents\n[numeric and date limitations in Jev 1.13](https://docs.typesafe.ai/model-jaggedness/jev-1.13).\nAdding context can clarify a question without making the model a reliable calculator.\nValidate questions and probability thresholds against positive and negative examples,\nincluding quotations and negations. A high probability can still be a wrong judgment.\n\nRequires `AI_GATEWAY_API_KEY` with access to the evaluation provider. Override\nthe default with `AI_CLI_EVALUATION_MODEL` or `-m`; `-m jev` resolves to\n`typesafe-ai/jev`. Discover models with `ai models --type evaluation`.\n\nSee [Evaluate](https://ai-cli.dev/docs/evaluate) for the complete interface.\n\n### image\n\n```\n-i, --image <path-or-url> Reference image path or URL (repeatable)\n--size <WxH>             Image size (e.g. 1024x1024)\n--aspect-ratio <W:H>     Aspect ratio (e.g. 16:9)\n--quality <level>        Quality (standard, hd)\n--style <style>          Style (vivid, natural)\n--no-preview             Disable inline image preview\n```\n\nReference images can be local paths, `file://` URLs, `http(s)://` URLs or data URLs. You can repeat `--image` to pass multiple references, and you can still pipe one image through stdin:\n\n```bash\ncat input.png | ai image -i style.png \"combine the subject with this style\"\n```\n\nReference-image support is model-dependent; unsupported models may reject image inputs.\n\nGemini image models (e.g. `google/gemini-2.5-flash-image`) don't support `--size`; use `--aspect-ratio` instead.\n\nQuiver Arrow image models generate SVG. Their output is saved as an `.svg` file; inline terminal previews are rasterized with a 512-pixel long edge on a white background.\n\n### video\n\n```\n-i, --image <path-or-url> Image input path or URL\n--aspect-ratio <W:H>     Aspect ratio (e.g. 16:9)\n--resolution <WxH>       Video resolution (e.g. 1920x1080 for 1080p)\n--duration <seconds>     Duration in seconds\n--no-preview             Disable inline video frame preview\n```\n\nImage inputs can be local paths, `file://` URLs, `http(s)://` URLs or data URLs. Video generation accepts one input image, provided either through `--image` or piped stdin:\n\n```bash\nai video -i input.png \"animate this\"\ncat input.png | ai video \"animate this\"\n```\n\nResolution support is model-dependent; unsupported resolutions may be rejected by the selected video model.\n\n### text\n\n```\n-f, --format <fmt>       Output format: md, txt (default: md)\n-i, --image <path-or-url> Image input path or URL for vision (repeatable)\n-s, --system <prompt>    System prompt\n--max-tokens <n>         Maximum tokens to generate\n-t, --temperature <n>    Temperature (0-2)\n```\n\nFor vision-capable text models, `ai text` accepts images from `--image` or piped stdin:\n\n```bash\nai text -i chart.png -i table.jpg \"summarize the data\"\ncat screenshot.png | ai text \"list the visible errors\"\n```\n\n### audio\n\n`audio` has two subcommands:\n\n```bash\nai audio speak \"Hello from AI Gateway\"\nai audio transcribe recording.mp3\n```\n\n#### audio speak\n\n```\n-f, --format <fmt>       Audio output format (default: mp3)\n--voice <voice>          Voice to use for speech generation\n--instructions <text>    Instructions for speech generation\n--speed <n>              Speech speed\n--language <code>        Language code (e.g. en, fr) or auto\n--no-play                Disable audio playback after generation\n--no-waveform            Disable accurate terminal waveform preview\n```\n\n`audio speak` accepts text from an argument or stdin and saves audio to `<id>.mp3` by default:\n\n```bash\nai audio speak --voice alloy \"Read this as a friendly update\"\ncat announcement.txt | ai audio speak --format wav -o announcement.wav\n```\n\nWhen using OpenAI speech models, `ai audio speak` defaults to the `alloy` voice unless `--voice` is provided.\n\nWhen `-o` points to a file with a known audio extension and `--format` is omitted, the extension selects the audio format. If both are provided, `--format` must match the filename extension.\n\nIn interactive terminals, `audio speak` plays the generated audio after saving it and shows an accurate waveform derived from decoded audio samples. Use `--no-play` to skip playback and `--no-waveform` or `--quiet` to suppress the waveform. Playback and waveform previews are skipped for `--json` and binary stdout pipeline output. WAV output is decoded directly; MP3 and other encoded formats use a local decoder when available (`ffmpeg`, `mpg123`, `sox`, or `afconvert`).\n\n#### audio transcribe\n\n```\n-f, --format <fmt>       Output format: md, txt (default: txt)\n```\n\n`audio transcribe` accepts a local path, `file://` URL, `http(s)://` URL or piped audio:\n\n```bash\nai audio transcribe meeting.mp3\nai audio transcribe https://example.com/call.wav\ncat voice-note.mp3 | ai audio transcribe -o transcript.txt\n```\n\n### models\n\n```\n[model]                  Show detailed info for a model (e.g. anthropic/claude-opus-4.6)\n--type <type>            Filter by type: text, image, video, audio, speech, transcription, evaluation\n--creator <name>         Filter by creator (e.g. openai, google)\n--json                   Output as JSON (includes descriptions)\n```\n\nAll supported model types (text, image, video, speech, transcription, evaluation) are fetched live from the AI Gateway.\n\nPass a model ID (or short name) to see its context window, max output, pricing, release date and per-provider latency, throughput and uptime:\n\n```\n$ ai models claude-opus-4.6\n\nClaude Opus 4.6  anthropic/claude-opus-4.6\nReleased 2026-02-05 · tool-use · reasoning · vision · web-search\n\n  Context      1M\n  Max output   128K\n  Input        $5/M\n  Output       $25/M\n  Cache read   $0.5/M\n  Cache write  $6.25/M\n  Web search   $10/K + input costs\n\nProviders\n  provider   context  latency  throughput  uptime\n  anthropic  1M       1.4s     49tps       99.9%\n  bedrock    1M       1.4s     56tps       99.9%\n```\n\n### Multi-Model Comparison\n\nGenerate with multiple models by comma-separating `-m`:\n\n```bash\nai image \"a sunset\" -m \"openai/gpt-image-1,xai/grok-imagine-image,bfl/flux-2-pro\"\n```\n\nCombine with `-n` to generate multiple per model:\n\n```bash\nai image \"a sunset\" -n 2 -m \"openai/gpt-image-1,bfl/flux-2-pro\"   # 4 images total\n```\n\n### Inline Preview\n\nWhen running in a terminal that supports the [Kitty graphics protocol](https://sw.kovidgoyal.net/kitty/graphics-protocol/) (Kitty, Ghostty, WezTerm, Warp, iTerm2), generated images and videos are displayed inline automatically. Image formats returned by models are preserved on disk and converted to PNG for terminal previews when needed. SVG previews use a 512-pixel long edge and an opaque white background. Video previews decode an H.264 keyframe from the midpoint of the video using [openh264](https://github.com/cisco/openh264) compiled to WebAssembly — no native dependencies required. `audio speak` can also play generated speech and render a terminal waveform after saving. Use `--no-preview` for image/video previews, `--no-play` or `--no-waveform` for audio previews, or set `AI_CLI_PREVIEW=1` to force visual previews on in undetected terminals.\n\n### Output Behavior\n\n- **evaluate**: the SDK evaluation result as JSON on stdout, including typed answers, usage, provider metadata, and response information\n- **text**: saves to `<id>.md` (interactive), stdout when piped\n- **image/video**: saves to `<id>.<format>` / `<id>.mp4` (interactive), preserving the image format returned by the model, raw binary stdout when piped\n- **audio speak**: saves to `<id>.mp3` (interactive), raw binary stdout when piped\n- **audio transcribe**: saves to `<id>.txt` (interactive), stdout when piped\n- **`-o <dir>`**: saves inside the directory with auto-generated names\n\nWhen the CLI needs to choose a filename, it uses a response id when available and falls back to a random 8-character id.\n\n### Environment Variables\n\n| Variable | Description |\n|---|---|\n| `AI_GATEWAY_API_KEY` | AI Gateway authentication key |\n| `OPENAI_API_KEY` | Provider-specific key (or other provider keys) |\n| `AI_CLI_TEXT_MODEL` | Default text model (overrides `openai/gpt-5.5`) |\n| `AI_CLI_IMAGE_MODEL` | Default image model (overrides `openai/gpt-image-2`) |\n| `AI_CLI_VIDEO_MODEL` | Default video model (overrides `bytedance/seedance-2.0`) |\n| `AI_CLI_SPEECH_MODEL` | Default speech model (overrides `openai/tts-1`) |\n| `AI_CLI_TRANSCRIPTION_MODEL` | Default transcription model (overrides `openai/whisper-1`) |\n| `AI_CLI_EVALUATION_MODEL` | Default evaluation model (overrides `typesafe-ai/jev`) |\n| `AI_CLI_OUTPUT_DIR` | Default output directory for generated files |\n| `AI_CLI_PREVIEW` | Set to `1` to force inline image preview, `0` to disable |\n| `NO_COLOR` | Disable ANSI color output |\n| `FORCE_COLOR` | Force color output even when not a TTY |\n\nThe `-m` flag always takes priority over `AI_CLI_*_MODEL` env vars. The `-o` flag always takes priority over `AI_CLI_OUTPUT_DIR`.\n\n### Timeouts\n\nRequests that exceed the timeout are aborted automatically:\n\n| Command | Timeout |\n|---|---|\n| `evaluate` | 30 seconds per evaluation request |\n| `text` | 120 seconds |\n| `image` | 300 seconds |\n| `video` | 300 seconds |\n| `audio speak` | 120 seconds |\n| `audio transcribe` | 120 seconds |\n\nUse `--timeout <seconds>` to override the default for `text`, `image`, `video`, `audio speak`, `audio transcribe`, or `evaluate`. The value must be a positive integer. For example, `ai image --timeout 600 \"a detailed sprite atlas\"` allows the request to run for up to 10 minutes.\n\n### Exit Codes\n\n| Code | Meaning |\n|---|---|\n| `0` | Success |\n| `1` | Invalid input or request failure; all generations failed |\n| `2` | Partial generation failure (some succeeded, some failed) |\n\n## License\n\n[Apache-2.0](LICENSE)\n","readmeFilename":"README.md"}