{"_id":"@arach/speakeasy","_rev":"25-f817676627c13719113bdd21c8030012","name":"@arach/speakeasy","dist-tags":{"latest":"0.2.19"},"versions":{"0.1.0":{"name":"@arach/speakeasy","version":"0.1.0","keywords":["tts","speech","openai","elevenlabs"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.1.0","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"dist":{"shasum":"8f697705e0cf199a7e969fd4c59e5ffd4b544fac","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.1.0.tgz","fileCount":37,"integrity":"sha512-DUP/LdWz4y0UU2JiyQGcBG14Tq0ObwC9kqkzeds3/dUDFRwgMxCXsfjmXOXj38micl/qqFr99bwWuEtG5oKjxg==","signatures":[{"sig":"MEYCIQCfSQ2zNS6u/N05hVPSLFPBM7wxEofAjj9ydnqkQpkIbAIhAOrks35aY9Bwizw6jzUO+vUlEJabUeGcEwm+Qk3w4Iji","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":139052},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":"./dist/index.js"},"gitHead":"9822fe42c11fb927b908d483128189e710f5676b","private":false,"scripts":{"dev":"tsc --watch","test":"node dist/test.js","build":"tsup src/index.ts --dts","example":"npm run build && node examples/basic-usage.js"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"_npmVersion":"11.4.1","description":"SpeakEasy - Unified text-to-speech service with provider abstraction","directories":{},"_nodeVersion":"22.16.0","dependencies":{"keyv":"^5.3.4","node-fetch":"^3.3.2","@keyv/sqlite":"^4.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.1.0_1752685986806_0.02971355651463803","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@arach/speakeasy","version":"0.1.1","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.1.1","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"1a4c696199c6a1851b38c4a8bb271719d830b4d6","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.1.1.tgz","fileCount":32,"integrity":"sha512-6Gs29gOaQuAxyuBTsIGo6R8rtbIiB3tHYC/Efjn6lubjWSTffOryJPpYUMjYf3GKLilqA83y9PRosnhKhst+OA==","signatures":[{"sig":"MEUCIHtOjI6H3SXxg2OKdo6mbEZCl1lQnrCI5C8BB9MWRuhOAiEAhrzoUiJ2ZUk10zKo9xMlg6owCxXetTHHncucaLHNbCA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":169294},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":"./dist/index.js"},"gitHead":"d247f6909cd434025864b254d2715accf5869585","private":false,"scripts":{"cli":"npm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts","example":"npm run build && node examples/basic-usage.js"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"_npmVersion":"11.4.1","description":"SpeakEasy - Unified text-to-speech service with provider abstraction","directories":{},"_nodeVersion":"22.16.0","dependencies":{"keyv":"^5.3.4","uuid":"^11.1.0","node-fetch":"^3.3.2","@types/uuid":"^10.0.0","@keyv/sqlite":"^4.0.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.1.1_1752721005276_0.6316926658965432","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@arach/speakeasy","version":"0.1.2","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.1.2","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"dfafc7550226ea16b79701097876e581675ae29f","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.1.2.tgz","fileCount":32,"integrity":"sha512-+Pbm9g+0frEceo1hWqasOipQz9Kb/cuaOkG7aU89+Vqu/PHEKHPgqhVElA4iI+bHxucJgPubGeeFBChDuFHjtg==","signatures":[{"sig":"MEQCIGT2At0mYpdUl/NaIR7YLf4ts1t48JHxfwmelZ4n9dT6AiAhS1Jv3GPZBcI2DDgTflyPoDjbgyyeBfm2ip7+9rjQ2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":209109},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":"./dist/index.js"},"gitHead":"d247f6909cd434025864b254d2715accf5869585","private":false,"scripts":{"cli":"npm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts","example":"npm run build && node examples/basic-usage.js"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"_npmVersion":"11.4.1","description":"SpeakEasy - Unified text-to-speech service with provider abstraction","directories":{},"_nodeVersion":"22.16.0","dependencies":{"keyv":"^5.3.4","uuid":"^11.1.0","node-fetch":"^3.3.2","@types/uuid":"^10.0.0","@keyv/better-sqlite3":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.1.2_1752779695963_0.7623524208395855","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@arach/speakeasy","version":"0.1.3","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.1.3","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"343eaa95da91fa25aa5b24875eb1a6dc4aae1f44","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.1.3.tgz","fileCount":32,"integrity":"sha512-waiPDQMqn5yFtq41wCxF1Pk+XFNEM2aX+PCqrovKJVPYirJN5GR75uch6MKu1qxY1ECR5jXIICETF4BcQxQVWQ==","signatures":[{"sig":"MEQCIA4/us8XCFxQyu7u8epy+6TSMyMGcbm7f8rHzm7cqIH4AiBQfmkF5vUgbNRS9cjwKMQHkBrxY/PARJrUFAMD1r3vYQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142673},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":"./dist/index.js"},"gitHead":"d247f6909cd434025864b254d2715accf5869585","private":false,"scripts":{"cli":"npm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts","example":"npm run build && node examples/basic-usage.js"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"_npmVersion":"11.4.1","description":"SpeakEasy - Unified text-to-speech service with provider abstraction","directories":{},"_nodeVersion":"22.16.0","dependencies":{"keyv":"^5.3.4","uuid":"^11.1.0","node-fetch":"^3.3.2","@types/uuid":"^10.0.0","@keyv/sqlite":"^3.6.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.1.3_1752779912018_0.15286545208004787","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@arach/speakeasy","version":"0.1.4","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.1.4","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"36d944106eaee31853f15b8acde6c76819ceb89d","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.1.4.tgz","fileCount":32,"integrity":"sha512-7pSflnQVKaOMCvh0kFWdvsKeMdx5TSv94RVf1uSz8w9+LQi6xIphh/CsQarc+SHveifIV2SYKyd5OlNhjvQPyA==","signatures":[{"sig":"MEUCIQCy/R50PZ2nrnD6ngyQWlz1/5a+p1IyxtwYdgT0cjBfPgIgSKXnso1FnDT0L0bSbb0nqrobdvPKLpv+3uex1BWflv4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146063},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":"./dist/index.js"},"gitHead":"d7a6c305c968baab369c34fd30a71f2125ad72f6","private":false,"scripts":{"cli":"npm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts","example":"npm run build && node examples/basic-usage.js"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"_npmVersion":"11.3.0","description":"SpeakEasy - Unified text-to-speech service with provider abstraction","directories":{},"_nodeVersion":"24.1.0","dependencies":{"keyv":"^5.3.4","uuid":"^11.1.0","node-fetch":"^3.3.2","@types/uuid":"^10.0.0","@keyv/sqlite":"^3.6.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.1.4_1753233826942_0.8934549138725576","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@arach/speakeasy","version":"0.1.5","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.1.5","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"290301594b06577a8a6080e60256086de44e96a4","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.1.5.tgz","fileCount":33,"integrity":"sha512-t3RrnVVRVvbYc+7pVJBp0NvbJ/vjanUbeGdT1mq0yMBtkLn10J0kiiuVpkUCM4zZwKeVtdsaRQXyCGxN7JnZYg==","signatures":[{"sig":"MEUCIFEGFpKVQbKN1hQq5xlkTSeP2vC/ul4dfG+TU3cRjsbZAiEAz2hCc9CGZqoDVLguf29x1pH7zoJy+Ub7lygA09pf28k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":251015},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":"./dist/index.js"},"gitHead":"1ca81be0526327d1b639e16de25a19d1f32b5d85","private":false,"scripts":{"cli":"npm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts","example":"npm run build && node examples/basic-usage.js"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"_npmVersion":"11.3.0","description":"SpeakEasy - Unified text-to-speech service with provider abstraction","directories":{},"_nodeVersion":"24.1.0","dependencies":{"keyv":"^5.3.4","uuid":"^11.1.0","node-fetch":"^3.3.2","@types/uuid":"^10.0.0","@keyv/sqlite":"^3.6.7","better-sqlite3":"^12.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.1.5_1753555866219_0.7311998805977773","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@arach/speakeasy","version":"0.1.6","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.1.6","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"ea060f8495da5e2cac12e5001aac3f1219411d6e","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.1.6.tgz","fileCount":33,"integrity":"sha512-+n4MRSK0Mk5qUGBGOPCdB4oYY8I+HfaX6/p6bd3ROumwF4Pi+Q6pkldP9iKLXTQvQi+Y4BRygH6XPsrKueSLGQ==","signatures":[{"sig":"MEYCIQC43LnNSElJ3HlHv70LF7kh4YWbM0ouAjkcZioMbbul4gIhALGzfIgLZmYFDTuokbDzL8OzuMmZW6CQiUtwdJYjSx+z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":258986},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":"./dist/index.js"},"gitHead":"d950806cf9a600a8aba5724fada4ed1cb7ef0949","private":false,"scripts":{"cli":"npm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts","example":"npm run build && node examples/basic-usage.js"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"_npmVersion":"11.3.0","description":"SpeakEasy - Unified text-to-speech service with provider abstraction","directories":{},"_nodeVersion":"24.1.0","dependencies":{"keyv":"^5.3.4","uuid":"^11.1.0","node-fetch":"^3.3.2","@types/uuid":"^10.0.0","@keyv/sqlite":"^3.6.7","better-sqlite3":"^12.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.1.6_1753559596981_0.15695437820265812","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@arach/speakeasy","version":"0.2.0","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.2.0","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"f6fefa1d163e577a46deae253789645f80923bd1","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.2.0.tgz","fileCount":33,"integrity":"sha512-zvnGaV1mRN+ChqhSkNBPESLf/+H6r7fhaxKO7unI0zB+2UjwVyj0ex4w/HEwUjbU6kZmGsDojNyHuRXvRdNK5g==","signatures":[{"sig":"MEUCIAoegtn1ETGeX/dxBYr5WFCIw73WFbRa+eRoDkbvotSfAiEAmt1we8aKoqDxiV4ii2TLXw+d8xJlOdPv0ACdFi99/bQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266111},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":"./dist/index.js"},"gitHead":"1ecc82d1f96ef4d74354ff4ed3f891ff837b1c22","private":false,"scripts":{"cli":"npm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts","example":"npm run build && node examples/basic-usage.js"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"_npmVersion":"11.3.0","description":"SpeakEasy - Unified text-to-speech service with provider abstraction","directories":{},"_nodeVersion":"24.1.0","dependencies":{"keyv":"^5.3.4","uuid":"^11.1.0","node-fetch":"^3.3.2","@types/uuid":"^10.0.0","@keyv/sqlite":"^3.6.7","better-sqlite3":"^12.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.2.0_1754326159892_0.17520081492558393","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@arach/speakeasy","version":"0.2.1","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.2.1","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"d76f5d9fe7580ff87e8dc8bc71cb596f29bb5255","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.2.1.tgz","fileCount":143,"integrity":"sha512-dGdK/rVjQRCSctKUJr+9JPKJbOeRAOq5ttU2O/3TFfgWIyB6ufdUNVYNaBpuFX4S3+BZJZS6G95BXcW3Bp0daQ==","signatures":[{"sig":"MEQCIA6HBCx1Kiu/RaB6fqWyTwiCHrkuX1sVxzxBH++XyLLBAiAUVdRC98KsxfDgG5Ae4yD47Pd923OZ2mf2mXabeUdVfg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":819868},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":"./dist/index.js"},"gitHead":"9fc49516d920bf74c57e4a668221bbca065478cf","private":false,"scripts":{"cli":"npm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts","example":"npm run build && node examples/basic-usage.js"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"_npmVersion":"11.3.0","description":"SpeakEasy - Unified text-to-speech service with provider abstraction","directories":{},"_nodeVersion":"24.1.0","dependencies":{"keyv":"^5.3.4","uuid":"^11.1.0","node-fetch":"^3.3.2","@types/uuid":"^10.0.0","@keyv/sqlite":"^3.6.7","better-sqlite3":"^12.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.2.1_1754425218797_0.9400424144863739","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@arach/speakeasy","version":"0.2.2","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.2.2","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"7e06073ee10a33c3a74e313d43c597b9f6f033f9","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.2.2.tgz","fileCount":31,"integrity":"sha512-a5L3kDEGVXc50XhTKYjz3HwBkRdUp9sYVVFbRJ+b/m8we+znBqXMAoj+yh2xI5b1nDflsXNffo/l3wZFsrdSCw==","signatures":[{"sig":"MEQCIHq4ZrvwywMpvwOLeW8Wn410wkGiZ04xyqx9QbMftYeVAiA3fyiSC1V2s8YxFZSFvjLmwZgkYvna926Vm0FAm2Ro2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":304595},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":"./dist/index.js"},"gitHead":"fd2c5f67e687deebcc3a87dbe71beec749d7ef85","private":false,"scripts":{"cli":"npm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts --format cjs","example":"npm run build && node examples/basic-usage.js"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"_npmVersion":"11.3.0","description":"SpeakEasy - Unified text-to-speech service with provider abstraction","directories":{},"_nodeVersion":"24.1.0","dependencies":{"keyv":"^5.3.4","uuid":"^11.1.0","node-fetch":"^3.3.2","@types/uuid":"^10.0.0","@keyv/sqlite":"^3.6.7","better-sqlite3":"^12.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","playwright":"^1.54.2","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.2.2_1754509810691_0.25263780978827444","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@arach/speakeasy","version":"0.2.3","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.2.3","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"073aa4bf8068bbddc2a6735dd09daed21a0bd778","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.2.3.tgz","fileCount":40,"integrity":"sha512-ppDTz5hdhKr4aXsx4XFTPS5cDxXes/k9MIhWkzpACLBM74Cor7V8qP39hs7kdGBfaBf35JqcsfEAzff04cjJ4A==","signatures":[{"sig":"MEUCIQCF9DqEj+YP2+kgEFFSHE5teBdvIItQ/3+Jh6VLG8xRKAIgeJpS3FguPvsL4R5dCbAwMjl9kXZth2Q6pypxlyEAFfQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":557960},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":"./dist/index.js"},"gitHead":"3921a0e78de3c1093de3889d02cbfc1097546c1c","private":false,"scripts":{"cli":"npm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts --format cjs","example":"npm run build && node examples/basic-usage.js"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"_npmVersion":"11.3.0","description":"SpeakEasy - Unified text-to-speech service with provider abstraction","directories":{},"_nodeVersion":"24.1.0","dependencies":{"zod":"^3.23.8","keyv":"^5.3.4","uuid":"^11.1.0","chalk":"^4.1.2","commander":"^11.1.0","node-fetch":"^3.3.2","@types/uuid":"^10.0.0","@keyv/sqlite":"^3.6.7","fluent-ffmpeg":"^2.1.3","better-sqlite3":"^12.2.0","@google/generative-ai":"^0.24.1","@anthropic-ai/claude-code":"^1.0.72"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","playwright":"^1.54.2","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.2.3_1754927810085_0.9385509143739801","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@arach/speakeasy","version":"0.2.4","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.2.4","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"304548f1551a2c514251e78307a777c1e534b6cd","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.2.4.tgz","fileCount":40,"integrity":"sha512-KelO/TVFhWCy3BxZNxQPl5nbegYWToskfSgi46vITdK+oFwxbx0qfYlICw+WFp69HXZAf4e6y6DkyVyiv4qDkw==","signatures":[{"sig":"MEUCIEKQzpqq+DQjOU8fIz3178mkpIueedezuosBTK1AgUkAAiEAmIJtIh334yCP7+RoVUKdAG7A92z+dKc9uGt0UEAhCUY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":561442},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":"./dist/index.js"},"gitHead":"8acfc3b7117a1363daac7680e5f446bb24268b8d","private":false,"scripts":{"cli":"npm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts --format cjs","example":"npm run build && node examples/basic-usage.js"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"_npmVersion":"11.3.0","description":"SpeakEasy - Unified text-to-speech service with provider abstraction","directories":{},"_nodeVersion":"24.1.0","dependencies":{"zod":"^3.23.8","keyv":"^5.3.4","uuid":"^11.1.0","chalk":"^4.1.2","commander":"^11.1.0","node-fetch":"^3.3.2","@types/uuid":"^10.0.0","fluent-ffmpeg":"^2.1.3","better-sqlite3":"^12.2.0","@google/generative-ai":"^0.24.1","@anthropic-ai/claude-code":"^1.0.72"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","playwright":"^1.54.2","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.2.4_1755214507128_0.04421728761788457","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@arach/speakeasy","version":"0.2.5","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.2.5","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"6778df3e1bd7be980052b8acd9dda3b2345ae22f","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.2.5.tgz","fileCount":54,"integrity":"sha512-Vkq4FRvneDZo1+u3bPkP9P4w/MtVIiJuk5rnjO4qw3BRvnVyu6YV47450TsBUwAw/8IFBmZFkm6dH4KHA+byOg==","signatures":[{"sig":"MEUCIQDQgO1PFBwfKZ7M1u/+3Xsp7YM3+iJZrY0eHN/ChY9KHQIgOKzv/aPgWPPy/b5eelobT2DrnCBtlH2SU0g1Q0ne6cc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":623220},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":"./dist/index.js"},"gitHead":"4068fcd175bb6c8bae68a4b6bb3e14b9269fb8c6","private":false,"scripts":{"cli":"npm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts --format cjs","example":"npm run build && node examples/basic-usage.js"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"_npmVersion":"11.3.0","description":"SpeakEasy - Unified text-to-speech service with provider abstraction","directories":{},"_nodeVersion":"24.1.0","dependencies":{"zod":"^3.23.8","keyv":"^5.3.4","uuid":"^11.1.0","chalk":"^4.1.2","commander":"^11.1.0","node-fetch":"^3.3.2","@types/uuid":"^10.0.0","fluent-ffmpeg":"^2.1.3","better-sqlite3":"^12.2.0","@google/generative-ai":"^0.24.1","@anthropic-ai/claude-code":"^1.0.72"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","playwright":"^1.54.2","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.2.5_1767193617412_0.9877901553717163","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@arach/speakeasy","version":"0.2.6","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.2.6","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"24c6d73e95f1c90138f1ace946494a39dcf474cb","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.2.6.tgz","fileCount":54,"integrity":"sha512-LxQiJirrmsgn3cAodkAaKKVTiPm5XdoGbIDTYpdH7b1SS+Yv3+oeL+IB6wPOMzzrPPL5zwPGhxcV1rhpb6lgVw==","signatures":[{"sig":"MEUCIQDtkfwj1Zpavp3GMewG+DB4x6UQo07hATE1+0Ir2HW43QIgWPKgHGtblof0O5IcjVwoXKCyHVvEL8wGYhwGN9qy5Z0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":623915},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":"./dist/index.js"},"gitHead":"328b7b30713994c5d7814c1e59c3f1971578524e","private":false,"scripts":{"cli":"npm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts --format cjs","example":"npm run build && node examples/basic-usage.js"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"_npmVersion":"11.3.0","description":"SpeakEasy - Unified text-to-speech service with provider abstraction","directories":{},"_nodeVersion":"24.1.0","dependencies":{"zod":"^3.23.8","keyv":"^5.3.4","uuid":"^11.1.0","chalk":"^4.1.2","commander":"^11.1.0","node-fetch":"^3.3.2","@types/uuid":"^10.0.0","fluent-ffmpeg":"^2.1.3","better-sqlite3":"^12.2.0","@google/generative-ai":"^0.24.1","@anthropic-ai/claude-code":"^1.0.72"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","playwright":"^1.54.2","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.2.6_1767196013993_0.4590595558905708","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@arach/speakeasy","version":"0.2.7","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.2.7","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"6f34ee905a446758c9025db445a4bc54b2b02954","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.2.7.tgz","fileCount":54,"integrity":"sha512-3vGvWCnemsOc3KCDEh6Y4iuoYAncUlyLYk1w7RCnh0kscatvhFYExB06fggfi2ml5KlMrbTO/N1s+zi/Pmog3g==","signatures":[{"sig":"MEQCID3P2RpxEbDzAFsB0ev/B5lxYxKI0idasc1oVM/7ydkeAiBwRe3whUdCPTpbYIMaQeajZ3z+hXlrZ//UBp1CfCyC8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":625121},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":"./dist/index.js"},"gitHead":"3ffc77437526d23ebb2fcc14cde6990067af69d8","private":false,"scripts":{"cli":"npm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts --format cjs","example":"npm run build && node examples/basic-usage.js"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"_npmVersion":"11.3.0","description":"SpeakEasy - Unified text-to-speech service with provider abstraction","directories":{},"_nodeVersion":"24.1.0","dependencies":{"zod":"^3.23.8","keyv":"^5.3.4","uuid":"^11.1.0","chalk":"^4.1.2","commander":"^11.1.0","node-fetch":"^3.3.2","@types/uuid":"^10.0.0","fluent-ffmpeg":"^2.1.3","better-sqlite3":"^12.2.0","@google/generative-ai":"^0.24.1","@anthropic-ai/claude-code":"^1.0.72"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","playwright":"^1.54.2","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.2.7_1767198730763_0.5104698352092052","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@arach/speakeasy","version":"0.2.8","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.2.8","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"d65d9c8007e89d7deebe78f3cd643a90c0535f56","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.2.8.tgz","fileCount":40,"integrity":"sha512-IBchi1hZMjIJTx1n0WyCiY81dRE+osGzRwKEnMVq5ytmXsGegnIZgLJJdAHNn604onRYMD8boQl4wwb9GTS/XA==","signatures":[{"sig":"MEQCICKFsaDuSAbQ1oFvvVRBLUZf2Hneos3lNImrAoSltcaPAiAPbrv6UCthGwff79MLeOgZsPwha7EmqdUYiu9aza7QEA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2191940},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":"./dist/index.js"},"gitHead":"152ce3a5c152593856b6f100e5fa957573c683b4","private":false,"scripts":{"cli":"npm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts --format cjs","example":"npm run build && node examples/basic-usage.js"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"_npmVersion":"10.9.4","description":"SpeakEasy - Unified text-to-speech service with provider abstraction","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^3.23.8","keyv":"^5.3.4","uuid":"^11.1.0","chalk":"^4.1.2","commander":"^11.1.0","node-fetch":"^3.3.2","@types/uuid":"^10.0.0","fluent-ffmpeg":"^2.1.3","better-sqlite3":"^12.2.0","@google/generative-ai":"^0.24.1","@anthropic-ai/claude-code":"^1.0.72"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","playwright":"^1.54.2","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.2.8_1768314664057_0.2061311242354409","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@arach/speakeasy","version":"0.2.9","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.2.9","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"aa4744e042b192511f42b3139b600ae2769f7d46","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.2.9.tgz","fileCount":52,"integrity":"sha512-T4URpA2Fap02LmCFF5RshNcJmVG6LG07X/CjAA27OtiuLJu/vWAispgzIjveHKVsu+aW3SvQmgWkAOpONC+wjg==","signatures":[{"sig":"MEUCIQCOC4GJD/JoHLCN9MjQnSSlEqzvZSi+IgTMrlTYmxT+UAIgOPP67PAzZThUw1h4/3nwgrSlIEaShiT2vAtmerny6Ac=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1128934},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"bun":">=1.0.0","node":">=22.5.0"},"exports":{".":"./dist/index.js"},"gitHead":"6838e9ad449c3f57ce071b53b047c28079638d5c","private":false,"scripts":{"cli":"pnpm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","docs":"cd docs-site && pnpm dev","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts --format cjs --external node:sqlite --external bun:sqlite","example":"pnpm run build && node examples/basic-usage.js","docs:build":"cd docs-site && pnpm build","test:cache":"pnpm run build && node scripts/cache-test.js"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"_npmVersion":"10.9.7","description":"SpeakEasy - Unified text-to-speech service with provider abstraction","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.8","uuid":"^11.1.0","chalk":"^4.1.2","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0","@types/node":"^22.0.0","@types/uuid":"^10.0.0","@arach/dewey":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.2.9_1782528430908_0.6487400876102907","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"@arach/speakeasy","version":"0.2.10","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.2.10","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"4c62572c9cd48ae8a6e601afd5e9776c00aee756","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.2.10.tgz","fileCount":8,"integrity":"sha512-UyCc4ZgBPm1I2hWwRgGDUQEHkseuJYJJ8wsWEdvqlKxdQZCNKvUxA23YUaUGxy8LI/49SvAfe/wEHdCyn8Sacg==","signatures":[{"sig":"MEUCIQCAwViUhoTB8TlNYvuicY+R4KKzPRTIFR0HRa8nE9QFBQIgVx/ElicnIyM93K69D5R7AVGhitcoFb/mqKVxPNIkA2w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":237300},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"bun":">=1.0.0","node":">=22.5.0"},"exports":{".":"./dist/index.js"},"gitHead":"dd8d497e0f687a688fe0d5098987639ed97215f5","private":false,"scripts":{"cli":"pnpm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","docs":"cd docs-site && pnpm dev","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts --format cjs --external node:sqlite --external bun:sqlite","example":"pnpm run build && node examples/basic-usage.js","docs:build":"cd docs-site && pnpm build","test:cache":"pnpm run build && node scripts/cache-test.js","prepublishOnly":"pnpm run build && rm -f dist/test.js dist/test.d.ts dist/test.js.map dist/test.d.ts.map"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"_npmVersion":"10.9.7","description":"SpeakEasy - Unified text-to-speech service with provider abstraction","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.8","uuid":"^11.1.0","chalk":"^4.1.2","commander":"^11.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0","@types/node":"^22.0.0","@types/uuid":"^10.0.0","@arach/dewey":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.2.10_1782528503308_0.4637819847834106","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"@arach/speakeasy","version":"0.2.11","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.2.11","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"homepage":"https://speakeasy.arach.dev","bugs":{"url":"https://github.com/arach/SpeakEasy/issues"},"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"28645a279efb5e4bb0ef2cb4ed4818a6c8da1530","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.2.11.tgz","fileCount":8,"integrity":"sha512-TzCrgA/QuKl/7JECK2kcGZgoTI+92XvmF8Dcubrndww6PnlbVmv1iVe2mkGcRNnQALwER3FaMnsu71kp1mChEg==","signatures":[{"sig":"MEUCID2VMFDBGuI+WB2SnKvfFX95n437IzNo0RB8TP6S1pX3AiEA1tPTUvB1TkJzudoXwf8ZFL1NPx5h7AanWHWIO79a7TU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":237963},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"bun":">=1.0.0","node":">=22.5.0"},"exports":{".":"./dist/index.js"},"gitHead":"c8701e9999c28199a9e68ebaf16e6315d0cfcabf","private":false,"scripts":{"cli":"pnpm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","docs":"cd docs-site && pnpm dev","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts --format cjs --external node:sqlite --external bun:sqlite","example":"pnpm run build && node examples/basic-usage.js","docs:build":"cd docs-site && pnpm build","test:cache":"pnpm run build && node scripts/cache-test.js","prepublishOnly":"pnpm run build && rm -f dist/test.js dist/test.d.ts dist/test.js.map dist/test.d.ts.map"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"repository":{"url":"git+https://github.com/arach/SpeakEasy.git","type":"git"},"_npmVersion":"10.9.7","description":"SpeakEasy - Unified text-to-speech service with provider abstraction","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.8","uuid":"^11.1.0","chalk":"^4.1.2","commander":"^11.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0","@types/node":"^22.0.0","@types/uuid":"^10.0.0","@arach/dewey":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.2.11_1782528528905_0.15792075516497084","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"@arach/speakeasy","version":"0.2.12","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.2.12","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"homepage":"https://speakeasy.arach.dev","bugs":{"url":"https://github.com/arach/SpeakEasy/issues"},"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"d009e6729d83bffa69429b1730c3d0af1811e081","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.2.12.tgz","fileCount":8,"integrity":"sha512-Ho1BHHqe49pF8Opi6ku/Yr38hlLfBgvgswtAI4U3ARmD+2Q5VXdwKxZ+qfN36x/xtM+bLmKhcsfKyTkrlGNh4A==","signatures":[{"sig":"MEQCIHrYV6wNVll/DItV2ICZMIc41krYLo1a7iWJC1iauvNQAiANa6bgogrDWJohx+aPfEfhFuHb9GBJqur3JarJfb9tMg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":237955},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"bun":">=1.0.0","node":">=22.5.0"},"exports":{".":"./dist/index.js"},"gitHead":"6aab7040a342bf3cb220ac7a97286705e52e0344","private":false,"scripts":{"cli":"pnpm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","docs":"cd docs-site && pnpm dev","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts --format cjs --external node:sqlite --external bun:sqlite","example":"pnpm run build && node examples/basic-usage.js","docs:build":"cd docs-site && pnpm build","test:cache":"pnpm run build && node scripts/cache-test.js","prepublishOnly":"pnpm run build && rm -f dist/test.js dist/test.d.ts dist/test.js.map dist/test.d.ts.map"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"repository":{"url":"git+https://github.com/arach/SpeakEasy.git","type":"git"},"_npmVersion":"10.9.7","description":"SpeakEasy - Unified text-to-speech service with provider abstraction","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.8","uuid":"^11.1.0","chalk":"^4.1.2","commander":"^11.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0","@types/node":"^22.0.0","@types/uuid":"^10.0.0","@arach/dewey":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.2.12_1782528570807_0.9770664740699981","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"@arach/speakeasy","version":"0.2.13","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.2.13","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"homepage":"https://speakeasy.arach.dev","bugs":{"url":"https://github.com/arach/SpeakEasy/issues"},"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"94742699eadd96cca41278783d7d4eb30887a17f","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.2.13.tgz","fileCount":8,"integrity":"sha512-tKcWhblg3Cy+WQc8BuKDKW2S2lTDhAB0NYyISFk+RgFV5yLKg/Jm6jha6dEJpUfcHZWbcBGc5uPqZRFPdz8TOA==","signatures":[{"sig":"MEUCIQDvY08JTStT5iosipgPWziib6dP4IO6lHA23rhGZCO2AwIgUZ/oSJZ5L2W58uJMz2ggDQOOFbo1UwP3YwsUL0XWyQU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":230357},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"bun":">=1.0.0","node":">=22.5.0"},"exports":{".":"./dist/index.js"},"gitHead":"5ba2e475eb4c36f4a56bb7f912239a0f740368f3","private":false,"scripts":{"cli":"pnpm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","docs":"cd docs-site && pnpm dev","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts --format cjs --external node:sqlite --external bun:sqlite","example":"pnpm run build && node examples/basic-usage.js","docs:build":"cd docs-site && pnpm build","test:cache":"pnpm run build && node scripts/cache-test.js","prepublishOnly":"pnpm run build && rm -f dist/test.js dist/test.d.ts dist/test.js.map dist/test.d.ts.map"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"repository":{"url":"git+https://github.com/arach/SpeakEasy.git","type":"git"},"_npmVersion":"10.9.7","description":"SpeakEasy - Unified text-to-speech service with provider abstraction","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.8","uuid":"^11.1.0","chalk":"^4.1.2","commander":"^11.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0","@types/node":"^22.0.0","@types/uuid":"^10.0.0","@arach/dewey":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.2.13_1783525748873_0.34659664272967494","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"name":"@arach/speakeasy","version":"0.2.14","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.2.14","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"homepage":"https://speakeasy.arach.dev","bugs":{"url":"https://github.com/arach/SpeakEasy/issues"},"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"96aa6a3417737116cd669abda29e28809a7be4c5","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.2.14.tgz","fileCount":8,"integrity":"sha512-35j9nSKJKEnNbYzz7i/QCf4bb9QUdFUUaJE6+ObIcUaTGGfRyrohpUmee7jW5EuLBXQPmIrNg6wnalw2NXRovw==","signatures":[{"sig":"MEUCIQCqU9ikYcOjltsb/2rcIWw71CeBlU7yzVAOrWADTXDzKQIgY2wIbwECY8W6R0VfHnRbLZ+2XGf7WhtWAC7dR12hwt0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":228894},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"bun":">=1.0.0","node":">=22.5.0"},"exports":{".":"./dist/index.js"},"gitHead":"a17d7346af2f013e9f998bfa92ffc08adc483caa","private":false,"scripts":{"cli":"pnpm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","docs":"cd docs-site && pnpm dev","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts --format cjs --external node:sqlite --external bun:sqlite","example":"pnpm run build && node examples/basic-usage.js","docs:build":"cd docs-site && pnpm build","test:cache":"pnpm run build && node scripts/cache-test.js","prepublishOnly":"pnpm run build && rm -f dist/test.js dist/test.d.ts dist/test.js.map dist/test.d.ts.map"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"repository":{"url":"git+https://github.com/arach/SpeakEasy.git","type":"git"},"_npmVersion":"10.9.7","description":"Convenient TTS CLI for Mac — centralized credentials + configurable caching so all your apps and agents can speak.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.8","uuid":"^11.1.0","chalk":"^4.1.2","commander":"^11.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0","@types/node":"^22.0.0","@types/uuid":"^10.0.0","@arach/dewey":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.2.14_1783553124039_0.24921913697359854","host":"s3://npm-registry-packages-npm-production"}},"0.2.15":{"name":"@arach/speakeasy","version":"0.2.15","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.2.15","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"homepage":"https://speakeasy.arach.dev","bugs":{"url":"https://github.com/arach/SpeakEasy/issues"},"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"907bbc0dc3cf245de1357598bfe9aaa5d5d9947a","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.2.15.tgz","fileCount":8,"integrity":"sha512-SpyVXtaBpVuUo/0afCS54V5uolM4qQdSqh63jKY6DxVksjHFIRkHBFdizK/ayvsjsxBCIJdLB7z9QLJCS1cs0w==","signatures":[{"sig":"MEUCIQClFnNvwwJKd7IhzSq5Bi4ZAzbJUP5UlAKI0jMcz503cAIgLUyouvQ2wGJlOSmdo2JRXjMcxSmiosz6YFymky+f0x0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":228502},"main":"dist/index.js","pnpm":{"overrides":{"yaml":">=2.8.3","rollup":">=4.59.0","esbuild":">=0.28.1","picomatch@>=4":">=4.0.4"}},"types":"dist/index.d.ts","engines":{"bun":">=1.0.0","node":">=22.12.0"},"exports":{".":"./dist/index.js"},"gitHead":"d3aff3455bff0c9e708e42e96e34b8235690096e","private":false,"scripts":{"cli":"pnpm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","docs":"cd docs-site && pnpm dev","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts --format cjs --external node:sqlite --external bun:sqlite","example":"pnpm run build && node examples/basic-usage.js","docs:build":"cd docs-site && pnpm build","test:cache":"pnpm run build && node scripts/cache-test.js","prepublishOnly":"pnpm run build && rm -f dist/test.js dist/test.d.ts dist/test.js.map dist/test.d.ts.map"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"repository":{"url":"git+https://github.com/arach/SpeakEasy.git","type":"git"},"_npmVersion":"10.9.7","description":"Convenient TTS CLI for Mac — centralized credentials + configurable caching so all your apps and agents can speak.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.25.76","uuid":"^14.0.1","chalk":"^5.6.2","commander":"^15.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^22.0.0","@arach/dewey":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.2.15_1783700220821_0.5132725990779412","host":"s3://npm-registry-packages-npm-production"}},"0.2.16":{"name":"@arach/speakeasy","version":"0.2.16","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","_id":"@arach/speakeasy@0.2.16","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"homepage":"https://speakeasy.arach.dev","bugs":{"url":"https://github.com/arach/SpeakEasy/issues"},"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"dist":{"shasum":"add7bd629b4e28bbc23b697d3f72b840a40a2800","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.2.16.tgz","fileCount":8,"integrity":"sha512-Naya6slry7gmYnfz20WenAxtw3g722uSnP1K5OXUdtZLh5AMxii+O5sFD+H3zDLF8v6esu5pOvUB7bpv7KItTg==","signatures":[{"sig":"MEUCIDeHNT2Sc6exWSY4NWgeD7Dx3Q/OaFceIHhGsQ1tZ31sAiEArSB7O0MBx/CjYbYUeXmNwp7laBensGdpz+H+ZsjVz5w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":229564},"main":"dist/index.js","pnpm":{"overrides":{"yaml":">=2.8.3","rollup":">=4.59.0","esbuild":">=0.28.1","picomatch@>=4":">=4.0.4"}},"types":"dist/index.d.ts","engines":{"bun":">=1.0.0","node":">=22.12.0"},"exports":{".":"./dist/index.js"},"gitHead":"2652e4df3cf071576ea82e89bbfe3b81649ac2c2","private":false,"scripts":{"cli":"pnpm run build && node dist/bin/speakeasy-cli.js","dev":"tsc --watch","docs":"cd docs-site && pnpm dev","test":"node dist/test.js","build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts --format cjs --external node:sqlite --external bun:sqlite","example":"pnpm run build && node examples/basic-usage.js","docs:build":"cd docs-site && pnpm build","test:cache":"pnpm run build && node scripts/cache-test.js","prepublishOnly":"pnpm run build && rm -f dist/test.js dist/test.d.ts dist/test.js.map dist/test.d.ts.map"},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"repository":{"url":"git+https://github.com/arach/SpeakEasy.git","type":"git"},"_npmVersion":"10.9.7","description":"Convenient TTS CLI for Mac — centralized credentials + configurable caching so all your apps and agents can speak.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.25.76","uuid":"^14.0.1","chalk":"^5.6.2","commander":"^15.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^22.0.0","@arach/dewey":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/speakeasy_0.2.16_1783969792358_0.38791592228925276","host":"s3://npm-registry-packages-npm-production"}},"0.2.19":{"name":"@arach/speakeasy","version":"0.2.19","description":"Convenient TTS CLI for Mac — centralized credentials + configurable caching so all your apps and agents can speak.","homepage":"https://speakeasy.arach.dev","repository":{"type":"git","url":"git+https://github.com/arach/SpeakEasy.git"},"bugs":{"url":"https://github.com/arach/SpeakEasy/issues"},"private":false,"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":"./dist/index.js"},"publishConfig":{"access":"public"},"scripts":{"build":"tsup src/index.ts src/bin/speakeasy-cli.ts --dts --format cjs --external node:sqlite --external bun:sqlite","build:plugin-runtime":"bun build src/bin/speakeasy-cli.ts --target=bun --outfile plugins/speakeasy/skills/speakeasy/runtime/speakeasy-cli.js","package:plugin-submission":"plugins/speakeasy/tools/build-submission.sh","verify:plugin-bundle":"plugins/speakeasy/tools/verify-skill-bundle.sh","prepublishOnly":"pnpm run build && rm -f dist/test.js dist/test.d.ts dist/test.js.map dist/test.d.ts.map","dev":"tsc --watch","test":"node dist/test.js","test:privacy":"bun test src/privacy-permissions.test.ts","test:cache":"pnpm run build && node scripts/cache-test.js","example":"pnpm run build && node examples/basic-usage.js","cli":"pnpm run build && node dist/bin/speakeasy-cli.js","docs":"cd docs-site && pnpm dev","docs:build":"cd docs-site && pnpm build"},"bin":{"speakeasy":"dist/bin/speakeasy-cli.js"},"keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"author":{"name":"arach"},"license":"MIT","engines":{"node":">=22.12.0","bun":">=1.0.0"},"dependencies":{"@openscout/agent-sessions":"^0.2.64","bonjour-service":"^1.4.4","chalk":"^5.6.2","commander":"^15.0.0","qrcode":"^1.5.4","uuid":"^14.0.1","ws":"^8.21.1","zod":"^3.25.76"},"devDependencies":{"@arach/dewey":"^0.2.0","@types/node":"^22.0.0","@types/qrcode":"^1.5.6","@types/ws":"^8.18.1","tsup":"^8.5.1","typescript":"^5.9.3"},"overrides":{"tar-fs":"^2.1.4"},"pnpm":{"overrides":{"rollup":">=4.59.0","esbuild":">=0.28.1","yaml":">=2.8.3","picomatch@>=4":">=4.0.4"}},"_id":"@arach/speakeasy@0.2.19","gitHead":"ac1a7338c6cf9f22241b68ddcc16e82a7088a7a3","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-5mrAEwhvjWQaRb58E56vfVuod9HwK1IhXVLu4GCW5OwGO3zLzt72H9tgqlKqKgwgYfonm7QSHEOxWOQoX+ezRw==","shasum":"dcddeaf39e94617ac8474d30c309ff43dff91b29","tarball":"https://registry.npmjs.org/@arach/speakeasy/-/speakeasy-0.2.19.tgz","fileCount":14,"unpackedSize":486105,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHnRBLbrEHCg40yHBEwZTBxNcidzX5naHt8AUtV5h1o4AiEA2P9ltAiM4wEe/vLvckoq3fUFhUD/HqGQJjzjVMwoAgs="}]},"_npmUser":{"name":"arach","email":"arach@tchoupani.com"},"directories":{},"maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/speakeasy_0.2.19_1785678411968_0.24144141711726497"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-16T17:13:06.721Z","modified":"2026-08-02T13:46:52.233Z","0.1.0":"2025-07-16T17:13:06.962Z","0.1.1":"2025-07-17T02:56:45.480Z","0.1.2":"2025-07-17T19:14:56.133Z","0.1.3":"2025-07-17T19:18:32.208Z","0.1.4":"2025-07-23T01:23:47.158Z","0.1.5":"2025-07-26T18:51:06.409Z","0.1.6":"2025-07-26T19:53:17.172Z","0.2.0":"2025-08-04T16:49:20.132Z","0.2.1":"2025-08-05T20:20:19.043Z","0.2.2":"2025-08-06T19:50:10.879Z","0.2.3":"2025-08-11T15:56:50.350Z","0.2.4":"2025-08-14T23:35:07.391Z","0.2.5":"2025-12-31T15:06:57.639Z","0.2.6":"2025-12-31T15:46:54.161Z","0.2.7":"2025-12-31T16:32:10.948Z","0.2.8":"2026-01-13T14:31:04.330Z","0.2.9":"2026-06-27T02:47:11.101Z","0.2.10":"2026-06-27T02:48:23.469Z","0.2.11":"2026-06-27T02:48:49.038Z","0.2.12":"2026-06-27T02:49:30.934Z","0.2.13":"2026-07-08T15:49:09.016Z","0.2.14":"2026-07-08T23:25:24.217Z","0.2.15":"2026-07-10T16:17:00.985Z","0.2.16":"2026-07-13T19:09:52.496Z","0.2.19":"2026-08-02T13:46:52.117Z"},"bugs":{"url":"https://github.com/arach/SpeakEasy/issues"},"author":{"name":"arach"},"license":"MIT","homepage":"https://speakeasy.arach.dev","keywords":["tts","speech","text-to-speech","openai","elevenlabs","groq","macos","cache","cli"],"repository":{"type":"git","url":"git+https://github.com/arach/SpeakEasy.git"},"description":"Convenient TTS CLI for Mac — centralized credentials + configurable caching so all your apps and agents can speak.","maintainers":[{"name":"arach","email":"arach@tchoupani.com"}],"readme":"# SpeakEasy\n\n**Speak to the Codex task you are already using. Hear its real answer come back.**\n\nSpeakEasy is a dual-mode voice companion for Codex Desktop on macOS. It\ncaptures an explicit utterance on the surface you are holding, transcribes it\nwith Apple Speech or the Mac's local Parakeet model, routes the final text to\nthe exact Codex task you chose, and narrates that task's real response through\na controllable native player. The same live task lanes are available from the\nMac, a browser, or an iPad on your local network.\n\n- **No shadow conversation:** the full transcript remains in Codex.\n- **No focus guessing:** the exact task ID is the routing authority.\n- **Local-network speech boundary:** Parakeet transcription stays on the Mac;\n  the Apple Speech fallback follows Apple's device settings and terms. Browser\n  and iPad fallback recordings travel only to the paired Mac and are deleted\n  after the request.\n- **One self-serve install:** Codex can verify and install the signed,\n  Apple-notarized app without a source checkout or developer tools.\n\n## Start with Codex\n\nPaste this bounded task into Codex Desktop:\n\n> Install SpeakEasy 0.2.18 on this Mac. Read\n> https://speakeasy.arach.dev/agent.md and follow Path A. Do not build from\n> source or bypass Gatekeeper. Tell me which human-only steps remain.\n\nThe current `0.2.18` build is an immutable self-serve **Mac core** preview. Do\nnot use it to evaluate the browser/iPad path. It remains a GitHub prerelease\npermanently; the first public **Latest** train is `0.2.19` after the clean\nsecond-Mac, paired-HTTPS device, and observer/presenter gates pass.\nSee [SpeakEasy for Codex](https://speakeasy.arach.dev/codex/) for the product\nloop and [`docs/release/self-serve-mac-test.md`](docs/release/self-serve-mac-test.md)\nfor the clean-machine proof.\n\nThe TypeScript library and CLI remain available for applications and agent\nhooks that need provider-independent TTS. Jump to [Library and CLI](#library-and-cli)\nif that is what you are installing.\n\n## Library and CLI\n\n### Welcome experience\n\nWhen you first run SpeakEasy CLI, you're greeted with a professional welcome screen:\n\n```\n+============================================================================+\n|                                                                            |\n| ███████╗██████╗ ███████╗ █████╗ ██╗  ██╗███████╗ █████╗ ███████╗██╗   ██╗ |\n| ██╔════╝██╔══██╗██╔════╝██╔══██╗██║ ██╔╝██╔════╝██╔══██╗██╔════╝╚██╗ ██╔╝ |\n| ███████╗██████╔╝█████╗  ███████║█████╔╝ █████╗  ███████║███████╗ ╚████╔╝  |\n| ╚════██║██╔═══╝ ██╔══╝  ██╔══██║██╔═██╗ ██╔══╝  ██╔══██║╚════██║  ╚██╔╝   |\n| ███████║██║     ███████╗██║  ██║██║  ██╗███████╗██║  ██║███████║   ██║    |\n| ╚══════╝╚═╝     ╚══════╝╚═╝  ╚═╝╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝╚══════╝   ╚═╝    |\n|                                                                            |\n+============================================================================+\n\n🎉 Welcome to SpeakEasy!\n\nWe didn't find a configuration file. Let's create one to get you started!\n\n📦 What is SpeakEasy?\n   A unified text-to-speech CLI that works with multiple providers.\n\n   Supported Providers:\n   • System Voices - macOS, Windows, Linux (no key needed)\n   • ElevenLabs - Premium voices (🔑 key required)\n   • OpenAI - High quality voices (🔑 key required)\n   • Groq - Fast & cheap (🔑 key required)\n   • Gemini - Google's advanced TTS (🔑 key required)\n\n🚀 Quick Start:\n   Try it now with built-in system voices:\n   \n   speakeasy \"Hello! Welcome to SpeakEasy!\" --provider system\n\n🔧 Setup API Keys (optional):\n   \n   For ElevenLabs:\n   export ELEVENLABS_API_KEY=\"your-api-key-here\"\n   Get key: https://elevenlabs.io/app/settings/api-keys\n   \n   For OpenAI TTS:\n   export OPENAI_API_KEY=\"your-api-key-here\"\n   Get key: https://platform.openai.com/api-keys\n   \n   For Groq (fast & cheap):\n   export GROQ_API_KEY=\"your-api-key-here\"\n   Get key: https://console.groq.com/keys\n   \n   For Gemini (Google's TTS):\n   export GEMINI_API_KEY=\"your-api-key-here\"\n   Get key: https://aistudio.google.com/apikey\n\n💾 Configuration:\n   Create config: speakeasy --config --edit\n   View settings: speakeasy --config\n\n🩺 Need Help?\n   Diagnose setup: speakeasy --doctor\n   Show all options: speakeasy --help\n\n────────────────────────────────────────────────────────────\n\nBuilt with ❤️ by Arach • https://arach.dev\n```\n\n**Experience the welcome screen:** `speakeasy --welcome`  \n**Get started instantly:** `speakeasy \"Hello World!\" --provider system`\n\n## ✨ Key Features\n\n### 🚀 **Intelligent Caching System**\n- **16x faster** repeated playback with SQLite-based cache\n- Automatic cache management with TTL and size limits\n- Content-aware deduplication prevents redundant API calls\n- Comprehensive analytics and cache inspection tools\n\n### ⚙️ **Centralized Configuration** \n- **Single config file** at `~/.config/speakeasy/settings.json`\n- **No more scattered API keys** - configure once, use everywhere\n- Global defaults with per-call overrides\n- Environment variable integration\n\n### 🎯 **Core Capabilities**\n- **Multiple TTS Providers**: System (macOS), OpenAI, ElevenLabs, Groq, Gemini\n- **Smart Fallbacks**: Automatic provider switching on failure\n- **Volume Control**: Precise control without affecting system volume\n- **Queue Management**: Priority-based speech queue with interruption\n- **TypeScript**: Full type safety and IntelliSense support\n\n### 🎧 **Demo**\nListen to SpeakEasy in action: [welcome-demo.mp3](examples/welcome-demo.mp3)\n\n*Generated with: `speakeasy \"Welcome to SpeakEasy! This unified text-to-speech service makes it easy to add voice to your applications\" --provider openai --voice nova --rate 185 --out welcome-demo.mp3`*\n\n## 🤖 Give your coding agent a voice\n\nSpeakEasy is built for agent workflows. You don't wire anything up yourself — you tell your\ncoding agent (Codex, Claude Code, Cursor, …) to do it. One sentence:\n\n> **Read https://speakeasy.arach.dev/agent.md and follow it.**\n\nThe agent installs the package, speaks short summaries after each task (system voice, no\nAPI key), and opens the deck when you ask. If you'd rather write the instructions yourself:\n\n> Install `@arach/speakeasy` in this project and use it to speak. After finishing a\n> task, use `npx @arach/speakeasy \"<one-sentence summary of what you did>\"` so I can\n> hear it — the system provider works with no API key. When I ask you to \"open the\n> deck\", run `npx @arach/speakeasy deck` and leave it running.\n\nThen run the deck once:\n\n```bash\nnpx @arach/speakeasy deck\n```\n\nScan the QR code with an iPad on the same Wi-Fi, tap **Share → Add to Home Screen**, and\nyour agent's work becomes something you can hear from anywhere in the room — the agent\nspeaks its summaries through SpeakEasy, and the deck is the control surface (lane\ncontrols, hold-to-speak, narration playback, themes) that drives it as the Mac link\ncomes online.\n\n## Installation\n\nFor the complete macOS app—local dictation, exact Codex task lanes, native\nnarration, and the Deck—the recommended installation flow is a bounded Codex\ntask. Paste this into Codex:\n\n> Install SpeakEasy 0.2.18 on this Mac. Read\n> https://speakeasy.arach.dev/agent.md and follow Path A. Do not build from\n> source or bypass Gatekeeper. Tell me which human-only steps remain.\n\nCodex downloads and inspects the pinned installer, verifies the published\nchecksum, Gatekeeper acceptance, Developer ID, and exact version, safely\nreplaces the app, and opens **Settings → Deck**. You only approve the microphone\nand local-network prompts that macOS requires a person to handle.\n\nFor a manual install, download the same signed and notarized release:\n\n**[Download SpeakEasy 0.2.18 for macOS](https://github.com/arach/SpeakEasy/releases/download/v0.2.18/SpeakEasy.dmg)**\n\n1. Drag SpeakEasy to **Applications**.\n2. Open it and approve microphone and local-network access when macOS asks.\n3. Open **SpeakEasy → Settings → Deck** and complete the three readiness checks.\n\nThe release is self-contained and requires an Apple silicon Mac running macOS\n14 or newer. Codex Desktop is required for exact-task voice lanes; the macOS\nsystem voice works without an API key.\n\nFor a source build or release development:\n\n```bash\ngit clone https://github.com/arach/speakeasy.git\ncd speakeasy\n./app/install.sh\n```\n\nThe source installer checks macOS, Bun, and Apple build tools; installs the pinned\ndependencies; builds and signs the app; safely replaces any running copy; and\nopens **SpeakEasy → Settings → Deck**. Its three-step checklist confirms the\nbundled runtime, finds Codex, and starts the live bridge. The device card and QR\nappear only when the bridge is genuinely ready.\n\nThere is no separate server package or Caddy setup. Release and source builds\nbundle a pinned, checksum-verified Caddy helper so the browser/iPad Deck always\nstarts on paired local HTTPS rather than silently losing microphone access on\nplain HTTP. SpeakEasy finds the native Codex binary from the desktop app or the\n`codex` command in your login shell. Re-running `./app/install.sh` is safe; use\n`--no-open` in automation.\n\nEnable **Start the deck with SpeakEasy** after the first successful launch to\nkeep it ready whenever the menu-bar app runs.\n\nRepeat the install on another Mac and it advertises itself separately. The\nnative iPad shell shows every available Mac in its machine menu and remembers\nthe last one; any laptop can use the QR/copy link from that Mac's Deck tab.\n\nFor the TypeScript library or CLI only:\n\n```bash\nbun add @arach/speakeasy\n```\n\n## Quick Start\n\n```typescript\nimport { say } from '@arach/speakeasy';\n\nawait say('Hello world!');                    // system voice\nawait say('Hello!', 'openai');                // OpenAI TTS\nawait say('Hello!', 'elevenlabs');            // ElevenLabs TTS  \nawait say('Hello!', 'groq');                  // Groq TTS\nawait say('Hello!', 'gemini');                // Gemini TTS\n```\n\n## 🏃‍♂️ Performance Impact\n\n**Caching makes a dramatic difference:**\n\n| Provider | Without Cache | With Cache | Speedup |\n|----------|---------------|------------|---------|\n| OpenAI | ~800ms | ~50ms | **16x faster** |\n| ElevenLabs | ~1200ms | ~50ms | **24x faster** |\n| Groq | ~400ms | ~50ms | **8x faster** |\n| Gemini | ~600ms | ~50ms | **12x faster** |\n\n*Cache automatically enabled for API providers when keys are present.*\n\n## Configuration\n\n**Stop copying API keys everywhere.** SpeakEasy uses a single, clean configuration file:\n\n**`~/.config/speakeasy/settings.json`**\n\n```json\n{\n  \"providers\": {\n    \"openai\": {\n      \"enabled\": true,\n      \"voice\": \"nova\",\n      \"model\": \"tts-1\",\n      \"apiKey\": \"sk-...\"\n    },\n    \"elevenlabs\": {\n      \"enabled\": true,\n      \"voiceId\": \"EXAVITQu4vr4xnSDxMaL\",\n      \"apiKey\": \"sk-...\"\n    },\n    \"system\": {\n      \"enabled\": true,\n      \"voice\": \"Samantha\"\n    },\n    \"groq\": {\n      \"enabled\": true,\n      \"voice\": \"onyx\",\n      \"model\": \"tts-1-hd\",\n      \"apiKey\": \"gsk-...\"\n    },\n    \"gemini\": {\n      \"enabled\": true,\n      \"model\": \"gemini-2.5-flash-preview-tts\",\n      \"apiKey\": \"AIza...\"\n    }\n  },\n  \"defaults\": {\n    \"provider\": \"groq\",\n    \"fallbackOrder\": [\"groq\", \"openai\", \"elevenlabs\", \"gemini\", \"system\"],\n    \"rate\": 180,\n    \"volume\": 0.7\n  },\n  \"global\": {\n    \"tempDir\": \"/tmp\",\n    \"cleanup\": true\n  }\n}\n```\n\n**✅ Configure once, use everywhere**  \n**✅ No more environment variables in every project**  \n**✅ Secure API key storage with proper permissions**\n\n### Environment Variables\n\n```bash\nexport OPENAI_API_KEY=your_openai_key\nexport ELEVENLABS_API_KEY=your_elevenlabs_key\nexport GROQ_API_KEY=your_groq_key\nexport GEMINI_API_KEY=your_gemini_key\n```\n\n## Usage\n\n### Basic Usage\n\n```typescript\nimport { say, speak } from '@arach/speakeasy';\n\n// Quick one-liners\nawait say('Hello world!');                    // system voice\nawait say('Hello!', 'openai');                // OpenAI TTS\nawait say('Hello!', 'elevenlabs');            // ElevenLabs TTS\nawait say('Hello!', 'groq');                  // Groq TTS\nawait say('Hello!', 'gemini');                // Gemini TTS\n\n// Full featured with volume control\nawait speak('Hello world!', { priority: 'high', volume: 0.5 });\nawait speak('Hello!', { provider: 'openai', priority: 'high', volume: 0.8 });\n\n// Custom configuration\nimport { SpeakEasy } from '@arach/speakeasy';\nconst speech = new SpeakEasy({\n  provider: 'openai',\n  openaiVoice: 'nova',\n  rate: 180,\n  volume: 0.6, // 60% volume\n});\nawait speech.speak('Hello world!');\n```\n\n### In Your Projects\n\n```typescript\n// notifications.ts\nimport { say } from '@arach/speakeasy';\n\nexport async function speakNotification(message: string, project: string) {\n  await say(`In ${project}, ${message}`, { priority: 'high', volume: 0.8 });\n}\n```\n\n### Volume Control\n\nSpeakEasy provides granular volume control (0.0-1.0) that only affects speech playback without changing your system volume:\n\n```typescript\nimport { say, speak, SpeakEasy } from '@arach/speakeasy';\n\n// Quick volume control\nawait say('Quiet message', 'openai', { volume: 0.3 });     // 30% volume\nawait say('Normal message', 'system', { volume: 0.7 });    // 70% volume (default)\nawait say('Loud message', 'elevenlabs', { volume: 1.0 });  // 100% volume\n\n// With speak function\nawait speak('Custom volume', { provider: 'groq', volume: 0.5 });\n\n// Class instance with default volume\nconst quietSpeaker = new SpeakEasy({\n  provider: 'openai',\n  volume: 0.4  // All speech will be at 40% volume by default\n});\nawait quietSpeaker.speak('This will be quiet');\nawait quietSpeaker.speak('This too', { volume: 0.9 }); // Override to 90%\n```\n\n**Volume Features:**\n- ✅ **Isolated**: Only affects SpeakEasy audio, never changes system volume\n- ✅ **Provider-agnostic**: Works with system voices, OpenAI, ElevenLabs, Groq, and Gemini\n- ✅ **Global config**: Set default volume in `~/.config/speakeasy/settings.json`\n- ✅ **Per-call override**: Specify volume for individual speech requests\n- ✅ **Debug visibility**: Shows current volume percentage in debug mode\n\n### Caching\n- **Auto-enabled** when API keys are present (OpenAI, ElevenLabs, Groq, Gemini)\n- **Deterministic UUID keys** - Same text+provider+voice+rate = identical cache key\n- **Collision-resistant** - Uses UUID v5 with deterministic construction\n- **Disabled for system voice** (macOS `say` command) - no benefit for local TTS\n- **Declarative TTL**: Configure with simple strings like `\"7d\"`, `\"1h\"`, `\"30m\"`\n- **Declarative max size**: Configure with strings like `\"100mb\"`, `\"1gb\"`\n- **Storage location**: `/tmp/speakeasy-cache/` by default\n\n**Cache Key Construction:**\n```\nUUID = SHA1(text|provider|voice|rate + namespace) → UUID v5\n```\n**Identical inputs always hit the same cache entry**\n\n### Convenience\n- `say('text')` - One-liner with system voice and caching\n- `say('text', 'openai' | 'elevenlabs' | 'groq' | 'gemini')` - One-liner with provider and caching\n- `say('text', provider, false)` - Disable caching for specific call\n- `speak('text', options, false)` - Full featured with caching control\n\n## Examples\n\n```bash\nbun run example\n```\n\n## Declarative Caching Configuration\n\n```typescript\nimport { SpeakEasy } from '@arach/speakeasy';\n\n// Simple declarative configuration\nconst speaker = new SpeakEasy({\n  provider: 'openai',\n  cache: {\n    enabled: true,        // auto: true when API keys present, false for system\n    ttl: '7d',           // 7 days - '1h', '30m', '1w', '1M', etc.\n    maxSize: '100mb',    // '1gb', '500mb', etc.\n    dir: '/tmp/my-cache' // custom directory\n  }\n});\n\n// Using global config\n// ~/.config/speakeasy/settings.json\n{\n  \"cache\": {\n    \"enabled\": true,     // auto-enabled when API keys present\n    \"ttl\": \"1d\",\n    \"maxSize\": \"500mb\"\n  }\n}\n```\n\n## CLI Usage\n\nInstall globally for command-line access:\n\n```bash\nbun add --global @arach/speakeasy\n\n# Basic usage\nspeakeasy \"Hello world\"\nspeakeasy --text \"Hello from CLI\" --provider openai --voice nova\n\n# Volume control\nspeakeasy \"Quiet message\" --volume 0.3\nspeakeasy \"Loud message\" --provider openai --volume 0.9 --voice nova\n\n# Save to file (plays audio AND saves file)\nspeakeasy \"Welcome message\" --out welcome.mp3\nspeakeasy \"Notification\" --provider openai --voice nova --out notification.mp3\n\n# With caching\nspeakeasy --cache --text \"Hello cached world\"\n\n# Cache management\nspeakeasy --cache --list\nspeakeasy --cache --find \"hello\"\nspeakeasy --cache --provider openai\nspeakeasy --clear-cache\nspeakeasy --config\n\n# Diagnostics and health checks\nspeakeasy --diagnose          # Show configuration diagnostics\nspeakeasy --doctor           # Run comprehensive health check on config\nspeakeasy --debug \"test\"     # Run with debug logging\n\n# List all available voices\nspeakeasy --help\n```\n\n## Cache Inspection\n\n### Programmatic\n```typescript\nconst speaker = new SpeakEasy({ cache: { enabled: true } });\n\n// Get all cached entries\nconst metadata = await speaker.getCacheMetadata();\nconsole.log(metadata);\n\n// Find by text\nconst found = await speaker.findByText('hello world');\n\n// Find by provider\nconst openaiEntries = await speaker.findByProvider('openai');\n```\n\n### CLI\n```bash\n# List all cached entries\nspeakeasy --cache --list\n\n# Example output:\n📋 Cache Entries (1)\n═══════════════════════\n\n1. 8c957870-4741-5394-a0ed-b3db062d3ec3\n   Text: \"Hello world\"\n   Provider: openai\n   Voice: nova\n   Size: 15.5 KB\n   Created: 2025-07-26, 2:09:57 p.m.\n   File: 8c957870-4741-5394-a0ed-b3db062d3ec3.mp3\n   Model: tts-1\n\n💡 Use --id KEY to see full details, --play KEY to play audio\n\n# Search by text\nspeakeasy --cache --find \"hello\"\n\n# Filter by provider\nspeakeasy --cache --provider openai\n\n# Show cache stats\nspeakeasy --cache --stats\n```\n\n## Diagnostics and Health Checks\n\nSpeakEasy includes comprehensive diagnostic tools to help troubleshoot configuration issues:\n\n### CLI Health Check\n```bash\n# Quick health check of your configuration\nspeakeasy --doctor\n\n# Detailed configuration diagnostics\nspeakeasy --diagnose\n\n# Debug mode with detailed logging\nspeakeasy --debug \"test message\"\n```\n\n### Health Check Features\n- **System compatibility** (macOS detection, required commands)\n- **Configuration file validation** (JSON syntax, permissions)\n- **API key detection** (both config file and environment variables)\n- **Voice configuration** (provider-specific settings)\n- **Cache configuration** (directory permissions, TTL settings)\n- **Actionable fixes** (specific commands to resolve issues)\n\n### Example Output\n```bash\n$ speakeasy --doctor\n🏥 Speakeasy Configuration Health Check\n\n🔍 System Compatibility:\n   ✅ macOS detected - system voice support available\n   ✅ `say` command available\n   ✅ `afplay` command available\n\n🔧 Configuration Health:\n   ✅ Config file exists\n   ✅ Config file is valid JSON\n   ✅ Config directory permissions OK\n\n🔑 API Key Configuration:\n   ✅ OpenAI: Configured via environment\n   ❌ ElevenLabs: Not configured\n   ✅ Groq: Configured in file\n   ✅ Gemini: Configured in file\n\n🎙️  Voice Configuration:\n   system: Samantha\n   openai: nova\n   elevenlabs: EXAVITQu4vr4xnSDxMaL\n   groq: nova\n   gemini: Puck\n\n📦 Cache Configuration:\n   ✅ Cache enabled\n   📁 Cache dir: /tmp/speakeasy-cache\n   ✅ Cache directory accessible\n\n📋 Health Summary:\n   🎉 All checks passed! Speakeasy is healthy.\n```\n\n## Testing\n\n```bash\nbun run build\nnpm test\nnpm test cache  # Test caching specifically\nbun run cli -- --help  # Test CLI\nbun run cli -- --doctor  # Test health check\n```\n","readmeFilename":"README.md"}