{"_id":"@codewithkenzo/pi-theme-switcher","_rev":"9-22085ba1f43a7460661682b98a2e7a47","name":"@codewithkenzo/pi-theme-switcher","dist-tags":{"latest":"0.1.8"},"versions":{"0.1.0":{"name":"@codewithkenzo/pi-theme-switcher","version":"0.1.0","keywords":["pi","pi-coding-agent","theme","theme-switcher","tui"],"_id":"@codewithkenzo/pi-theme-switcher@0.1.0","maintainers":[{"name":"codewithkenzo","email":"codewithkenzo@gmail.com"}],"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"6d31f8e50ffd766405218630df760efa306b8656","tarball":"https://registry.npmjs.org/@codewithkenzo/pi-theme-switcher/-/pi-theme-switcher-0.1.0.tgz","fileCount":22,"integrity":"sha512-cH/4LW0XV9cUM8WjZgoTIxR7aVh/DEtlmqb9aX8+X3s+kjME7/kCcB2AlxMDe6Nraba4BIQZwhLIW8bnZDuLUw==","signatures":[{"sig":"MEUCIB5YAV+/PQ/b7tABD6RO1BvIRx1f1FIkfz5+kkrXHCRlAiEA6GON9AUfLCSQo3v0bSD0oH0dwsL/Pye5HOB3KcvdoE8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86516},"main":"./dist/index.js","type":"module","gitHead":"cc0b940adc8afda348c1effc3138790f899b642f","scripts":{"tsc":"tsc","test":"bun test","build":"bun build ./index.ts --outfile ./dist/index.js --target node","typecheck":"tsc --noEmit"},"_npmUser":{"name":"codewithkenzo","email":"codewithkenzo@gmail.com"},"extensions":["./dist/index.js"],"_npmVersion":"10.9.7","description":"Switch and preview Pi themes in a live session","directories":{},"_nodeVersion":"22.22.2","dependencies":{"effect":"4.0.0-beta.48","@sinclair/typebox":"^0.34.0","@mariozechner/pi-tui":"^0.63.1"},"_hasShrinkwrap":false,"devDependencies":{"bun-types":"1.3.12","@types/bun":"1.3.12","typescript":"^5.0.0","@mariozechner/pi-coding-agent":"^0.63.1"},"peerDependencies":{"@mariozechner/pi-agent-core":"*","@mariozechner/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-theme-switcher_0.1.0_1776377209629_0.1173726187182893","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@codewithkenzo/pi-theme-switcher","version":"0.1.1","keywords":["pi","pi-agent","pi-coding-agent","pi-agent-core","theme-switcher","theme","terminal-ui","tui","theming","workflow"],"_id":"@codewithkenzo/pi-theme-switcher@0.1.1","maintainers":[{"name":"codewithkenzo","email":"codewithkenzo@gmail.com"}],"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"3f0192c33f430d9eae98d1e2a5c026da74a1a12e","tarball":"https://registry.npmjs.org/@codewithkenzo/pi-theme-switcher/-/pi-theme-switcher-0.1.1.tgz","fileCount":22,"integrity":"sha512-3+buNXHaPsyHrTUqk7sVcJ4Z+grR0l0iVfZ7kn4G9AL4pV07AlVj4tLN6JDWoIumcIdFS2S+gsOB5hErqvJH4A==","signatures":[{"sig":"MEUCIE1QMV6fZkdu61kiStrgCC0dxWLWyJ7UMalp2ZCfwBPTAiEAo4ekTxWlbnrYaRL51QEZ1+GcT7WUMP0LbY/MOtmxlTs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91108},"main":"./dist/index.js","type":"module","gitHead":"8a637b6652aeed73adc6af4221d70733e7dd7790","scripts":{"tsc":"tsc","test":"bun test","build":"bun build ./index.ts --outfile ./dist/index.js --target node","typecheck":"tsc --noEmit"},"_npmUser":{"name":"codewithkenzo","email":"codewithkenzo@gmail.com"},"extensions":["./dist/index.js"],"_npmVersion":"10.9.7","description":"Switch and preview Pi themes during live sessions","directories":{},"_nodeVersion":"22.22.2","dependencies":{"effect":"4.0.0-beta.48","@sinclair/typebox":"^0.34.0","@mariozechner/pi-tui":"^0.63.1"},"_hasShrinkwrap":false,"devDependencies":{"bun-types":"1.3.12","@types/bun":"1.3.12","typescript":"^5.0.0","@mariozechner/pi-coding-agent":"^0.63.1"},"peerDependencies":{"@mariozechner/pi-agent-core":"*","@mariozechner/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-theme-switcher_0.1.1_1776380407903_0.4770407755134003","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@codewithkenzo/pi-theme-switcher","version":"0.1.2","keywords":["pi","pi-agent","pi-coding-agent","pi-agent-core","theme-switcher","theme","terminal-ui","tui","theming","workflow"],"_id":"@codewithkenzo/pi-theme-switcher@0.1.2","maintainers":[{"name":"codewithkenzo","email":"codewithkenzo@gmail.com"}],"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"43ebba63881c671931242bef0f828c4449ac5a3a","tarball":"https://registry.npmjs.org/@codewithkenzo/pi-theme-switcher/-/pi-theme-switcher-0.1.2.tgz","fileCount":4,"integrity":"sha512-wZG97wWFT4YvWscquaYf4PGxIFkFQgF7SwWcBQecGoS43CFAmfnLohdaTw3Y6tdJNiGS2zpwj/aHaX1+3k7NOQ==","signatures":[{"sig":"MEUCIQDscwp9jPYiHfOQwOMFiIDHQxyIxKrdS5zFzQY8HNuA6AIgCyyou9Q9lIi+caWPcKsHNQYu4CoRkS4UFaDfSUFatR0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":645265},"main":"./dist/index.js","type":"module","gitHead":"d2958c1db21a7de4c46a42bc9966decbd08d36c7","scripts":{"tsc":"tsc","test":"bun test","build":"bun build ./index.ts --outfile ./dist/index.js --target node","typecheck":"tsc --noEmit"},"_npmUser":{"name":"codewithkenzo","email":"codewithkenzo@gmail.com"},"extensions":["./dist/index.js"],"_npmVersion":"10.9.7","description":"Switch and preview Pi themes during live sessions","directories":{},"_nodeVersion":"22.22.2","dependencies":{"effect":"4.0.0-beta.48","@sinclair/typebox":"^0.34.0","@mariozechner/pi-tui":"^0.63.1"},"_hasShrinkwrap":false,"devDependencies":{"bun-types":"1.3.12","@types/bun":"1.3.12","typescript":"^5.0.0","@mariozechner/pi-coding-agent":"^0.63.1"},"peerDependencies":{"@mariozechner/pi-agent-core":"*","@mariozechner/pi-coding-agent":"*"},"peerDependenciesMeta":{"@mariozechner/pi-agent-core":{"optional":true},"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-theme-switcher_0.1.2_1776408814065_0.8339086150742343","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@codewithkenzo/pi-theme-switcher","version":"0.1.3","keywords":["pi","pi-agent","pi-coding-agent","pi-agent-core","theme-switcher","theme","terminal-ui","tui","theming","workflow"],"_id":"@codewithkenzo/pi-theme-switcher@0.1.3","maintainers":[{"name":"codewithkenzo","email":"codewithkenzo@gmail.com"}],"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"eb0988179f1db981f586358b6f1a57498fa6ca3f","tarball":"https://registry.npmjs.org/@codewithkenzo/pi-theme-switcher/-/pi-theme-switcher-0.1.3.tgz","fileCount":4,"integrity":"sha512-UlvT/DuVhVLnXdqrND29yrdGjtYlquJ043nwvzgGUuYXo4EbyJWtzwFSavxwXeW1EIAQtpsKGj5CVHTB2hNXAg==","signatures":[{"sig":"MEYCIQDiMca1PRnkELpujqtXcxNEJrR0LYgd7Fuqu7q1gwAQAAIhAJfA/fkXhuKuPuCJolcy5N8NjcMxnMMo6pPsEOd2nEXH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":645344},"main":"./dist/index.js","type":"module","gitHead":"2f81b7bb5b55f88a9bf93b9045c9fc55a3229a5b","scripts":{"tsc":"tsc","test":"bun test","build":"bun build ./index.ts --outfile ./dist/index.js --target node","typecheck":"tsc --noEmit"},"_npmUser":{"name":"codewithkenzo","email":"codewithkenzo@gmail.com"},"extensions":["./dist/index.js"],"_npmVersion":"10.9.7","description":"Switch and preview Pi themes during live sessions","directories":{},"_nodeVersion":"22.22.2","dependencies":{"effect":"4.0.0-beta.48","@sinclair/typebox":"^0.34.0","@mariozechner/pi-tui":"^0.63.1"},"_hasShrinkwrap":false,"devDependencies":{"bun-types":"1.3.12","@types/bun":"1.3.12","typescript":"^5.0.0","@mariozechner/pi-coding-agent":"^0.63.1"},"peerDependencies":{"@mariozechner/pi-agent-core":"*","@mariozechner/pi-coding-agent":"*"},"peerDependenciesMeta":{"@mariozechner/pi-agent-core":{"optional":true},"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-theme-switcher_0.1.3_1776410988301_0.6081382649892964","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@codewithkenzo/pi-theme-switcher","version":"0.1.4","keywords":["pi","pi-agent","pi-coding-agent","pi-agent-core","theme-switcher","theme","terminal-ui","tui","theming","workflow"],"_id":"@codewithkenzo/pi-theme-switcher@0.1.4","maintainers":[{"name":"codewithkenzo","email":"codewithkenzo@gmail.com"}],"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"6db30a60177ae98aa328962d5618d095ac02572b","tarball":"https://registry.npmjs.org/@codewithkenzo/pi-theme-switcher/-/pi-theme-switcher-0.1.4.tgz","fileCount":4,"integrity":"sha512-Q3Ob8n7sBxthzua3ZUg9RDXXjjKyqeEeULiGz6pa6d9rj0axtdoOGhjpxIAtwHOoBBamZa2yL1LPt8SkqPZ8zA==","signatures":[{"sig":"MEQCIHBBYVj2biymEEnIih6W0exUX1n1yvoFhCnzbRv1ccnXAiBu/rs4j5kOjv98udWZOzt4ORrs4Br6w/0cmtk1Qr2O3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":646745},"main":"./dist/index.js","type":"module","gitHead":"0197348339d5ef487d0ccff8f8641c7d40b8ee15","scripts":{"tsc":"tsc","test":"bun test","build":"bun build ./index.ts --outfile ./dist/index.js --target node","typecheck":"tsc --noEmit"},"_npmUser":{"name":"codewithkenzo","email":"codewithkenzo@gmail.com"},"extensions":["./dist/index.js"],"_npmVersion":"11.14.1","description":"Switch and preview Pi themes during live sessions","directories":{},"_nodeVersion":"26.2.0","dependencies":{"effect":"4.0.0-beta.48","@sinclair/typebox":"^0.34.0","@mariozechner/pi-tui":"^0.63.1"},"_hasShrinkwrap":false,"devDependencies":{"bun-types":"1.3.12","@types/bun":"1.3.12","typescript":"^5.0.0","@mariozechner/pi-coding-agent":"^0.63.1"},"peerDependencies":{"@mariozechner/pi-agent-core":"*","@mariozechner/pi-coding-agent":"*"},"peerDependenciesMeta":{"@mariozechner/pi-agent-core":{"optional":true},"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-theme-switcher_0.1.4_1780417636331_0.24486180714860395","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@codewithkenzo/pi-theme-switcher","version":"0.1.5","keywords":["pi","pi-agent","pi-coding-agent","pi-agent-core","theme-switcher","theme","terminal-ui","tui","theming","workflow"],"_id":"@codewithkenzo/pi-theme-switcher@0.1.5","maintainers":[{"name":"codewithkenzo","email":"codewithkenzo@gmail.com"}],"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"28ab5bc469a6faa153f31234568aaa1df1d68a9a","tarball":"https://registry.npmjs.org/@codewithkenzo/pi-theme-switcher/-/pi-theme-switcher-0.1.5.tgz","fileCount":4,"integrity":"sha512-8naBbrofxcVJdbi+bXw0FMmD/6c0WLSaLZ0LWuH6xWVsmMaZLvGKXRlwVkMQ/2yCO8aJL8KqnSHwKsc3ePegog==","signatures":[{"sig":"MEQCIAz6I95/a2LVnzoHNu6CiIseW79ECard3/yL35/5mMHbAiBi+eiqrFyJkqAjyw2nyMkZYLipEZrtIy7gp/79uVaq2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":660842},"main":"./dist/index.js","type":"module","gitHead":"7b43ee11578b75f3e990485f29749d5c6066b7cc","scripts":{"tsc":"tsc","test":"bun test","build":"bun build ./index.ts --outfile ./dist/index.js --target node","typecheck":"tsc --noEmit"},"_npmUser":{"name":"codewithkenzo","email":"codewithkenzo@gmail.com"},"extensions":["./dist/index.js"],"_npmVersion":"11.14.1","description":"Switch and preview Pi themes during live sessions","directories":{},"_nodeVersion":"26.2.0","dependencies":{"effect":"4.0.0-beta.48","@sinclair/typebox":"^0.34.49","@mariozechner/pi-tui":"^0.73.1"},"_hasShrinkwrap":false,"devDependencies":{"bun-types":"1.3.14","@types/bun":"1.3.14","typescript":"^5.0.0","@mariozechner/pi-coding-agent":"^0.73.1"},"peerDependencies":{"@mariozechner/pi-agent-core":"*","@mariozechner/pi-coding-agent":"*"},"peerDependenciesMeta":{"@mariozechner/pi-agent-core":{"optional":true},"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-theme-switcher_0.1.5_1782815529502_0.6894038181168141","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@codewithkenzo/pi-theme-switcher","version":"0.1.6","keywords":["pi","pi-agent","pi-coding-agent","pi-agent-core","theme-switcher","theme","terminal-ui","tui","theming","workflow"],"_id":"@codewithkenzo/pi-theme-switcher@0.1.6","maintainers":[{"name":"codewithkenzo","email":"codewithkenzo@gmail.com"}],"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"3336401d32d08de3e21548e5c94bbab591bbb404","tarball":"https://registry.npmjs.org/@codewithkenzo/pi-theme-switcher/-/pi-theme-switcher-0.1.6.tgz","fileCount":4,"integrity":"sha512-uxvZrWAXIGIk9bH1k0ksjKOq4/0sAPii8Bhndtkt+cbZF8+lxjpsUqqjx++DSA9Bg0+HRJOeql9Qf0fps1RDuQ==","signatures":[{"sig":"MEUCIQCoy3n1Tm+3lkMNL9hFKiLbqBf2xtiw6Hs0rkKLZxiQ6gIgBVHZt/AxLOE77bDt9lUCFDyQLDHggJZ5R5YvFVslOns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":661671},"main":"./dist/index.js","type":"module","gitHead":"ed1183eaaef969c5725f65c1db4bae04b6f3ad8b","scripts":{"tsc":"tsc","test":"bun test","build":"bun build ./index.ts --outfile ./dist/index.js --target node","typecheck":"tsc --noEmit"},"_npmUser":{"name":"codewithkenzo","email":"codewithkenzo@gmail.com"},"extensions":["./dist/index.js"],"_npmVersion":"11.14.1","description":"Switch and preview Pi themes during live sessions","directories":{},"_nodeVersion":"26.2.0","dependencies":{"effect":"4.0.0-beta.48","@sinclair/typebox":"^0.34.49","@mariozechner/pi-tui":"^0.73.1"},"_hasShrinkwrap":false,"devDependencies":{"bun-types":"1.3.14","@types/bun":"1.3.14","typescript":"^5.0.0","@mariozechner/pi-coding-agent":"^0.73.1"},"peerDependencies":{"@mariozechner/pi-agent-core":"*","@mariozechner/pi-coding-agent":"*"},"peerDependenciesMeta":{"@mariozechner/pi-agent-core":{"optional":true},"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-theme-switcher_0.1.6_1782910688091_0.14342480059723184","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@codewithkenzo/pi-theme-switcher","version":"0.1.7","keywords":["pi","pi-agent","pi-coding-agent","pi-agent-core","theme-switcher","theme","terminal-ui","tui","theming","workflow"],"_id":"@codewithkenzo/pi-theme-switcher@0.1.7","maintainers":[{"name":"codewithkenzo","email":"codewithkenzo@gmail.com"}],"pi":{"extensions":["./dist/index.js"]},"dist":{"shasum":"2e0f100af044d84ec76c84247556d51072ffb9a0","tarball":"https://registry.npmjs.org/@codewithkenzo/pi-theme-switcher/-/pi-theme-switcher-0.1.7.tgz","fileCount":4,"integrity":"sha512-tx0zUJF7RT0xtpEhv3ZytYLALJjZrfjMpf1PLNAckx55wJEALPEqbdYOCT8JDtCbDLg3pO+kSflGg2J4HtkKCA==","signatures":[{"sig":"MEYCIQDEq2fguZ3kp4eMThEsQhj1YrVF3NfTvYAhKgChxHEB0AIhAORGbeROgbd+ngeI+YlPVTcumAd3vFH4WPWZVfYAUrVU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":670929},"main":"./dist/index.js","type":"module","gitHead":"ed1183eaaef969c5725f65c1db4bae04b6f3ad8b","scripts":{"tsc":"tsc","test":"bun test","build":"bun build ./index.ts --outfile ./dist/index.js --target node","typecheck":"tsc --noEmit"},"_npmUser":{"name":"codewithkenzo","email":"codewithkenzo@gmail.com"},"extensions":["./dist/index.js"],"_npmVersion":"11.16.0","description":"Switch and preview Pi themes during live sessions","directories":{},"_nodeVersion":"26.4.0","dependencies":{"effect":"4.0.0-beta.48","@sinclair/typebox":"^0.34.49","@earendil-works/pi-tui":"^0.80.3"},"_hasShrinkwrap":false,"devDependencies":{"bun-types":"1.3.14","@types/bun":"1.3.14","typescript":"^5.0.0","@earendil-works/pi-coding-agent":"^0.80.3"},"peerDependencies":{"@earendil-works/pi-agent-core":">=0.78.1 <1","@earendil-works/pi-coding-agent":">=0.78.1 <1"},"peerDependenciesMeta":{"@earendil-works/pi-agent-core":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-theme-switcher_0.1.7_1782917377015_0.44732653746734363","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@codewithkenzo/pi-theme-switcher","version":"0.1.8","description":"Switch and preview Pi themes during live sessions","type":"module","main":"./dist/index.js","extensions":["./dist/index.js"],"pi":{"extensions":["./dist/index.js"]},"scripts":{"build":"bun build ./index.ts --outfile ./dist/index.js --target node","tsc":"tsc","typecheck":"tsc --noEmit","test":"bun test"},"keywords":["pi-package","pi","pi-agent","pi-coding-agent","pi-agent-core","theme-switcher","theme","terminal-ui","tui","theming","workflow"],"dependencies":{"@mariozechner/pi-tui":"^0.73.1","@sinclair/typebox":"^0.34.49","effect":"4.0.0-beta.48"},"devDependencies":{"@mariozechner/pi-coding-agent":"^0.73.1","bun-types":"1.3.14","@types/bun":"1.3.14","typescript":"^5.0.0"},"peerDependencies":{"@mariozechner/pi-agent-core":"*","@mariozechner/pi-coding-agent":"*"},"peerDependenciesMeta":{"@mariozechner/pi-agent-core":{"optional":true},"@mariozechner/pi-coding-agent":{"optional":true}},"_id":"@codewithkenzo/pi-theme-switcher@0.1.8","_nodeVersion":"26.4.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-DGOm8KoEsyzjSjKX/5aAnFRGR/ZkNtYh1vUaDLdjvVLuRhTzgqMjeiNRF083ELyzm29UQGiFn/3reQi80V/hEw==","shasum":"ac4b70b0d8ac1add88baaaf059785ceaef90e647","tarball":"https://registry.npmjs.org/@codewithkenzo/pi-theme-switcher/-/pi-theme-switcher-0.1.8.tgz","fileCount":4,"unpackedSize":661689,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGyF/0323WO9JPfMWfvRf5iW2VEGMS1DzaVFItmVO38vAiBxrv8rrrOgHnePLhZcC2L6jMvj3y7zuTLEIShyH0cPpw=="}]},"_npmUser":{"name":"codewithkenzo","email":"codewithkenzo@gmail.com"},"directories":{},"maintainers":[{"name":"codewithkenzo","email":"codewithkenzo@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-theme-switcher_0.1.8_1783031380560_0.31745571583412313"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-16T22:06:49.532Z","modified":"2026-07-02T22:29:40.851Z","0.1.0":"2026-04-16T22:06:49.770Z","0.1.1":"2026-04-16T23:00:08.049Z","0.1.2":"2026-04-17T06:53:34.218Z","0.1.3":"2026-04-17T07:29:48.465Z","0.1.4":"2026-06-02T16:27:16.534Z","0.1.5":"2026-06-30T10:32:09.653Z","0.1.6":"2026-07-01T12:58:08.219Z","0.1.7":"2026-07-01T14:49:37.204Z","0.1.8":"2026-07-02T22:29:40.738Z"},"keywords":["pi-package","pi","pi-agent","pi-coding-agent","pi-agent-core","theme-switcher","theme","terminal-ui","tui","theming","workflow"],"description":"Switch and preview Pi themes during live sessions","maintainers":[{"name":"codewithkenzo","email":"codewithkenzo@gmail.com"}],"readme":"# Theme Switcher\n\n[![npm](https://img.shields.io/npm/v/@codewithkenzo/pi-theme-switcher?color=3B82F6&style=flat-square)](https://www.npmjs.com/package/@codewithkenzo/pi-theme-switcher)\n[![Bun](https://img.shields.io/badge/Bun-%23000?style=flat-square&logo=bun&logoColor=white)](https://bun.sh)\n[![Effect](https://img.shields.io/badge/Effect--TS-black?style=flat-square)](https://effect.website)\n[![TypeScript](https://img.shields.io/badge/TypeScript-%23007ACC?style=flat-square&logo=typescript&logoColor=white)](https://www.typescriptlang.org)\n\n`@codewithkenzo/pi-theme-switcher` — Runtime theme selection and preview for the [Pi coding agent](https://github.com/badlogic/pi-mono).\n\nPart of the [Pi Rig suite](https://github.com/codewithkenzo/pi-rig).\n\nTheme Switcher lets the agent switch, preview, and cycle themes during a live session. It persists the active theme across restarts and injects current-theme context into each session.\n\n## Quick demo\n\n[![Theme Switcher demo](../../docs/media/demos/theme-switcher-demo.gif)](../../docs/media/demos/theme-switcher-demo.mp4)\n\nShows live preview, theme changes, and session-aware runtime theming in action.\n\n## Surfaces\n\n| Type | Name | Purpose |\n|------|------|---------|\n| Tool | `theme_set` | Set the active theme by name |\n| Tool | `theme_list` | List available themes |\n| Tool | `theme_preview` | Preview a theme without committing |\n| Command | `/theme status` | Show the current active theme |\n| Command | `/theme set <name>` | Set the active theme |\n| Command | `/theme list` | List available themes |\n| Command | `/theme preview <name>` | Preview a theme |\n| Command | `/theme cycle` | Cycle to the next theme |\n\n## Palette preview (compact)\n\n`accent · header · success · warning · error` swatches (flat-square, no rounded corners).\n\n| NF | Palette | Variant | Preview |\n|---|---|---|---|\n| `` | `catppuccin-mocha` | dark | ![#89b4fa](https://img.shields.io/badge/%20-89b4fa-89b4fa?style=flat-square) ![#cba6f7](https://img.shields.io/badge/%20-cba6f7-cba6f7?style=flat-square) ![#a6e3a1](https://img.shields.io/badge/%20-a6e3a1-a6e3a1?style=flat-square) ![#f9e2af](https://img.shields.io/badge/%20-f9e2af-f9e2af?style=flat-square) ![#f38ba8](https://img.shields.io/badge/%20-f38ba8-f38ba8?style=flat-square) |\n| `` | `catppuccin-latte` | light | ![#1e66f5](https://img.shields.io/badge/%20-1e66f5-1e66f5?style=flat-square) ![#8839ef](https://img.shields.io/badge/%20-8839ef-8839ef?style=flat-square) ![#40a02b](https://img.shields.io/badge/%20-40a02b-40a02b?style=flat-square) ![#df8e1d](https://img.shields.io/badge/%20-df8e1d-df8e1d?style=flat-square) ![#d20f39](https://img.shields.io/badge/%20-d20f39-d20f39?style=flat-square) |\n| `` | `nord` | dark | ![#88c0d0](https://img.shields.io/badge/%20-88c0d0-88c0d0?style=flat-square) ![#5e81ac](https://img.shields.io/badge/%20-5e81ac-5e81ac?style=flat-square) ![#a3be8c](https://img.shields.io/badge/%20-a3be8c-a3be8c?style=flat-square) ![#ebcb8b](https://img.shields.io/badge/%20-ebcb8b-ebcb8b?style=flat-square) ![#bf616a](https://img.shields.io/badge/%20-bf616a-bf616a?style=flat-square) |\n| `` | `dracula` | dark | ![#bd93f9](https://img.shields.io/badge/%20-bd93f9-bd93f9?style=flat-square) ![#bd93f9](https://img.shields.io/badge/%20-bd93f9-bd93f9?style=flat-square) ![#50fa7b](https://img.shields.io/badge/%20-50fa7b-50fa7b?style=flat-square) ![#f1fa8c](https://img.shields.io/badge/%20-f1fa8c-f1fa8c?style=flat-square) ![#ff5555](https://img.shields.io/badge/%20-ff5555-ff5555?style=flat-square) |\n| `` | `tokyo-night` | dark | ![#7aa2f7](https://img.shields.io/badge/%20-7aa2f7-7aa2f7?style=flat-square) ![#bb9af7](https://img.shields.io/badge/%20-bb9af7-bb9af7?style=flat-square) ![#9ece6a](https://img.shields.io/badge/%20-9ece6a-9ece6a?style=flat-square) ![#e0af68](https://img.shields.io/badge/%20-e0af68-e0af68?style=flat-square) ![#f7768e](https://img.shields.io/badge/%20-f7768e-f7768e?style=flat-square) |\n| `` | `electric-midnight` | dark | ![#8B5CF6](https://img.shields.io/badge/%20-8B5CF6-8B5CF6?style=flat-square) ![#E4E4E7](https://img.shields.io/badge/%20-E4E4E7-E4E4E7?style=flat-square) ![#3B82F6](https://img.shields.io/badge/%20-3B82F6-3B82F6?style=flat-square) ![#8B5CF6](https://img.shields.io/badge/%20-8B5CF6-8B5CF6?style=flat-square) ![#DC2626](https://img.shields.io/badge/%20-DC2626-DC2626?style=flat-square) |\n| `` | `cadet` | dark | ![#7D39EB](https://img.shields.io/badge/%20-7D39EB-7D39EB?style=flat-square) ![#F5F4EE](https://img.shields.io/badge/%20-F5F4EE-F5F4EE?style=flat-square) ![#C6FF33](https://img.shields.io/badge/%20-C6FF33-C6FF33?style=flat-square) ![#C6FF33](https://img.shields.io/badge/%20-C6FF33-C6FF33?style=flat-square) ![#FF6B6B](https://img.shields.io/badge/%20-FF6B6B-FF6B6B?style=flat-square) |\n| `` | `soho` | dark | ![#C4A7E7](https://img.shields.io/badge/%20-C4A7E7-C4A7E7?style=flat-square) ![#EA9A97](https://img.shields.io/badge/%20-EA9A97-EA9A97?style=flat-square) ![#9CCFD8](https://img.shields.io/badge/%20-9CCFD8-9CCFD8?style=flat-square) ![#F6C177](https://img.shields.io/badge/%20-F6C177-F6C177?style=flat-square) ![#EB6F92](https://img.shields.io/badge/%20-EB6F92-EB6F92?style=flat-square) |\n| `` | `orchid` | dark | ![#81A1C1](https://img.shields.io/badge/%20-81A1C1-81A1C1?style=flat-square) ![#81A1C1](https://img.shields.io/badge/%20-81A1C1-81A1C1?style=flat-square) ![#A3BE8C](https://img.shields.io/badge/%20-A3BE8C-A3BE8C?style=flat-square) ![#DFCA9A](https://img.shields.io/badge/%20-DFCA9A-DFCA9A?style=flat-square) ![#E8A4CC](https://img.shields.io/badge/%20-E8A4CC-E8A4CC?style=flat-square) |\n| `` | `storm` | dark | ![#7AA2F7](https://img.shields.io/badge/%20-7AA2F7-7AA2F7?style=flat-square) ![#BB9AF7](https://img.shields.io/badge/%20-BB9AF7-BB9AF7?style=flat-square) ![#9ECE6A](https://img.shields.io/badge/%20-9ECE6A-9ECE6A?style=flat-square) ![#E0AF68](https://img.shields.io/badge/%20-E0AF68-E0AF68?style=flat-square) ![#F7768E](https://img.shields.io/badge/%20-F7768E-F7768E?style=flat-square) |\n\nMore palettes are available in runtime (`/theme list`) and the picker.\n\n## Architecture\n\n```\nindex.ts              Extension entry — registers tools, commands, session hooks\nsrc/\n  types.ts            TypeBox schemas + tagged errors\n  state.ts            Active theme state (in-memory)\n  runtime.ts          Theme application and validation\n  tools.ts            theme_set, theme_list, theme_preview\n  commands.ts         /theme command handler\n  picker.ts           Interactive theme picker\n  lifecycle.ts        Session restore and agent-end persistence\n  session.ts          Theme context injection into session entries\n  renderers.ts        Theme preview rendering\n  ui.ts               TUI helpers\nskills/\n  theme-switcher/\n    SKILL.md          Bundled skill for agent context\n```\n\n## Key patterns\n\n- **Session persistence** — active theme is saved on `agent_end` and restored on `session_start`.\n- **Context injection** — current theme is injected into the session so the agent is always aware of the active state.\n- **Effect at boundaries** — async operations use Effect-TS. All exits to the pi API surface use `Effect.runPromise`.\n\n## Install\n\n```bash\npi install npm:@codewithkenzo/pi-theme-switcher\n```\n\nOr install all Pi Rig extensions at once:\n\n```bash\nbunx @codewithkenzo/pi-rig@latest\n```\n\n<details>\n<summary>From source</summary>\n\n```bash\nbun run setup\n# or individually:\npi install ./extensions/theme-switcher\n```\n\n</details>\n\n## Prerequisites\n\n- [Bun](https://bun.sh) >= 1.3\n- [Pi coding agent](https://github.com/badlogic/pi-mono) installed and on your PATH\n\n## Development\n\n```bash\ncd extensions/theme-switcher\nbun install\nbun run build       # runtime bundle for the Pi coding agent\nbun run typecheck   # typecheck\nbun test            # tests\n```\n\n## Links\n\n- [Pi Rig suite](https://github.com/codewithkenzo/pi-rig) — monorepo with all extensions, installer, and docs\n- [Pi coding agent](https://github.com/badlogic/pi-mono) — upstream runtime\n- [npm: @codewithkenzo/pi-theme-switcher](https://www.npmjs.com/package/@codewithkenzo/pi-theme-switcher)\n- Related: [@codewithkenzo/pi-dispatch](https://github.com/codewithkenzo/pi-dispatch), [@codewithkenzo/pi-gateway-messaging](https://github.com/codewithkenzo/pi-rig/tree/main/extensions/gateway-messaging), [@codewithkenzo/pi-notify-cron](https://github.com/codewithkenzo/pi-rig/tree/main/extensions/notify-cron)\n","readmeFilename":"README.md"}