{"_id":"@opperai/cli","_rev":"42-5b3c91105ffee715a0b7f3f2ee6f4365","name":"@opperai/cli","dist-tags":{"latest":"0.1.42"},"versions":{"0.1.0":{"name":"@opperai/cli","version":"0.1.0","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.0","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"a7047546cabe81547074eb575815b68a6dfe1706","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.0.tgz","fileCount":163,"integrity":"sha512-64Nhx8nObScPJVIfnuOEbfjbzfAJE2YI6laOG2d6PyASSU2S6KUJ7HeX4h5dk0n0Br4vmlEt4VSOe8bINI+saw==","signatures":[{"sig":"MEUCICnqlEHpVc3YhcQNh4n18ICKN4eYV7qtV6/gdUQeJEqoAiEA5UpHb+v5ydmSGNx+XTTijGVbQvQK/GdkOJd31V3gGhU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":476200},"type":"module","engines":{"node":">=20.12"},"gitHead":"f59125b709769178098756c3dc435d6aa51f7608","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"joch-opper","email":"johnny@opper.ai"},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.12.1","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"25.9.0","dependencies":{"yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.0_1777364847335_0.8992437324856093","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@opperai/cli","version":"0.1.1","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.1","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"1af2a7e79c218560a31475063dee95a6105accfa","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.1.tgz","fileCount":159,"integrity":"sha512-W1/cfasqzQNfoewEVecbMFDPz2eyt8M0TWcbnZt1cMYzlSXT0z5dAXAEkbbRpMz7r4fScqxh9/JiBZr5fhrC7w==","signatures":[{"sig":"MEQCIQClrfol+lxFR2id/nLaWuXZ0muwmbYgsltESlLnqA321AIfRBaAg65A+3qYowPjzrCj5qJChRb2N92JhkAYepiVEA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":485613},"type":"module","engines":{"node":">=20.12"},"gitHead":"0e16ad25ada8ea26b9d6a70a7a79a63fc45f12f7","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.11.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.14.1","dependencies":{"yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","update-notifier":"^7.3.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0","@types/update-notifier":"^6.0.8"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.1_1777376701189_0.34852781411001854","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@opperai/cli","version":"0.1.2","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.2","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"62b1128f8de75495afc7f5b41ff53f2c88dd1541","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.2.tgz","fileCount":161,"integrity":"sha512-WbPwDRrQi+b+aXCmxZp65XsulhROttnYcYZUNqkhHbvSTU50f0zoM7fNYZyS85wInsgr/Zi2Jbe8+/nabs6oFg==","signatures":[{"sig":"MEUCIQC16TrGY3hhe+2L+nVDe6bRM4qWixwuQL5c6dg2D60nmgIgdzfI47suoGV75R/yiz6SDfL2GPn5oH+2EtUK/954lF0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":492098},"type":"module","engines":{"node":">=20.12"},"gitHead":"c8469d2c177c7addd44d439ae9304482822ab4d0","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.11.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.14.1","dependencies":{"yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","update-notifier":"^7.3.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0","@types/update-notifier":"^6.0.8"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.2_1777378962088_0.22298640066522313","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@opperai/cli","version":"0.1.3","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.3","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"4118dc4bdf25e771329b5ae14f94c958093c9e2e","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.3.tgz","fileCount":158,"integrity":"sha512-+ZfGyMo/i5uVPXDNuYCXkm7azmONBXiQOKrOtua/k9CamgIx/FVE+hrwL4rupj9/RSLupSS/R9EFE+YBvMyJ2g==","signatures":[{"sig":"MEQCIEwmADByCXB4Z5hGTN3BnmH7LiHl5UNlBRox+WamZKf/AiBGP4ZV/GURlZJ0Zax0Umf6iuZvbBoZtUS93uArbv2N+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":485624},"type":"module","engines":{"node":">=20.12"},"gitHead":"77f19870b2239c55d4dc6699ee13e4d5145c831c","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.11.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.14.1","dependencies":{"yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","update-notifier":"^7.3.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0","@types/update-notifier":"^6.0.8"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.3_1777382399877_0.513021708436217","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@opperai/cli","version":"0.1.4","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.4","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"05769d207adf4d3472dd1e181622f996c8aabe17","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.4.tgz","fileCount":158,"integrity":"sha512-G5oqU3NNmkb0ZZcy6j4uJ7Za0c/xzPurHwFaZJICaMmjCJhUv7LfYV3tkypPs2oiGBlBYlPyjEu1/EiwJNXRww==","signatures":[{"sig":"MEYCIQC/D1OpdWOHG8OK1QVH+PIzaCXpNrP9tpsIfad2Cmq/QwIhAIASy0QfKPwgaRqp3j9EWXzDivVJKkUCzArih+VYO/XS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":491098},"type":"module","engines":{"node":">=20.12"},"gitHead":"3d501ea27f67af97c118d11e6303ae82fc6bc55b","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.12.1","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.15.0","dependencies":{"yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","update-notifier":"^7.3.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0","@types/update-notifier":"^6.0.8"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.4_1777385340414_0.20480067970300508","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@opperai/cli","version":"0.1.5","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.5","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"86f10eeabd37549a5da3f0e3570f9ffebb8b0dd4","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.5.tgz","fileCount":124,"integrity":"sha512-Vv0owNBFZmeCZcw9Rt1aYASfhmjPhelnMni2h7OxQQqIS/aNzYzp6XgTJRV007rlHz+fgDCMaUpafK64yHOZfA==","signatures":[{"sig":"MEUCIAfk/jDijgC4RImVOVV2DsxTK3+CuGGdUDum7LPGdoJaAiEAxhmgf3eHnUL734GTAGb1/RsOfeRqS2y6QZqJjtCAwPI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":284444},"type":"module","engines":{"node":">=20.12"},"gitHead":"1c917fa3566f478c1efbc63257763b120894b05d","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.11.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0","update-notifier":"^7.3.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0","@types/update-notifier":"^6.0.8"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.5_1777466730416_0.5123422112478409","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@opperai/cli","version":"0.1.6","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.6","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"9e951ad421bf2711cff1a28d0d6adf5a72cfcca1","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.6.tgz","fileCount":126,"integrity":"sha512-S/br+syVQtvlj2d+ChU83lAvlpWpjBCnd/Fc8D+AeQ0wzA6oWYGQ3OQCdHgo3CSd0jXAm+Ku4pK4dHXUAqz6FQ==","signatures":[{"sig":"MEQCIA8ETXnhnWbLooMLNmaOJjpmStPOXK7O7sKpNd71QquVAiAef28pnr3bJpLCdQnPUe9zrOGYMydSai9tLbxWs/rlZw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":294059},"type":"module","engines":{"node":">=20.12"},"gitHead":"36474c0a0c9ea13cd8860664f95078b44d2222e0","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.11.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0","update-notifier":"^7.3.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0","@types/update-notifier":"^6.0.8"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.6_1777473035934_0.5437415241345518","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@opperai/cli","version":"0.1.7","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.7","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"f3b4c75664e7e442dae3fa8d5b9661015690343e","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.7.tgz","fileCount":128,"integrity":"sha512-aI/HypbN1if/Xx1Bwd0qJBqHo532RvCabkQPD1iJLLExOvFKqt3H0mmv+8WkTl7E5uyH/0qkU7rocRGoj/iH/g==","signatures":[{"sig":"MEUCIQCNkYArpUwjvZN3kPbQt6lo03Nn9/1eOylH6xEZpMv0JQIgX0xhodWIJ/g10vsblbhfGS7eL8V/9f0JQPe4JMfbiwY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":302811},"type":"module","engines":{"node":">=20.12"},"gitHead":"32889d80a980404b33c02e612b24c213c5bb0741","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.11.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.7_1777537629501_0.9452857729972874","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@opperai/cli","version":"0.1.8","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.8","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"405c7b9b20848e5a90ce6817336cb9917887cf1f","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.8.tgz","fileCount":128,"integrity":"sha512-cdq1M2PaZPIeSj9h7gwb0AxdqJLmPiUr4xvEABmoFH0zNS+VFlLIaJGhq4uu9pWN0EDDeA2eSH6/IJ+J3gnTsw==","signatures":[{"sig":"MEUCIQDbXLf4XvGywdgAovUtAGESYUgrYh0PxWOd0oTsDn6IZQIgYlhOcVfIGEGElFSALiJlC+hCZcpnEsfg7HXlfiV91nE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":300678},"type":"module","engines":{"node":">=20.12"},"gitHead":"2e8a0a262cdcef7f40ff045529b7f5ee3cf81c70","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.11.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.8_1777896382083_0.9212848697640263","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@opperai/cli","version":"0.1.9","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.9","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"5b8c0d63b45da41ea625a639fb4f7182eca7c1a9","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.9.tgz","fileCount":128,"integrity":"sha512-orfc/AkrNnsQqzGD3pqT6DpZNt+2xR/dYXAn2+lo8xzU+eCP2/zDNLHSwLn/PVKBrcDxKDg0EfVwyH2+LwK5qg==","signatures":[{"sig":"MEQCIHzcMkhVOzGmKQF+OhLY0fZDQyFZjFXVjPNsDARUgV2bAiBWFkHKO4fINDowNsx5ZcWlklyUP8dnOHMZbhKmrhd4lA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":299998},"type":"module","engines":{"node":">=20.12"},"gitHead":"4826230f7722da945304d3ba380fbd305e279dbf","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.11.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.9_1777904277216_0.22490353751915815","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@opperai/cli","version":"0.1.10","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.10","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"98017511b17ec3aeeaeb828c99e99dc75e65c1e6","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.10.tgz","fileCount":128,"integrity":"sha512-RDGXyz47IHNga6JLqw9VYeQ6u86BRk5ATOO4I3sKZwfcBtcjIQ9eEHN8ZwUYffvG9F6zsA/Kft2V0b8B3H9t+g==","signatures":[{"sig":"MEUCIB1pRIb6hbmGwH2MYu787/x7Xxhmfdt2oGWFTYoGlGWaAiEAtxbufqzjRGysVMdnGi4GSbdie8p8IVh//cRgArnD+vw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":301626},"type":"module","engines":{"node":">=20.12"},"gitHead":"48e1e30c3d4e4a7957130a3fd6e6b16907503d87","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.11.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.10_1777968889729_0.5726783782479152","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@opperai/cli","version":"0.1.11","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.11","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"2ee8254091c868c704db59a0f90c68eb11d81bb5","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.11.tgz","fileCount":130,"integrity":"sha512-FmNs2+8HlFJfd3n9Iy01PU/fXR1rmOK9ECJh1Xzk8nI8ELTrrzS3ck1gvihRK0xeLTqzuiJElWGDYKCV5DHVow==","signatures":[{"sig":"MEQCICj2VO94EBlweEv9f2zHvge0K8iJLQojxkOiS0ukSQVBAiAKrUY2sZjmdAiSzApDdFNUUGtF3Ty+kxPnzFORBuHFhQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":332587},"type":"module","engines":{"node":">=20.12"},"gitHead":"a6c125f168e56a17ed6d75e570fb208ef01b076c","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.11.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.11_1777987986949_0.9447570456647623","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@opperai/cli","version":"0.1.12","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.12","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"81bb5a3bdf1ba8122387d7af65e93d15bfaea8d0","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.12.tgz","fileCount":130,"integrity":"sha512-0Q+dWBub5UybAUebgIkBcwp/wugFitL5PN5SmhtRkT/BepVE4QcIcGosnv8bxErj3vPQybE0fN/SsKxF3gbuxA==","signatures":[{"sig":"MEQCIArTSUUrW2nbJVYM12VISnMCl+sHJrjNx5oubECotw4cAiBJRvUMvcby8puGm8qMSSO4Uvl90usoEs2QbULc4CWhgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":332704},"type":"module","engines":{"node":">=20.12"},"gitHead":"99d70df4bb3f502fad726276197b684c3dafaf1c","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.11.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.12_1778143650278_0.5030433115339406","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@opperai/cli","version":"0.1.14","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.14","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"dbb5ed9421ea0dc216bf73192f38c394da67281c","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.14.tgz","fileCount":132,"integrity":"sha512-IEejZr71He3A0LrrC/kzqlF3tb2bus9hpNkOQNXkeaqrR2+W7NjILxXemRbD7kU3E+D6Zu5R2aoYv3hgHlQE2w==","signatures":[{"sig":"MEUCIQDzD+2iOh4FjoMkx6UIgnmAuWurz52MoWu/k8bouI14TAIgcsN1auOOCK4mRXYcqjxPgnLk/4BDvbPq+6hT4h2jyvs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":337778},"type":"module","engines":{"node":">=20.12"},"gitHead":"737f05e1f4a6f1b5227c43c836214aeae51007d4","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.11.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.14_1778150346225_0.37451446205745853","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@opperai/cli","version":"0.1.15","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.15","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"734b0ebd3c6cec2f7d2df36b4f1c71bd123a354d","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.15.tgz","fileCount":132,"integrity":"sha512-h6C6LzTEmNNMub+H1ysNe4XR0B2oyyWrtPOn46FUtdczEx9l7LfTzRLQUsvljzmxR473gGJPqLAere0lIRyQHw==","signatures":[{"sig":"MEYCIQCD5w4JkALvtwl7LStKdGnbgpXMBLIu8MXyaTcJXmRzKQIhAOHNPmVQmmwL/ZkrM/Bob/TSquqPw8KgJOD6Iz9LAo0h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":340746},"type":"module","engines":{"node":">=20.12"},"gitHead":"61c3e9e87849412a4ac1b17ec149b8bacd23a75f","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.11.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.15_1778154241107_0.30739940826510637","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@opperai/cli","version":"0.1.16","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.16","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"073382b2de06bf2bd1e27c837e0d1435b482912c","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.16.tgz","fileCount":134,"integrity":"sha512-eZKCEBxB3Eva1/zn+rXQj+4yo0gbmxXLzztCanH72TsLCumqpT/Jubss9dXSu11e4nBNpwSkrQMyErfv8vxiHw==","signatures":[{"sig":"MEQCIAqz1hBSYGT1DrJHi+/AvHMFFfnU06ucrgqCIeHzZzxUAiBLYlJS5TOSNT6xwAq67CRExEBJY+Tfvsp7bHIiKNsgNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":345495},"type":"module","engines":{"node":">=20.12"},"gitHead":"b3bf727219f1c4e182b52fc9e48cf208bcdaee55","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.11.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.16_1778154398458_0.4878656046037597","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@opperai/cli","version":"0.1.17","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.17","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"7453f41f6923c8c6cb95a60560a8f443dcbc7df0","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.17.tgz","fileCount":136,"integrity":"sha512-VH12/CYbz0Ib+PT/LFS++SQ1ICZ+asM4sx2fLtG08QQlIgb9IEnuuHJp5gkei04K6hOZY8O7Z4k62PunZtlFqg==","signatures":[{"sig":"MEUCIEDJQifYZBAudgkXPty+Geq7dvKpNNhwt5Pt7RyE3pJdAiEAk7Vv7wl2ax81X2WGPZgv979MO1RcT8c58+aFFK+VdDI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353341},"type":"module","engines":{"node":">=20.12"},"gitHead":"d081d77c431d3c198c55f81fc8bcf7c09cd3235a","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.11.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.17_1778160459339_0.7218376592741045","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@opperai/cli","version":"0.1.18","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.18","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"d3fc57d15078cf13618b5d68e40e12a7a9007d44","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.18.tgz","fileCount":136,"integrity":"sha512-4aXCSVPgfzUB3pqejzQ9lpg3EAAUBCDIxtgycULiXAIyQezj1PlNaoZHHUDBUErWCs4szAYzVsTp0HUWZlxrtQ==","signatures":[{"sig":"MEUCIQCzqZXHvMky74KLvZGSIt5xyIDYS2I4KLz8LS2esDbfaAIgamkAdYozC190Ir3yVz4WYvgj5koQOCvyWyma/AwQYZU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353702},"type":"module","engines":{"node":">=20.12"},"gitHead":"718db1199f0aadd4c03a2517aadc30a3038338df","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.11.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.18_1778164980400_0.20507904761987117","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"@opperai/cli","version":"0.1.19","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.19","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"52d5f08d665d5cec478770ccaa74329e2fd44e9c","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.19.tgz","fileCount":136,"integrity":"sha512-C2Af0uFOH9BSD7jV5LyYiuFllPAzdev4WnCnmS6MyMFJdGPPx43dA+DBYy6BG3vHqV9y0/BeKl0HKpu1qymwJA==","signatures":[{"sig":"MEUCIQCOsSyUQiqSDwbjYf22Edekp5+AAHlQgdw3asNBOlDnPgIgKA2Nzm1DBsmtbQQktLx8t7H6yXtshVTvrz9d6GjJRAY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":358004},"type":"module","engines":{"node":">=20.12"},"gitHead":"5b1b289e81fdf6989dc63be69e313edbc622d769","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.11.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.19_1778229904155_0.84956581109411","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"@opperai/cli","version":"0.1.20","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.20","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"6fa216e524a9f00503a4c6ebeee8b5a63b5c4d86","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.20.tgz","fileCount":138,"integrity":"sha512-9bhNjGg8wHY2Oe684bAuPK1g47UbdpywDkXgEbNntdc6CRj7YGOh1yvHuVChTNNifiNQh9Nf9FaCU63KQxMktg==","signatures":[{"sig":"MEUCIBVlGrKg8RNY/CBbFRmytgvbXPvlXxtZSitRPcrmSZQjAiEA2iFwKj5kYW9xY7GjtfzeO5RWHAymO9l5yvpp0Sfesdw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":380673},"type":"module","engines":{"node":">=20.12"},"gitHead":"eed09ef658ee6d24b2c6da978dedd760b6a20dde","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.11.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.20_1778237916284_0.8883299577537007","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"@opperai/cli","version":"0.1.21","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.21","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"fd29c21da2536d8578a5b22d606dc4ad42740606","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.21.tgz","fileCount":142,"integrity":"sha512-7snnBUWP6LSEVH6Q1LTQTdc/1RRNtBrXdvjMcBstUdynIEAL+5cQW0V03mXlGVNG77brrV9SseQS+DASDhMFPw==","signatures":[{"sig":"MEUCIA2u0aT/nl3RMa/00n8uyt/ra/lcIOoNt366vKcfBCdeAiEAoF0IIa7dcxf+yXgI//TSYdJebTBZUxZU7yREvTbn0l0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":401038},"type":"module","engines":{"node":">=20.12"},"gitHead":"f9a7645160e34d23c5eaecb27b9837d38fb6004b","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.11.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.21_1778484943892_0.9048254629252726","host":"s3://npm-registry-packages-npm-production"}},"0.1.22":{"name":"@opperai/cli","version":"0.1.22","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.22","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"8e50b8153c905e44b00d07d0dacc91f235c8b2e7","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.22.tgz","fileCount":142,"integrity":"sha512-CXk1XpZ6agqiTUUQXPRoHGj7WZxh0XV2D2q7RdDE7RP23lA1MR86Tfclfhkww1NXpZdTbBFt622IRpz2BvTVOQ==","signatures":[{"sig":"MEQCIEoQgYCwVlpyV7+yR/oU0DCTZKCYB+MJASued/zFZIroAiAY2gQvbB9gUDh7EXqq3/K5PiUkXaow2QEqP3rO1xp+mw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":401011},"type":"module","engines":{"node":">=20.12"},"gitHead":"604a1e5a6950ebb5f910c9b3c5266100b0407a51","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.11.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.22_1778485578590_0.13547686233086753","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"@opperai/cli","version":"0.1.23","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.23","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"7fc9b647c727abfdd9acbd988e112869bb6aa70d","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.23.tgz","fileCount":144,"integrity":"sha512-mIZfsYHZomTTTzzrkLLWK75gK3jGtX2i3AAwyorMKf+i6zWA5LSjK9N0CysrwCJPkwWdfdgZWKSBiYbuEhikag==","signatures":[{"sig":"MEQCIESYdBHM0hzkLLc31CGa2bAZCkbD6KlStz5pHHL9h6I+AiAuNZLtNN5TSBk8mQw474/DbRZHyedtf08pqnCVA44zhw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":405302},"type":"module","engines":{"node":">=20.12"},"gitHead":"f018575d82d30582205adbb491d8ae90f33515f4","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.13.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.23_1781531208078_0.9982714870223597","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"@opperai/cli","version":"0.1.24","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.24","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"4df960db8871351b618bf9332ac2780fc350b218","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.24.tgz","fileCount":144,"integrity":"sha512-abZiBYN4hT95iX206aITUlN8ULkIfZxysUAvjgP4nlPpW0kEb5r1kR/xu+MlPLDrlO/njgWm3nQMHkEjz0W+NA==","signatures":[{"sig":"MEUCIQD0PoGaOPcJQTVZ8vXfHYzHOnCculruZZ1U0wu1Hx8EVwIgauwUDfz/uvj0/W+j0s0BlJKfTsRoztGHv+QfYQnz0jg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":409530},"type":"module","engines":{"node":">=20.12"},"gitHead":"8c937d83813fa1e56a47e42022bd97c4097c417e","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.13.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.24_1781624843886_0.884961227643009","host":"s3://npm-registry-packages-npm-production"}},"0.1.25":{"name":"@opperai/cli","version":"0.1.25","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.25","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"974e5054f47c1bac24c8bddddb90824c8d299c5d","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.25.tgz","fileCount":145,"integrity":"sha512-8AmAOT1rQsXN4fVUfnqKIqisIK8YeOPBwipH+NdeCE3qY4bGEkKTAO054JGcrlbtD1AJPMOVl7w5HX1bYfKPcQ==","signatures":[{"sig":"MEUCIDNwRiz2JU9FDv06DraNdb5/lMvsWZQByeASEmWrUlkIAiEA49gYEDI3APrSLh9UYxczNLYbsJTKET9fOjR5iPn2y5c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":417051},"type":"module","engines":{"node":">=20.12"},"gitHead":"ae0438d8c5371322fe9ccd692b04bc393079bb80","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.13.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.25_1781629030838_0.5821497040558397","host":"s3://npm-registry-packages-npm-production"}},"0.1.26":{"name":"@opperai/cli","version":"0.1.26","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.26","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"0d8c8a8999467f0db3488108394c9f82475bd8ce","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.26.tgz","fileCount":145,"integrity":"sha512-go3XLQJCFmyBC0CflN/kd4eUoQXp2UZ27EZ+psQVfJZqTAS4vYw14uT7bV3NBrEjBcvyRGUesze10HXmjR93+Q==","signatures":[{"sig":"MEQCIC3dcWGnoOUv7dj7GCeArPKdgOgq385RljDvvCet7npfAiBBGC1VQUe1yskpFqvzP8HoECujWxT56rZbcoUANjlj3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":421236},"type":"module","engines":{"node":">=20.12"},"gitHead":"f41f410820e308c3db648d303d7e7abed44aa464","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.13.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.17.0","dependencies":{"zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.26_1782913047975_0.3675502890890714","host":"s3://npm-registry-packages-npm-production"}},"0.1.27":{"name":"@opperai/cli","version":"0.1.27","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.27","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"bd930ff99b721b19ee2be7d398d05dbd4c9be388","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.27.tgz","fileCount":155,"integrity":"sha512-U3Fd/kQ2/TabYv9kzL1MXWaZsjggPDeS55l0I+xL7WdRv4EpLzHNzf1d/lby5j0f1hL7dhVpaSQIUVjKfGkOfQ==","signatures":[{"sig":"MEUCIE0t5Fj0HCOQG8f66jjgmaA37Uoy6Hayv3lqig0nWXgFAiEAydM29X/JtSo9DaKx2lwHii1AVvxCUkFBgL9+xPzYuYE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":465554},"type":"module","engines":{"node":">=20.12"},"gitHead":"6b43cbef6525f6dee7a9b8b499f061ad615e1e63","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.16.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.27_1782978803396_0.25525563758004255","host":"s3://npm-registry-packages-npm-production"}},"0.1.28":{"name":"@opperai/cli","version":"0.1.28","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.28","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"5f99ba60a6b4a98184d6393b68a876771d967140","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.28.tgz","fileCount":155,"integrity":"sha512-7Z9zA2F1EcTarJvIBg+4MJ3D71US8+w1u0DtEjGHOs7w/wQCBos0cvXDZk8pj6CvnOifKqP4qludYq/1XUc8FA==","signatures":[{"sig":"MEUCIQCz0Wl3IVKx9AbWZxi8Hu7yMbUKHhB2bP/NqcQBPV1aMwIgEbMQZ1KaQjFOwdiN5ZHSjb4Nz7LSm3yZMpsPzhX/+qc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":467664},"type":"module","engines":{"node":">=20.12"},"gitHead":"5edc08fe4a9e33cacb25f72d48f80e3fb360d93b","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.16.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.28_1783085989560_0.4325864239833963","host":"s3://npm-registry-packages-npm-production"}},"0.1.29":{"name":"@opperai/cli","version":"0.1.29","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.29","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"7861f78c015bb5552f17c930c8a74845588fa919","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.29.tgz","fileCount":151,"integrity":"sha512-QEB+YOatbNnp9RoaHAlI5Ix/Fm8SPZaIK37bnFonMO9CxMbZk1HIIhq5XrmNtMQIOmxHFNDldsjgT7cxdHZOWA==","signatures":[{"sig":"MEQCIC6FEC1yG9Jty7jff9sc8EcJNjnogfkpjvVlJyAH+cptAiBD+Q5/zcjisFBdiuf4QCb9sRI82EUgvviytkwE61x9tw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEmfx2zRX6bMTTbnGiaY0kKmRiBkGazQdwW5eGQnhcWgAiEA9FPRRxacbbr35+ieuWzORUs/mGf03WkcFJru148zGfs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":450381},"type":"module","engines":{"node":">=20.12"},"scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"opperai-admin","email":"accounts+npm@opper.ai"},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.4.2","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"22.15.0","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.2.7","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.29_1787921916094_0.46733386115551023","host":"s3://npm-registry-packages-npm-production"}},"0.1.30":{"name":"@opperai/cli","version":"0.1.30","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.30","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"1619617204cf10b34a3a071074b087e5130fa5e7","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.30.tgz","fileCount":151,"integrity":"sha512-VywhQWimy13zlXfJHZSV+ONCTdLQ68/+t1l/DUs7A3FtQn+QvnGnymziepWeyJBc/2kdMS3+K4KjEas6UHhPwA==","signatures":[{"sig":"MEYCIQCAG8/CaSqmbc22NHWe9cXKKfGC5Q+wG89e0u0p6LnNYgIhAMbMRFt5I8DRJUp9w6ExlDtjUsi0cxBPDkqu0WkWwk5v","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIC8nPl6Elq/ApycyhteiUE+GXGqvfJM+8uuSfVUNZzvCAiBnuCZn30Yjjxu0BV/w7ZgAGOh/NZ8+iucQ9Zo/JSxDeA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":456179},"type":"module","engines":{"node":">=20.12"},"gitHead":"56e5c2a35fc05d551eaf375b03ecc650d8f35c8f","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.17.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.2.7","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.30_1788441023685_0.47681981474324453","host":"s3://npm-registry-packages-npm-production"}},"0.1.31":{"name":"@opperai/cli","version":"0.1.31","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.31","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"e1e6ec47e6702dd2c7d58d974996dfcdbd48b3e1","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.31.tgz","fileCount":151,"integrity":"sha512-cfJbQCihiSA/lO3F82Z/B3UG6TYQqTcYgZdFtCJUPrMhmcflF1P2ssrwN5CYu/c7tUwKLiQvD8e9LC+8acFoCg==","signatures":[{"sig":"MEQCIBttpmvTSboXnRhjCtvt14WV7eNJ39pZ90s/O56wUh2vAiAbNZGfFPo0GbPDubhOQS84UkIm5T56CtDoR7cx1hZBXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGCW6FJidE6g2NIRYZjxWMTPUyB19Tm3qV5mstKX3HsQAiAbiYsf+6dDR7cUd89HtRmZ3Tb/K7Bp2vF77jti2a4LRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":457586},"type":"module","engines":{"node":">=20.12"},"gitHead":"dbc81b648a10a328b96e77a41233d9ebe68c3f11","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.19.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.2.7","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.31_1789025602751_0.12708993953000158","host":"s3://npm-registry-packages-npm-production"}},"0.1.32":{"name":"@opperai/cli","version":"0.1.32","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.32","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"5b4fd223d4958822ae9cf8bad493377e7e9d5482","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.32.tgz","fileCount":153,"integrity":"sha512-1VRoO3agJGYtM25pugU7QRgm7yMyj9EF06c1KI1S0F5u5NaLACUVf5RKoqQiCgTBl6JWWgOn4tK3rZcB6N5dJg==","signatures":[{"sig":"MEQCIHwmXGY+9M4SBUoFMIxr3Wfry8d8e6f7iX8jcSAwFFuzAiA99URTan1AUqDOcMLwnjyi0Ye7CemaMwLqFl8kYbzVbQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCMbWVB/jowZjUXKMR6Zvd9uu8ciQD46M6Sm5mVrskqhwIhAJbLJIUDv27ScRZjsJDSZLOUfYHvqAw4hmUcGv4pdnE2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":471749},"type":"module","engines":{"node":">=20.12"},"gitHead":"d3d426a5b96beb4d307232199735e43459ad33cf","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.19.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","jsonc-parser":"^3.3.1","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.2.7","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.32_1789061580227_0.21693578092943677","host":"s3://npm-registry-packages-npm-production"}},"0.1.33":{"name":"@opperai/cli","version":"0.1.33","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.33","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"b308a76110c73d7975f34a70a2e4c31fb19d4034","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.33.tgz","fileCount":153,"integrity":"sha512-EMuHxMa11PyiuDZcJNGtdX4HWPvghRYy50OUFWX2I2SfvBvzOxOJC82qopAXvK3bwjbHKjEH7BZjHvOZvdPl5A==","signatures":[{"sig":"MEUCIBAz7+Tyskabc560Z+ewu6fLO9L66hHgTDZkkc5d8aRRAiEA+JcP4FQxnDnZ8247comRZVdOUPsjDb7JQeZZ3eMFGjU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDDkrfn0eYE0Cc8Li/G1nail7vgbwGKWk0XANRecoN41AiAQucckFeDgMO7hQxIY7CjQmxfhe+7Fl2NlNvzkQ+q9gQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.33","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":472381},"type":"module","engines":{"node":">=20.12"},"gitHead":"2807170d351bf9efd549c347df9e4a9dd56fc8f0","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.19.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","jsonc-parser":"^3.3.1","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.2.7","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.33_1789063377573_0.12107429460795571","host":"s3://npm-registry-packages-npm-production"}},"0.1.34":{"name":"@opperai/cli","version":"0.1.34","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.34","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"c2e4471568016da2544aa9a6de314228e03a420f","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.34.tgz","fileCount":159,"integrity":"sha512-JpS2416n7EZvsoKDb+mCSLY5372hYUsqKFgQOyRPpZoGd90kTqZWFMtj7irYrt3xXBInTSxsEdjz49qOnxsSig==","signatures":[{"sig":"MEUCID/9JINtOaXMsbMLyd8UBxE2PmP/wl2UjiWkKeiRZ/mKAiEAkV9PRdjsa/4GZb9WdNIPBZrHfz8KdQ7mzChjtHkC0ps=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDZwk4jGmqwCw72fMWhLMHKA/Cxzi5xta+yTuTXVJik6wIhAPK53pcwssd9gZD7m6I6pyYTJ4ZcNukuKr3p28cF5NRD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.34","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":524076},"type":"module","engines":{"node":">=20.12"},"gitHead":"c1e5ce90e63fb650d5b2315920937a905ccd90fa","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.19.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","jsonc-parser":"^3.3.1","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0","toml-eslint-parser":"^0.10.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.2.7","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.34_1789065817859_0.557333747049376","host":"s3://npm-registry-packages-npm-production"}},"0.1.35":{"name":"@opperai/cli","version":"0.1.35","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.35","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"6e7cc326cd7c3380ff51335e96672221fe4b5b96","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.35.tgz","fileCount":159,"integrity":"sha512-TDLlEvg4ZZn5czK75b4+SixM/QjuS5+2OF6+GnwZFFQpONK+iepSpGuIOlE9UmZFeIa10RO3B9MBSURMxnxlCg==","signatures":[{"sig":"MEUCIAQKBK4tC0wBCbirAIOBWnmPq8xmUBtzipKlmH3Hstc4AiEAqm0z+emwglY65y/eV6bXu2xTtWwWpRb+w9PoT9vORkg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFDfi8hK59OeN3XYR67cDlBt9QGMkHdY+s6k/+uG5xSUAiEAhDgKFTOf/wLi/O0p47OQWjjwEmzf9cXkMftqjmVi7eM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.35","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":529075},"type":"module","engines":{"node":">=20.12"},"gitHead":"dc1a79e3435b22fee64503563c3d4c6dab955f2b","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.19.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","jsonc-parser":"^3.3.1","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0","toml-eslint-parser":"^0.10.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.2.7","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.35_1789464843788_0.6377681412210219","host":"s3://npm-registry-packages-npm-production"}},"0.1.36":{"name":"@opperai/cli","version":"0.1.36","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.36","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"2e4939250ff1b31f5a7786749973a9f1c7b124f2","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.36.tgz","fileCount":159,"integrity":"sha512-EH80Q7jZU/BhBBEbCE+OjHH4DFMGrMDWtsHeoATQcL+Aczxo/Go377CB+zORsRbZUdeJOuQr74z/ci4I+/+o+w==","signatures":[{"sig":"MEYCIQDSmAvjPz96NbRjKpXYWO3lSzbIEy0rkDh1uU8S4fVG+wIhAJG6gR/YZw+4Vo902dr9UZ6qzLegGxu3EcKZKH/aI87E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHF5BkzdRspiRAtPNHPOrVjHB1EzFKt5V3kYv4yZBB6PAiBQCr23iH93Mrm9jjFOPxByTTiqfLYo0G0wumXkmXNLWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.36","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":530302},"type":"module","engines":{"node":">=20.12"},"gitHead":"9646d0238dcf60843789ee4463ea333ae0318af3","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.19.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","jsonc-parser":"^3.3.1","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0","toml-eslint-parser":"^0.10.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.2.7","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.36_1789722385389_0.5166328429577671","host":"s3://npm-registry-packages-npm-production"}},"0.1.37":{"name":"@opperai/cli","version":"0.1.37","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.37","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"23c0085290cd32d54ad7bd5cb29a10927059aaa2","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.37.tgz","fileCount":171,"integrity":"sha512-tibcOneFQiURx45/GF/QQcyF16tqg43brXprxgAyP9e0CqfGfETYFVS9M1Jj7jgWh/PK5OuF55Bc5w8TG+HXcQ==","signatures":[{"sig":"MEUCIBqM/HFHyPRB0oAM1r1CLu2BWCdAhKumE44eGQ5EQE4XAiEA4pFn8LDIj9h/2eGdjWl0rFyfoX/SC74kIdkYaG9QKds=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGz6H+XFfeL/l+EWSD5D0osSK3SV14AOtaFdmBGi009GAiBV0ugiVL3V4Y6ddTP86UCdsvvHa3VWOT2UlGptAP5Tgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.37","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":620120},"type":"module","engines":{"node":">=20.12"},"gitHead":"020a936dde5d33532c145f347968e3133d72e97d","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.19.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","jsonc-parser":"^3.3.1","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.0","@opperai/agents":"^0.8.0","toml-eslint-parser":"^0.10.1","@modelcontextprotocol/client":"2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.2.7","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.37_1789733825782_0.7546367616220551","host":"s3://npm-registry-packages-npm-production"}},"0.1.38":{"name":"@opperai/cli","version":"0.1.38","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.38","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"051bf29d5c258406582b6017299a5ffae3e18edb","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.38.tgz","fileCount":174,"integrity":"sha512-MibupI0fS4pfULq0wJqeCRtnNA7xQCYl6xceodE/L/9+tbYMDfGRLQb3BXqb1LBIoQQyzWDZCyYj3Boi7XPIGw==","signatures":[{"sig":"MEUCIFyF1F+QspCyrU93RPhG+NpUeOkLiGijpoKKtPCbxOrHAiEA2EbNgeGfM0fp/YOGpGYrztKkAItaBjSjjIpM7RDITtk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAgUWfKCas8XfTMPLFjwT8+gN2MAy+el4fdBA1AGNzPzAiEA/KT44YSgFtx1KAvq7CR1ASqrzBa/jxu6dgh3WP2FwO8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.38","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":649312},"type":"module","engines":{"node":">=20.12"},"gitHead":"c932750b6eedb521a965aa0b8b2dcdedc5144cfb","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.19.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.21.0","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","jsonc-parser":"^3.3.1","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.1","@opperai/agents":"^0.8.0","proper-lockfile":"^4.1.2","toml-eslint-parser":"^0.10.1","@modelcontextprotocol/client":"2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.2.7","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^20.11.0","@types/proper-lockfile":"^4.1.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.38_1790756216876_0.32239917056916334","host":"s3://npm-registry-packages-npm-production"}},"0.1.39":{"name":"@opperai/cli","version":"0.1.39","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.39","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"c79611aec8e0388e989eb6ae6fed71c43a4c173d","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.39.tgz","fileCount":191,"integrity":"sha512-xCp8wceMJ5gj4YEn/hsDpVsf1JYtwp4YB5G/C7sc2xprZVi0C8vUFQnD8D5opfSzuZrS61rhijJ41ebNRapOWA==","signatures":[{"sig":"MEYCIQC2UgzJhTnoYZqb2ijT04y3LTO/Iv3g2zsfPCCEZ/nkFgIhAImkrf1lgxKZQTcW5bkyUrfCGIRxK3BXZxivMhs1BU9B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGckJxqiLhNfAivE1UHqsRNMeNOOmjEBdJhSlh5tJDHZAiBE/fC/uv4h2yuQZkDtZryl4DcCSEDTLcYXHru+AMLmzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.39","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":694158},"type":"module","engines":{"node":">=20.12"},"gitHead":"eebdaca80da26ea42177bac95b80f1d1489600bf","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.19.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.21.0","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","jsonc-parser":"^3.3.1","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.1","@opperai/agents":"^0.8.0","proper-lockfile":"^4.1.2","toml-eslint-parser":"^0.10.1","@modelcontextprotocol/client":"2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.2.7","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^20.11.0","@types/proper-lockfile":"^4.1.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.39_1790867208189_0.3873815736043522","host":"s3://npm-registry-packages-npm-production"}},"0.1.40":{"name":"@opperai/cli","version":"0.1.40","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.40","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"5bd9506dc3e9e1fbb61de7e3efc9755e5d122bea","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.40.tgz","fileCount":191,"integrity":"sha512-hFpIyaDBp+deKYBhFgyYCStfJUQHz2R289ItxRvj+/2zJCWymQ3xAZlKlf24T53ctRDZSk/gWqs6+I5icG2xOg==","signatures":[{"sig":"MEUCIFoRTcx14Mw0vc3LUOfBnfD4MyJFjLpLbho1wY0Y0tiIAiEA/nyPVWrMermtuLq0oaH+7HXowIIGhmrQOVlQAj0Yo7c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCBfhLbH8FGHd2FH1TkhczcE/dvBeeKiv+849FGHgBrrwIgMlCSsLRYfp3oP06/nxBDrUKfUoPrVULLxnnyyL2zGXo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.40","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":694259},"type":"module","engines":{"node":">=20.12"},"gitHead":"54d79d0232da77fcf3a6c69554bcb37aef63abd6","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.19.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.21.0","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","jsonc-parser":"^3.3.1","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.1","@opperai/agents":"^0.8.0","proper-lockfile":"^4.1.2","toml-eslint-parser":"^0.10.1","@modelcontextprotocol/client":"2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.2.7","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^20.11.0","@types/proper-lockfile":"^4.1.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.40_1790872267592_0.6073250607795893","host":"s3://npm-registry-packages-npm-production"}},"0.1.41":{"name":"@opperai/cli","version":"0.1.41","keywords":["opper","cli","ai","llm"],"license":"MIT","_id":"@opperai/cli@0.1.41","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"homepage":"https://github.com/opper-ai/cli#readme","bugs":{"url":"https://github.com/opper-ai/cli/issues"},"bin":{"opper":"dist/index.js"},"dist":{"shasum":"2a86f7e3881d61a198d4965c5245f23b6fef1b18","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.41.tgz","fileCount":195,"integrity":"sha512-wLlsMtZFZUexmRWvohqqD2EAnRl9U0xAMHbof+bCGqd1h8jJIVnq+q8OoMw0BJCDRcjNoRXs3xvjPyYM+T8Kzg==","signatures":[{"sig":"MEUCIQD4+0lhqorX04kEyxg8Q+IqjWN35ZOHFopOy7dPGd5grQIgIKbAtpMSnfINV/lIWTWMk5Qpc6COfBUzxQ9rXhA4/w4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCzhaWetEdkx4lCyzobQ8+mHvtiq+eiRuDpsendFVD/bwIhAO9cG7I1tKRpfNM/ONxJpukBNwXLNnfYHNnmeY5ssrAv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.41","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":752757},"type":"module","engines":{"node":">=20.12"},"gitHead":"336d6416c8bfcabadd7f424b96bae596ab79f1f6","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.19.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"_nodeVersion":"24.21.0","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","jsonc-parser":"^3.3.1","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.1","@opperai/agents":"^0.8.0","proper-lockfile":"^4.1.2","toml-eslint-parser":"^0.10.1","@modelcontextprotocol/client":"2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.2.7","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^20.11.0","@types/proper-lockfile":"^4.1.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.41_1790886544874_0.21744624791456335","host":"s3://npm-registry-packages-npm-production"}},"0.1.42":{"_id":"@opperai/cli@0.1.42","bin":{"opper":"dist/index.js"},"bugs":{"url":"https://github.com/opper-ai/cli/issues"},"dist":{"shasum":"1395215c942f31c1207e73de24b65ef9ea0ba08e","tarball":"https://registry.npmjs.org/@opperai/cli/-/cli-0.1.42.tgz","fileCount":197,"integrity":"sha512-tmhazIGnBAJ6dmjLEeWsmQWS4qh7WQOLBQmS9Jasc95WFNI+F5SlAR59kQ5OwNzq+gdc1MTcgBQqQlHDMZJ+eA==","signatures":[{"sig":"MEQCIBgpR+mFRNBOCQk/cXmqDSevVkT+uyfGWpSuX+yGkDB4AiB3HVelZyAdT/Hy7guW5oaHdPhtz5H3dnCMWPuTH93zcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAcgHD+l1GpFQGr4DaFAkgjqqZo/BJxffQcyvOLnpTYIAiEAmCwj1g2phfCdmedOIlYokQPkdHSARhOzZN96hGbwHyI="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opperai%2fcli@0.1.42","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":758187},"name":"@opperai/cli","type":"module","engines":{"node":">=20.12"},"gitHead":"3022b5455196f1945414a3f61f373e3c3c013ca0","license":"MIT","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"version":"0.1.42","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"1a6c84bc-9d4e-4cdf-847c-59a6fe7d57cf"}},"homepage":"https://github.com/opper-ai/cli#readme","keywords":["opper","cli","ai","llm"],"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"_npmVersion":"11.19.0","description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","directories":{},"maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"_nodeVersion":"24.21.0","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","yaml":"^2.8.2","kleur":"^4.1.5","commander":"^12.1.0","jsonc-parser":"^3.3.1","@clack/prompts":"^1.0.0","@opperai/login":"^0.4.1","@opperai/agents":"^0.8.0","proper-lockfile":"^4.1.2","toml-eslint-parser":"^0.10.1","@modelcontextprotocol/client":"2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.2.7","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^20.11.0","@types/proper-lockfile":"^4.1.4"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cli_0.1.42_1790965176206_0.7460528675508753"}}},"time":{"created":"2026-04-28T08:27:27.271Z","modified":"2026-10-02T18:19:36.652Z","0.1.0":"2026-04-28T08:27:27.488Z","0.1.1":"2026-04-28T11:45:01.372Z","0.1.2":"2026-04-28T12:22:42.258Z","0.1.3":"2026-04-28T13:20:00.017Z","0.1.4":"2026-04-28T14:09:00.623Z","0.1.5":"2026-04-29T12:45:30.572Z","0.1.6":"2026-04-29T14:30:36.089Z","0.1.7":"2026-04-30T08:27:09.634Z","0.1.8":"2026-05-04T12:06:22.287Z","0.1.9":"2026-05-04T14:17:57.371Z","0.1.10":"2026-05-05T08:14:49.860Z","0.1.11":"2026-05-05T13:33:07.127Z","0.1.12":"2026-05-07T08:47:30.431Z","0.1.14":"2026-05-07T10:39:06.526Z","0.1.15":"2026-05-07T11:44:01.272Z","0.1.16":"2026-05-07T11:46:38.626Z","0.1.17":"2026-05-07T13:27:39.478Z","0.1.18":"2026-05-07T14:43:00.563Z","0.1.19":"2026-05-08T08:45:04.322Z","0.1.20":"2026-05-08T10:58:36.440Z","0.1.21":"2026-05-11T07:35:44.031Z","0.1.22":"2026-05-11T07:46:18.776Z","0.1.23":"2026-06-15T13:46:48.220Z","0.1.24":"2026-06-16T15:47:24.028Z","0.1.25":"2026-06-16T16:57:11.042Z","0.1.26":"2026-07-01T13:37:28.134Z","0.1.27":"2026-07-02T07:53:23.548Z","0.1.28":"2026-07-03T13:39:49.697Z","0.1.29":"2026-08-28T12:58:36.172Z","0.1.30":"2026-09-03T13:10:23.783Z","0.1.31":"2026-09-10T07:33:22.867Z","0.1.32":"2026-09-10T17:33:00.297Z","0.1.33":"2026-09-10T18:02:57.682Z","0.1.34":"2026-09-10T18:43:37.962Z","0.1.35":"2026-09-15T09:34:03.885Z","0.1.36":"2026-09-18T09:06:25.549Z","0.1.37":"2026-09-18T12:17:05.889Z","0.1.38":"2026-09-30T08:16:56.995Z","0.1.39":"2026-10-01T15:06:48.384Z","0.1.40":"2026-10-01T16:31:07.704Z","0.1.41":"2026-10-01T20:29:04.973Z","0.1.42":"2026-10-02T18:19:36.320Z"},"bugs":{"url":"https://github.com/opper-ai/cli/issues"},"license":"MIT","homepage":"https://github.com/opper-ai/cli#readme","keywords":["opper","cli","ai","llm"],"repository":{"url":"git+https://github.com/opper-ai/cli.git","type":"git"},"description":"The official Opper CLI — authenticate, route agent inference, and manage the Opper platform","maintainers":[{"name":"gsandahl","email":"goran@opper.ai"},{"name":"opperai-admin","email":"accounts+npm@opper.ai"},{"name":"jose-opper","email":"jose@opper.ai"},{"name":"joch-opper","email":"johnny@opper.ai"},{"name":"farouqaldori","email":"farouq@gonimble.net"}],"readme":"# @opperai/cli\n\nThe official Opper CLI — authenticate, route AI agent inference through Opper, and manage the Opper platform from your terminal.\n\n## Install\n\n```bash\n# Global (recommended)\nnpm i -g @opperai/cli\nopper --help\n\n# Or one-shot via npx\nnpx @opperai/cli login\n```\n\nThe package installs an `opper` binary on PATH. Once installed, every command is just `opper <…>`.\n\n> **Heads up:** if you previously installed the legacy Go CLI (`brew install opper-ai/oppercli/opper`), uninstall it first — both ship the `opper` binary and PATH order decides which one runs:\n>\n> ```bash\n> brew uninstall opper\n> ```\n>\n> The interactive menu also surfaces a warning when both are detected.\n\n## Quickstart\n\n```bash\nopper login            # OAuth device flow\nopper whoami           # confirm the active slot\nopper agents list      # see which agents you can launch\nopper launch claude    # route Claude Code through Opper\n```\n\nRun `opper` with no arguments for an interactive menu (Account · Ask · Agents · Skills · Opper). The menu also offers quick-launch shortcuts for any agent that's already installed and configured.\n\n## Authentication\n\nRuntime auth state lives in `~/.opper/config.json` as a list of \"slots\", each holding an API key, a base URL, and the user metadata returned by the device flow. Use `--key <slot>` on runtime commands to pick which slot to read from (defaults to `default`). Private key creation below uses its own browser authorization instead.\n\n| Command | Description |\n|---------|-------------|\n| `opper login [--force] [--renew] [--base-url <url>]` | OAuth device flow; stores into the active slot. `--renew` requests a replacement key after fresh browser approval. |\n| `opper logout [--all] [--yes]` | Clear credentials for the active slot, or every slot. |\n| `opper whoami` | Show the authenticated user for the active slot. |\n| `opper config add <name> <api-key> [--base-url <url>]` | Manually store an API key in a slot. |\n| `opper config list` | List configured slots. |\n| `opper config get <name>` | Print the raw API key (for scripting). |\n| `opper config remove <name>` | Delete a stored slot. |\n| `opper config project <name> [uuid]` | Set a default resource project for a slot; omit the UUID to clear it. |\n\nKey resolution at request time: `OPPER_API_KEY` env var > the slot named by `--key` (or `default`).\nAn environment key uses `OPPER_BASE_URL` or the production API root; it does not\nborrow a stored slot's host, expiry, organization, or resource project.\n\nOrganization personal agent credentials have no project binding. Inference,\nmodels, project discovery, and usage work at organization scope without a target.\nPass the global `--project-uuid <uuid>` flag to target a project explicitly. Functions, indexes,\nnamed calls, and SDK `ask` require an explicit project or a resource default.\nTraces without a target use the organization's projectless trace group; a\nconfigured resource default also applies to trace commands. Resource defaults\nnever apply implicitly to inference or agent launches.\n\n```bash\nopper projects list                            # names and UUIDs in this organization\nopper projects list research                   # filter by name or UUID\nopper --project-uuid <uuid> functions list\nopper config project work <uuid>\nopper --key work functions list\nopper --key work launch opencode                  # organization inference\nopper --key work --project-uuid <uuid> launch opencode\n```\n\n`projects list` uses the selected key's organization and ignores resource defaults\nand `--project-uuid`; listing projects does not change the active resource target.\n\nRenewal replaces server credential metadata. The resource default is retained\nonly when the renewed credential has the same verified organization and API host.\n`launch --project` still selects local agent configuration; `keys create --project`\nstill chooses the project for a manually created application key.\nClaude Desktop and the VS Code Copilot setup cannot send the project header and\nreject explicit targets. Codex Desktop supports targets, but requires a stored\nslot so Finder launches can refresh it; unset `OPPER_API_KEY` before setup.\nCopilot uses a saved key slot for in-session renewal; unset `OPPER_API_KEY`\nand launch with `--key <slot>`. An explicit `--project-uuid` remains the\nrequest target through renewal.\n\nThe browser flow also stores the server-issued credential ID, organization ID,\nand expiry when available. `opper whoami` shows that expiry. An expired slot\nstarts renewal on the next `opper login` or `opper launch`; `opper login --renew`\nrequests renewal early. `--force` repeats authentication but is not a rotation\ncommand. Renewal requires an Opper server that supports agent-login renewal and\na client registered for that policy. Failed renewal leaves the old local slot\nuntouched. Keys without an expiry keep their current behavior.\n\n## Agents\n\n`opper launch <agent>` starts a supported AI agent with its model traffic transparently routed through Opper. Pass-through args after the agent name go straight to the agent's CLI. Terminal agents run inside a fresh Opper **session** so every call the agent makes is grouped together for tracing and cost — see [Routing through a session without the CLI](#routing-through-a-session-without-the-cli) to wire that up by hand. After the session, the CLI prints a summary with duration, model, and a traces link. The usage summary uses the same key and API host as the launched session. If the usage request fails, it reports “Usage unavailable”; the rollup-delay hint is reserved for successful requests with no usage rows. Summary failures do not change the agent’s exit code. Desktop integrations use persistent gateway configuration.\n\n```bash\nopper agents list                # NAME / DISPLAY / KIND / STATE / CONFIG / COMMAND\nopper launch claude              # Anthropic Messages shape → /v3/session/<id>/v1/messages\nopper launch claude-desktop      # rewire Claude Desktop (GUI) → /v3/compat (persistent GUI profile)\nopper --key prod launch codex-desktop --model claude-sonnet-5\nopper launch copilot             # native picker, /opper-login, /opper-usage\nopper launch opencode            # OpenAI Chat Completions shape → /v3/session/<id>/chat/completions\nopper launch codex               # OpenAI Responses shape → /v3/session/<id>/responses\nopper launch hermes              # OpenAI Chat Completions shape → /v3/session/<id>/chat/completions\nopper launch openclaw            # OpenAI Chat Completions shape → /v3/session/<id>/chat/completions (background gateway)\nopper launch pi                  # OpenAI Chat Completions shape → /v3/session/<id>/chat/completions\n\n# Anything after the agent name is forwarded to its CLI — handy for\n# scripting / cron with non-interactive flags.\nopper launch pi -p \"summarise this PR\"\nopper launch claude --resume\n```\n\n| Agent | Slug | How Opper plugs in |\n|-------|------|--------------------|\n| Claude Code | `claude` | `ANTHROPIC_BASE_URL` / `ANTHROPIC_AUTH_TOKEN` env vars |\n| Claude Desktop | `claude-desktop` | writes a third-party-inference (`deploymentMode: \"3p\"`) profile into `~/Library/Application Support/Claude-3p/` (macOS) / `%LOCALAPPDATA%\\Claude-3p\\` (Windows); quits and reopens the GUI app to apply |\n| GitHub Copilot CLI | `copilot` | temporary provider registry and local bridge; no global configuration |\n| OpenCode | `opencode` | provider block in `~/.config/opencode/opencode.json` |\n| Codex CLI | `codex` | per-invocation Responses provider and model overrides; preserves shared configuration and supports current native profile files |\n| Codex / ChatGPT desktop | `codex-desktop` | configures local Codex tasks on macOS with a persistent Responses provider, selected-key credential helper, and live Opper model catalog |\n| Hermes | `hermes` | isolated `HERMES_HOME=~/.opper/hermes-home/` so your real `~/.hermes/` is never touched; `OPENAI_API_KEY` env var |\n| OpenClaw | `openclaw` | `opper` provider entry in `~/.openclaw/agents/main/agent/models.json`; `opper launch openclaw` defaults to `gateway start` (background daemon) |\n| Pi | `pi` | `opper` provider entry in `~/.pi/agent/models.json` (added/removed idempotently next to your other providers) |\n\n`opper launch <agent> --install` runs the upstream agent's installer if it's missing (where supported). Claude Desktop is GUI-only on macOS/Windows and has no scripted installer — install it from <https://claude.ai/download> first.\n\nThe CLI also offers a per-agent submenu (`opper` → Agents → *agent* → Launch with model…) that lets you pick a specific Opper model from the catalog instead of the default. Claude Desktop's picker is restricted to Claude-backed routes because its third-party gateway rejects non-Anthropic models; the generated profile defaults to Claude Opus 5 and also includes Sonnet 5, Haiku 4.5, and Fable 5.1.\n\nFor OpenCode, each launch fetches `/v3/compat/models` using the same key and API host as the launched session, including when you select a different slot with `--key`. The generated model map and whitelist limit Opper's picker entries to the returned models supported by the CLI. These settings also apply at runtime so an older project configuration cannot restore removed entries or override the launch URL. Unrelated inline `OPENCODE_CONFIG_CONTENT` settings are preserved. Inherited inline authorization headers are removed. Before updating the Opper provider, launch checks OpenCode's merged settings and stops if provider or allowed-model authorization headers could override the selected key. Existing JSONC configuration files are edited narrowly so unrelated settings and comments survive setup and launch; malformed files are left unchanged with an error.\n\nIf the allowed list is empty, OpenCode has no Opper models to select. If the authenticated catalog request fails, launch stops before changing configuration; it does not substitute the bundled catalog. `opper editors opencode` also writes a whitelist when it fetches models; use `--overwrite` to refresh an existing Opper provider block.\n\nFor Claude Code, use version **2.1.257 or later**. `opper launch claude` starts on Opus 5 and enables gateway model discovery, adding the Claude models available to your Opper key to Claude Code's `/model` picker. Claude Code keeps its built-in choices and filters discovered IDs to those containing `claude` or `anthropic`; Opper enforces model access on each request. Discovery refreshes at startup, so restart after changing your Opper model rules. If discovery fails, Claude Code can fall back to its cached or built-in list. Nonessential traffic stays disabled, which also disables Claude Code's automatic updates during these launches; update Claude Code separately before a demo.\n\n```bash\nopper launch claude --model claude-sonnet-5\nopper launch claude --model claude-fable-5-1\n# Request the full context window supported by these models:\nopper launch claude --model 'claude-opus-5[1m]'\n```\n\nThe Opper routing and credential apply only to the launched process. Claude Code can still save model selections and its discovery cache; use the picker's session-only selection to keep your existing default. See [Claude Code's gateway compatibility guide](https://code.claude.com/docs/en/llm-gateway-protocol#model-discovery) for discovery and client-version behavior.\n\nTo remove an agent's Opper integration without uninstalling the agent itself:\n\n```bash\nopper agents remove claude-desktop   # works for any registered adapter\n```\n\nThis is the non-interactive equivalent of the menu's \"Remove Opper integration\" action. It clears Opper-owned config (e.g., flips Claude Desktop's `deploymentMode` back to `\"1p\"`, removes the `opper` provider block from OpenCode / Pi / OpenClaw, etc.) without touching anything you put there yourself.\n\n### Codex / ChatGPT desktop on macOS\n\nInstall the app with local Codex support from [ChatGPT downloads](https://chatgpt.com/download). The bundled Codex runtime must be version 0.153.4 or later. The separate ChatGPT Classic app is not supported.\n\n```bash\n# Configure and open the app with the selected stored key and model\nopper --key prod launch codex-desktop --model claude-sonnet-5\n\n# Configure without launching (also available in the Agents menu)\nopper --key prod agents configure codex-desktop --model claude-sonnet-5\n\n# Restore the previous provider, model and catalog\nopper agents remove codex-desktop\n```\n\nIf the app is already running, the CLI saves the configuration and reports that a restart is required. Quit and reopen the app, then create a new **local Codex task**. Existing tasks keep their provider. This integration covers local Codex tasks; ordinary ChatGPT conversations and cloud tasks are separate.\n\nSetup refreshes the model picker from the selected key's authorized, tool-capable Opper catalog, using the same API root as inference. Run the launch or configure command again to refresh the catalog or change keys/models. Models without confirmed tool support are excluded.\n\nThe effort slider uses each model's advertised reasoning levels. Pools offer only levels supported by every permitted member; models or pools without confirmed effort metadata keep the slider disabled. Rerun configure and restart the app to refresh an existing installation's effort choices.\n\nCodex's built-in web search is disabled while this integration is enabled: its default cached-only search relies on an OpenAI service that Opper cannot reproduce across model providers. The previous search setting is restored when removing the integration. File tools and sub-agents remain enabled.\n\nWith the default `~/.codex` home, the app reads the selected slot through a local credential helper, so it also works when opened from Finder. The API key stays in the Opper credential store. Rotating that slot's key is picked up when Codex refreshes credentials; deleting the slot stops future credential retrieval. If the slot's API host changes, rerun setup before using it.\n\nConfiguration is stored in `~/.codex/config.toml` (or `CODEX_HOME`) and helper/catalog/backup files in `CODEX_HOME/opper-desktop/`. Because Codex CLI and the desktop app share this configuration, plain `codex` also sees these defaults. `opper launch codex` supplies its own provider/model and disables built-in web search per invocation, without changing saved settings. Explicit native `--model` or `--profile` choices take precedence over the launcher's default model; current profiles are separate `NAME.config.toml` files.\n\nUse `--codex-home <path>` on desktop configure, launch, and removal to select a separate Codex home. The option takes precedence over `CODEX_HOME`, which remains supported; otherwise the default is `~/.codex`. Setup changes only the selected directory. Ordinary Finder launches still use `~/.codex`; they do not inherit the shell environment. Configure prints a launch command preserving your custom home, key, model, and API root. Use that command for subsequent launches (and after quitting an already-running app). Opper does not change global macOS launch settings.\n\n```sh\nopper --key prod agents configure codex-desktop --codex-home \"$HOME/.codex-opper-test\"\nopper --key prod launch codex-desktop --codex-home \"$HOME/.codex-opper-test\"\nopper agents remove codex-desktop --codex-home \"$HOME/.codex-opper-test\"\n```\n\nA separate Codex home isolates Codex settings and task data. It does not by itself start a second desktop app instance or isolate the app's Electron profile.\n\nRemoval restores previous defaults and preserves unrelated settings, comments, and deliberate model changes made afterward. If the generated provider was edited independently, removal reports a conflict and retains the backup. Symlinked config files are refused before writing; use `--codex-home <path>` to keep a dotfile-managed configuration intact. Restart the app after removal.\n\n## Routing through a session without the CLI\n\nFor terminal agents, `opper launch` mints a session id and points the agent's inference base URL at a **session-scoped** Opper endpoint, then lets the agent's own SDK speak its native protocol on top. You can wire this up by hand with any OpenAI-, Responses-, or Anthropic-shaped client — no CLI required. Desktop integrations use persistent `/v3/compat` configuration and do not get a per-launch session.\n\n### The endpoint\n\n```\nhttps://api.opper.ai/v3/session/<session-id>[/<tag>:<value>…]/<native-path>\n```\n\n- **`<session-id>`** — a stable id of the form `sess_<uuid>` (e.g. `sess_3c0a79fd-e8e1-49c5-bc19-62ddd85f00c7`). Reuse the same id for every call in one logical run to group them into a single session. The server validates the format — an id that doesn't start with `sess_` is rejected with `400 {\"error\":\"invalid session id\"}`.\n- **`<tag>:<value>`** — optional attribution tags, added as extra path segments (e.g. `/team:growth/env:prod`). URL-encode values; keep keys to `[A-Za-z][A-Za-z0-9_.-]*` and avoid the reserved `opper.` prefix.\n- **`<native-path>`** — whatever path your client's SDK already appends. It also selects the compatibility shape:\n\n| Client speaks | SDK appends | Full session URL |\n|---|---|---|\n| OpenAI Chat Completions | `/chat/completions` | `…/v3/session/<id>/chat/completions` |\n| OpenAI Responses | `/responses` | `…/v3/session/<id>/responses` |\n| Anthropic Messages | `/v1/messages` | `…/v3/session/<id>/v1/messages` |\n\nIt's the same behaviour as the `/v3/compat/...` endpoints, just scoped to a session: the `/v3/session/<id>` prefix takes the place of `/v3/compat`, and the native tail still picks the wire shape.\n\n### Auth\n\nStandard Opper bearer token, identical on every shape:\n\n```\nAuthorization: Bearer $OPPER_API_KEY\n```\n\n(Anthropic SDKs default to `x-api-key` — set `Authorization` explicitly, or use `ANTHROPIC_AUTH_TOKEN`.)\n\n### Example — a raw call, no CLI\n\n```bash\nSID=\"sess_$(uuidgen | tr '[:upper:]' '[:lower:]')\"\n\ncurl -s \"https://api.opper.ai/v3/session/$SID/chat/completions\" \\\n  -H \"Authorization: Bearer $OPPER_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"openai/gpt-4o-mini\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"Hello\"}]\n  }'\n```\n\nThe response is an ordinary chat completion, with `cost`, `usage`, and a `meta.trace_uuid` for the call. Every request you send to the same `$SID` — any model, any wire shape — lands in that one session.\n\n### Point a client at it\n\nSet the client's base URL to the session endpoint (without the native path — the SDK adds that) and use your Opper key. How you set it depends on the client:\n\n**Env-var clients** — any OpenAI-compatible SDK, and env-var-driven agents like Claude Code, read the base URL from the environment:\n\n```bash\nSID=\"sess_$(uuidgen | tr '[:upper:]' '[:lower:]')\"\n\n# OpenAI-compatible SDKs / clients\nexport OPENAI_BASE_URL=\"https://api.opper.ai/v3/session/$SID\"\nexport OPENAI_API_KEY=\"$OPPER_API_KEY\"\n\n# Claude Code (Anthropic-shaped)\nexport ANTHROPIC_BASE_URL=\"https://api.opper.ai/v3/session/$SID\"\nexport ANTHROPIC_AUTH_TOKEN=\"$OPPER_API_KEY\"\n```\n\n**Config-file agents** — OpenCode, Hermes, Pi, and OpenClaw don't read those env vars; they take the base URL from their own provider config (`opencode.json`, Hermes' `base_url`, `~/.pi/agent/models.json`, …). Point that provider's base URL at `https://api.opper.ai/v3/session/<id>` and use your Opper key.\n\nEither way, that is exactly what `opper launch` does for you — plus a fresh id per run and an end-of-session cost summary.\n\n## Ask — built-in support agent\n\n`opper ask \"<question>\"` runs an Opper agent grounded on the locally-installed Opper skills (see below). Useful for \"how do I…\" questions about the platform, SDKs, or the CLI itself.\n\n```bash\nopper ask \"how do I create an index?\"\nopper ask --model claude-opus-5 \"compare the v2 and v3 APIs\"\n```\n\nThe answer streams in, then prints a token / request count. Requires Opper skills to be installed first (`opper skills install`).\nIt uses a named SDK function. With an organization personal key, select a\nresource project using `--project-uuid` or `opper config project`.\n\n## Skills\n\nOpper skills are markdown documentation packs the CLI uses for grounding `opper ask` and that you can install for any compatible code agent. The CLI delegates to the upstream `skills` tool, which fetches from [opper-ai/opper-skills](https://github.com/opper-ai/opper-skills) and symlinks into your agents' skill paths (`~/.claude/skills/`, etc.).\n\n```bash\nopper skills install     # `npx skills add opper-ai/opper-skills` — interactive picker\nopper skills update      # refetch the latest from the source repo\nopper skills list        # per-target install matrix\nopper skills uninstall   # remove + clean up legacy bundled-copy installs\n```\n\n## Editor integrations\n\n```bash\nopper editors list\nopper editors opencode [--global|--local] [--overwrite]   # configure inference without launching\nopper editors opencode --login-bridge                 # one-time setup for plain opencode\nopper editors opencode --remove-login-bridge          # remove only the managed plugin\n```\n\nOpenCode is a coding agent; its inference setup remains under `editors` for\ncompatibility. Use `opper launch opencode` to run it with inference through Opper.\n\nFor a plain `opencode` command that works after the CLI exits, sign in once and\ninstall the optional global login bridge:\n\n```bash\nopper login\nopper editors opencode --login-bridge\nopencode\n```\n\nIf you already use Opper in another organization, choose a separate CLI slot\nwhile signing in and installing the bridge:\n\n```bash\nopper --key work login\nopper --key work editors opencode --login-bridge\nopencode\n```\n\nSelect your work organization in the browser approval screen, then use\n`opper --key work whoami` to confirm it before starting OpenCode. Renew that\nslot with `opper --key work login --renew`.\n\nThe bridge is a local OpenCode startup plugin at\n`~/.config/opencode/plugins/opper-login.js`. It reads the CLI's selected key\nfrom `~/.opper/config.json`, fetches that key's `/v3/compat/models` catalog on\neach OpenCode startup, and injects the Opper provider and allowed models in\nmemory. It does not copy the key into `opencode.json` or rewrite other provider\nsettings. Setup binds the selected CLI slot to plain OpenCode; reinstall with\nanother `--key` to switch it, or set `OPPER_KEY_SLOT` for one OpenCode process.\n`OPPER_API_KEY` overrides the slot with an independent credential; its host is\n`OPPER_BASE_URL` or the production API root. An explicit target supplied during\nbridge setup is persisted without a secret. For one plain OpenCode process,\n`OPPER_PROJECT_UUID` supplies an explicit target. An environment key uses only\nthat environment target, and never borrows the bridge's stored target. If the stored key is expired or the\ncatalog cannot be fetched, Opper is unavailable in that OpenCode process;\nother providers stay available. Renew the selected slot (for example,\n`opper --key work login --renew`) and restart\nOpenCode to load the replacement key. Plain OpenCode uses the normal compat\nendpoint, so it does not get the per-launch session grouping of\n`opper launch opencode`. OpenCode's `debug config` output can contain the\nresolved key; do not share that output.\n\n## MCP client setup\n\n```bash\nopper mcp add opencode                            # account MCP only, no inference changes\nopper mcp add opencode --local --url http://localhost:8080/mcp\n```\n\n`opper mcp add` currently supports **OpenCode only**. This configures the agent's\naccess to Opper account tools; `opper launch <agent>` separately runs an agent\nwith model inference through Opper. Setup helpers for other MCP clients are not\nimplemented yet.\n\nThe command adds the remote `https://api.opper.ai/mcp` server as `opper`. It leaves\nyour inference provider, model, tool permissions, and other MCP servers alone.\nIt needs no API key and does not log in, launch OpenCode, or approve consent.\nThe default connection contains only the server URL and connection settings:\n\n```json\n{\n  \"mcp\": {\n    \"opper\": {\n      \"type\": \"remote\",\n      \"url\": \"https://api.opper.ai/mcp\",\n      \"enabled\": true\n    }\n  }\n}\n```\n\nReopen OpenCode, connect the server, and choose your organization and permissions\nin Opper in your browser. Available permissions are discovered from Opper; only\nthe permissions you approve are granted. If the\nclient requires manual authentication, use `opencode mcp auth opper`, then\nreopen OpenCode to load the authenticated tools.\nFor names that need shell quoting or conflict with command options, setup\nsuggests `opencode mcp auth` so you can select the server in OpenCode's picker.\nAvailability of the endpoint depends on the Opper MCP deployment.\n\nOpenCode 1.18.29 cannot automatically complete a permission upgrade after a tool\nreports insufficient scope. Start its native authentication flow again and\napprove the additional permissions in Opper. With the default URL-only setup,\nthis does not require editing the MCP config. An agent can guide the workflow;\nthe account owner approves access in the browser.\n\nFor an advanced client-side restriction, use `--scopes` to limit the\npermissions that can be offered during consent:\n\n```bash\n# Restrict this client to account and project inspection.\nopper mcp add opencode --scopes 'account:read projects:read'\n```\n\n`--scopes` replaces only the matched server's requested scope setting. It\nnever adds unselected permissions, grants access, or changes existing tokens.\nReopen OpenCode after changing this restriction and use its native authentication\nflow to review and approve permissions in the browser. Consent cannot exceed\nthe explicit restriction. To return an existing connection to normal discovery,\nremove its `oauth.scope` property from the effective OpenCode config, preserving\nany other OAuth settings, then reopen OpenCode and authenticate again. Plain\n`opper mcp add opencode` preserves existing restrictions, including those from\nearlier CLI versions.\nTo revoke an existing grant, disconnect it in the Opper app. Config changes alone\ndo not revoke grants.\n\nThe setup preserves JSONC comments and reads both `opencode.json` and\n`opencode.jsonc` (plus global `config.json`) in OpenCode's merge order. New MCP\nsettings go into the existing JSONC file when present, otherwise the JSON file.\nExplicit scope updates edit the highest-precedence file containing the matched\nserver's complete remote definition. Other preference layers remain untouched;\nprivate headers and OAuth settings are not copied between files.\nAn existing server with the same URL keeps its current name, auth settings,\nand enabled/disabled preference; an explicit `--scopes` updates only its\nOAuth scope. If OAuth is disabled, an explicit `--scopes` change asks you to\nreview that setting instead of enabling it; plain setup preserves it and\nexplains how to enable browser consent. Remove the matched server's\n`oauth: false` setting from the effective config, then reopen OpenCode.\nA conflicting `opper` entry, malformed config,\nor duplicate JSON keys produces an error without changing the files. `--url` accepts\nHTTPS endpoints or HTTP loopback addresses, without credentials, query parameters,\nor fragments.\n\nWhen setup updates an existing regular config, it retains the original file in\na private `.opper-mcp-*` backup directory beside it and prints that backup path.\nThe backup directory excludes its contents from ordinary Git staging.\nIt captures and checks the current file before installing the update without\nreplacing a competing save. A detected conflict stops setup and preserves both\nversions for review. Backups also retain late saves through an editor's already\nopen file; compare them if you edited the config during setup. Repeated setup\nthat makes no change creates no backup. Symlinked target files require a manual\nmerge. New files are created exclusively, so setup never replaces a file that\nappeared after inspection.\n\nUse `--global` or `--local` to select where the MCP configuration is written.\nFor a native OpenCode setup instead, run `opencode mcp add` and choose a remote\nserver with the same URL. That is also suitable for demonstrating server setup\nbefore asking the agent to connect.\n\nThe previous syntax remains a compatibility alias:\n\n```bash\nopper editors opencode --mcp\nopper editors opencode --mcp --local --mcp-url http://localhost:8080/mcp\nopper editors opencode --mcp --mcp-scopes 'account:read projects:read'\n```\n\nIts `--mcp-url` and `--mcp-scopes` flags correspond to `--url` and `--scopes` on\n`opper mcp add opencode`. The alias still configures only MCP; `--overwrite`\nremains an inference setup option.\n\nTo use Opper for both account tools and model inference, run\n`opper mcp add opencode`, then `opper launch opencode`. Inference authentication\n(`opper login` / `OPPER_API_KEY`) is independent of MCP browser authorization.\n\n## Platform\n\nDirect access to the platform endpoints:\n\n| Command | Description |\n|---------|-------------|\n| `opper call <name> <instructions> [input] [--model <id>] [--stream]` | Run an Opper function. Reads input from stdin when the positional arg is omitted. |\n| `opper keys create --project <uuid> --name <name> --output <path> [--mcp-url <url>]` | Approve key creation in the browser and save the secret into a new private env file. Prints only metadata. |\n| `opper functions list [filter]` / `get <name>` / `delete <name>` | Manage functions. |\n| `opper models list [filter]` | List available models (built-in + custom). |\n| `opper models create <name> <identifier> <apiKey> [--extra <json>]` | Register a custom model. |\n| `opper models get <name>` / `delete <name>` | Inspect / remove a custom model. |\n| `opper indexes list [--limit] [--offset]` | List knowledge-base indexes. |\n| `opper indexes get <name>` / `create <name> [--embedding-model <id>]` / `delete <name>` | Manage indexes. |\n| `opper indexes add <name> <content> [--key <id>] [--metadata <json>]` | Add a document (`<content>` accepts `-` for stdin). |\n| `opper indexes query <name> <query> [--top-k <n>] [--filters <json>]` | Semantic search. |\n| `opper traces list [--limit] [--offset] [--name <substring>]` | List traces. |\n| `opper traces get <id>` / `delete <id>` | Inspect / remove a trace. |\n| `opper usage list [--from-date] [--to-date] [--granularity] [--fields] [--group-by] [--out csv]` | Token / cost analytics. |\n| `opper image generate <prompt> [-o <file>] [--base64] [-m <model>]` | Generate an image. |\n\n## Recipes\n\n### Creating an application key without putting its secret in a conversation\n\n```bash\nopper keys create --project <project-uuid> --name 'My app' --output .env.opper\n```\n\nThe command opens Opper consent for project read access and API key creation.\nChoose the organization containing that project and explicitly select API key\ncreation. The CLI checks the project, creates one runtime key through the\ndelegated API, then writes `OPPER_API_KEY=...` into the new file with POSIX mode\n`0600`. The parent directory must already exist. Existing files and symlinks are\nnever replaced, including when another process creates the destination during\nbrowser approval. Stdout contains only the key ID, name, project UUID, and saved\npath as JSON; progress and the browser URL go to stderr. Load the env file in\nyour application without printing or pasting it into an agent conversation.\n\nThis authorization is independent of `opper login`, `--key`, `OPPER_API_KEY`,\nand OpenCode's credentials. It uses the maintained MCP SDK for discovery, public\nclient registration, and PKCE. Only the public client registration is retained\nunder `~/.opper/mcp-clients` (or `$OPPER_HOME/mcp-clients`), keyed by MCP URL and\nissuer; OAuth tokens stay in memory. The temporary OAuth connection is revoked\nwhen the operation finishes, including on errors. The application key remains\nusable after that connection is revoked.\n\nFor local development, append `--mcp-url http://localhost:8080/mcp`. A production\nserver must have the delegated MCP/OAuth endpoints deployed before this command\ncan authorize. Ordinary API errors and SDK errors are sanitized, including with\n`--debug`.\n\nThe CLI retries an uncertain create once with the same idempotency UUID. If the\noutcome is still unknown, its error includes `--idempotency-key <uuid>`: reuse\nthat value only with the same project, name, MCP URL, account, organization, and\nretained public client registration. Never generate another operation ID to\nresolve an unknown outcome. A replay identifies the existing key but cannot\nreturn its secret again; the CLI revokes that key and reports that a fresh\ncreation is needed. A failed file installation also attempts to revoke only\nthe newly created key. If key or connection cleanup fails, the CLI reports the\nremaining action and exits with an error; an already installed env file is kept.\n\nIf a server reset or client deletion leaves the browser reporting `invalid_client`,\nuse `--reset-client` with a **fresh** key creation to replace only that MCP URL\nand issuer's retained public registration. The next authorization needs fresh\nbrowser consent. A token endpoint rejection also removes the rejected registration\nand asks you to restart; the CLI never exchanges an old authorization code under a\nnew client identity. Existing OAuth grants are not revoked by resetting local\nregistration; manage those in Agent connections.\n\nDo not reset a client while a previous key creation is uncertain. `--reset-client`\ncannot be combined with `--idempotency-key`; recovery also refuses to register a\nnew identity if the original cache is missing or invalid. Restore the original\nregistration or reconcile the earlier key in Opper before starting a fresh create.\n\n### Calling a function from the shell or stdin\n\n```bash\n# Inline arguments\nopper call myfunction \"respond in kind\" \"what is 2+2?\"\n\n# Stream the response token-by-token\nopper call --stream myfunction \"respond in kind\" \"what is 2+2?\"\n\n# Pipe input from stdin (any text)\necho \"what is 2+2?\" | opper call myfunction \"respond in kind\"\n\n# Pipe structured JSON in\necho '{\"name\":\"Johnny\",\"age\":41}' | opper call myfunction \"only print age\"\n\n# Override the model for one call\nopper call --model claude-sonnet-5 myfunction \"summarise\" \"long text…\"\n```\n\n### Registering a custom model\n\nBring your own model deployment under any provider Opper supports — Azure, AWS, GCP, custom OpenAI-compatible endpoints, etc. Pass any provider-specific config through `--extra` as a JSON object.\n\n```bash\n# Azure OpenAI deployment\nopper models create my-gpt4 azure/my-gpt4-deployment my-api-key \\\n  --extra '{\"api_base\": \"https://my-gpt4-endpoint.openai.azure.com/\", \"api_version\": \"2024-06-01\"}'\n\n# Inspect / delete\nopper models get my-gpt4\nopper models delete my-gpt4\n```\n\n### Indexing and querying a knowledge base\n\n```bash\n# Create an index\nopper indexes create support-docs\n\n# Add documents (inline or from stdin)\nopper indexes add support-docs \"How to reset your password: …\" --key reset-password\ncat refunds.md | opper indexes add support-docs - --key refunds --metadata '{\"category\":\"billing\"}'\n\n# Search\nopper indexes query support-docs \"how do I get a refund?\" --top-k 5\nopper indexes query support-docs \"billing question\" --filters '{\"category\":\"billing\"}'\n```\n\n### Cost / usage by tag\n\nIf your application tags calls with arbitrary metadata (e.g. `customer_id`), `opper usage list` can group cost / count / tokens by that tag. Tagging happens at call time via the SDK:\n\n```python\n# Python SDK\nresult, _ = await opper.call(\n    name=\"respond\",\n    input=\"What is the capital of Sweden?\",\n    tags={\"customer_id\": \"acme\"},\n)\n```\n\n```bash\n# Then attribute spend per tag\nopper usage list --from-date=2026-04-01 --to-date=2026-04-30 \\\n  --fields=total_tokens,cost --group-by=customer_id\n\n# Pipe to CSV for billing systems\nopper usage list --from-date=2026-04-01 --group-by=customer_id --out=csv > april.csv\n```\n\n### Generating an image\n\nRuns against `POST /v3/images`, so any model from `opper models list image`\nworks — including dedicated image models like `openai/gpt-image-2`. The\ndefault is `gemini/gemini-3.1-flash-lite-image` (fast, ~$0.03/image).\n\n```bash\n# Save to image_<ts>.<ext> in cwd — the extension follows the bytes the\n# model returned (gemini emits JPEG, gpt-image emits PNG)\nopper image generate \"a serene mountain lake at dawn\"\n\n# Specific output, specific model\nopper image generate \"logo concept\" -o ./out/logo.png \\\n  -m openai/gpt-image-2\n\n# Print raw base64 (for piping)\nopper image generate \"icon\" --base64 | base64 -d > icon.png\n```\n\nGenerated images are not persisted to `/v3/files` — you get the bytes and\nnothing counts against the org's storage quota.\n\n### Routing an agent through Opper for a one-shot job\n\n```bash\n# Pi in non-interactive mode for cron / CI\nopper launch pi -p \"summarise the latest PR title and body\"\n\n# Claude Code with a specific model and resumed session\nopper launch claude --model claude-opus-5 --resume\n\n# Codex with Sonnet for a single ask\nopper launch codex --model claude-sonnet-5 -- \"implement this feature\"\n```\n\n## Global flags\n\n| Flag | Description |\n|------|-------------|\n| `--key <slot>` | API key slot to use (default: `default`). |\n| `--project-uuid <uuid>` | Explicit project target sent as `X-Opper-Project`. |\n| `--debug` | Verbose diagnostic output. |\n| `--no-telemetry` | Disable anonymous telemetry. |\n| `--no-color` | Disable ANSI colors. |\n| `-v, --version` | Print CLI version. |\n| `-h, --help` | Show help (grouped by domain). |\n\n## Requirements\n\n- Node.js ≥20.12 (for `util.styleText`, used by interactive prompts).\n- macOS, Linux, or WSL. Native Windows shells aren't tested; OAuth approval URLs must be opened manually there.\n\n## Releasing\n\nReleases are driven by a tag. Nothing publishes on a merge to `main`.\n\n```bash\n# 1. bump the version on a branch, and open a PR\nnpm version patch --no-git-tag-version   # or minor / major\n\n# 2. merge it\n\n# 3. tag the merge commit\ngit checkout main && git pull\ngit tag v0.1.30 && git push origin v0.1.30\n```\n\nPushing the tag runs `.github/workflows/release.yml`, which builds, tests,\npublishes to npm and cuts the GitHub release.\n\nThe tag and `package.json` must name the same version; the workflow checks this\nbefore building and fails if they disagree. Both the npm publish and the GitHub\nrelease are idempotent, so re-running a half-finished release completes it\nrather than erroring.\n\nTwo things not to change without care: the workflow's **filename**, which npm's\ntrusted-publishing config pins alongside the org and repo, and the fact that it\nnever pushes to `main` — the `require-pr-main` ruleset has no bypass list, and a\nworkflow that pushes a commit there is rejected before it reaches npm.\n\n## Source\n\n[github.com/opper-ai/cli](https://github.com/opper-ai/cli)\n\n## GitHub Copilot CLI\n\nRequires Node.js 22+ and npm on macOS/Linux. Copilot 1.0.88 is run through npx;\nno global Copilot installation is required. The standard CLI sign-in, selected\n`--key` slot, expiry checks and credential lock are shared with other agents.\n\n```sh\nopper launch copilot\nopper --key work launch copilot --kinds pools,routes\nopper launch copilot --list --kinds all\nnpx @opperai/cli@latest launch copilot\n```\n\nInside Copilot, `/model` selects from the credential's current allowed catalog.\n`/opper-usage` displays account, project, key expiry, personal/role allowance and\nshared project usage. Organization billing requires explicit server permission.\n`/opper-login` opens browser renewal and continues the same conversation after\nvalidation of the same user, organization, project and endpoint. It does not\nreplay failed requests. The terminal warns within 24 hours of known expiry. Commands use Copilot's experimental extension support; `--no-extension`\ndisables them. Opper allowance is available in the native footer through its\n**Custom** item by default. Use `/footer` to toggle Custom and context window\nvisibility independently. `--no-budget` disables the custom allowance command;\n`--budget-footer` remains supported for compatibility. Use `/opper-usage` for\nallowance details and Copilot’s `/context` for context usage.\n\nThe last model and type filter are remembered. A fresh isolated Copilot profile\nis created per launch; existing Copilot settings are untouched. Restart/resume\nof prior conversations is not supported yet. GitHub-connected features are not\npart of this BYOK integration. Private run tokens and provider references are\nremoved on normal exit. API keys are never written to the provider registry.\n\nOne-time setup for plain `copilot` is **not implemented**. OpenCode already has\n`opper editors opencode --login-bridge`; Copilot needs separate validation of\nprovider initialization versus extension/hook startup before offering equivalent\nautomatic credential and model refresh. No shell aliases or background services\nare installed by `opper launch copilot`.\n\n### Pi and OpenCode model discovery\n\nPi fetches the credential-scoped catalog at setup and launch, including pools and\ndynamic routes with tool support and valid context limits. An explicit\n`--project-uuid` is used for both discovery and inference. Empty or failed catalog\nlookups stop setup without installing a static fallback list. Other Pi providers\nremain available.\n\nOpenCode deployment labels include the full model ID to distinguish providers.\nPools and dynamic routes are marked separately. Existing one-time OpenCode login\nbridges need setup rerun to receive the updated labels.\n","readmeFilename":"README.md"}