{"_id":"tuistory","_rev":"32-442df9160156dc77bea54fc08b2fab8e","name":"tuistory","dist-tags":{"latest":"0.11.0"},"versions":{"1.0.0":{"name":"tuistory","version":"1.0.0","keywords":[],"author":{"name":"remorses"},"license":"ISC","_id":"tuistory@1.0.0","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"dist":{"shasum":"c7664c32826a0e733deb09f19de311ddddbbf5da","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-1.0.0.tgz","fileCount":1,"integrity":"sha512-86bnPKw5LV3SQbopnB4Rlhp6iVdWDdXqlpcvF1lEMNpoKZjqTI/Ws+DFNfDnYQx834Z/a7v1QOkQUzGd5lxznA==","signatures":[{"sig":"MEUCIGtNJ4YN/tqTFJ6mndos7kgH2f27v+nIi5GIZdO7vnkVAiEApxLNgwk+1WTvDCl8TcypksFCZ3gMWTjQOhmvDVt3zdo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266},"main":"index.js","gitHead":"d600d7a7ab2c4e4e68a15f17a1428f7b87c3557b","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"deprecated":"invalid release, use latest","_npmVersion":"10.9.3","description":"","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.18.1","_npmOperationalInternal":{"tmp":"tmp/tuistory_1.0.0_1764845718316_0.44423113058893904","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"tuistory","version":"0.0.1","keywords":["tui","terminal","testing","playwright","e2e"],"author":{"name":"remorses"},"license":"MIT","_id":"tuistory@0.0.1","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"homepage":"https://github.com/remorses/tuistory#readme","bugs":{"url":"https://github.com/remorses/tuistory/issues"},"dist":{"shasum":"3a869acbe7fba56d92bcc38d98509f45f875f742","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.0.1.tgz","fileCount":18,"integrity":"sha512-B54GGf1G2bfKTDJFvlZ9cerKgabMPGL+0Ec8eaG//sA9mLdqs4MfCBTTguq1LbQliIRFttFo5POepOokogTDPw==","signatures":[{"sig":"MEUCIQDwf3ovNwwQ67Ey91B4oG+iSlhIxq0GOZ1Q49Z4hRC0tQIgOhpSwnPeNA1WTGkDsDiFq4U1mF05HKuUKF977ShJK78=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33781},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"}},"gitHead":"ac4709a26420f0f73093492f9803e95a7701f116","scripts":{"test":"bun test","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"repository":{"url":"git+https://github.com/remorses/tuistory.git","type":"git"},"_npmVersion":"10.9.3","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ghostty-opentui":"^1.3.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.10.1"},"optionalDependencies":{"bun-pty":"*","node-pty":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.0.1_1764855147153_0.47659595211516703","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"tuistory","version":"0.0.2","keywords":["tui","terminal","testing","playwright","e2e"],"author":{"name":"remorses"},"license":"MIT","_id":"tuistory@0.0.2","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"homepage":"https://github.com/remorses/tuistory#readme","bugs":{"url":"https://github.com/remorses/tuistory/issues"},"dist":{"shasum":"985d453cbfc07cc3e0717c7ea07d46a27400d104","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.0.2.tgz","fileCount":18,"integrity":"sha512-14FfFhL+s3Ai+XybzuYeygw7NgBhxk01S7DCfYHtMqy3Si5lkvJLNZdJEFVuGnbtBZDXpfxeGaE9HzJaAjITEg==","signatures":[{"sig":"MEUCIQCJt31pIhIR+Q4mU9KxCIM6FQU5Dny3GakfkVvw35Xq+wIgMK8SC5YQpOMm17OGH4+q0pBoWBe4hIyGLKpTWkG8kIg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34099},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"}},"gitHead":"c9bfe94414d05f41f5c176e06503937b5487fe97","scripts":{"test":"bun test","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"repository":{"url":"git+https://github.com/remorses/tuistory.git","type":"git"},"_npmVersion":"10.9.3","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ghostty-opentui":"^1.3.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.10.1"},"optionalDependencies":{"bun-pty":"*","node-pty":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.0.2_1764855805776_0.27917106757843757","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"tuistory","version":"0.0.4","keywords":["tui","terminal","testing","playwright","e2e"],"author":"remorses","license":"MIT","_id":"tuistory@0.0.4","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"dist":{"shasum":"bb08a5da2ed42e40ace87a405cbcd2e667b6ac8b","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.0.4.tgz","fileCount":22,"integrity":"sha512-w9yVnMiyK9cfzMbBFa3Y6FcZbmIFJrggWfURe/AmXtZMWmSO7se5PBDnGuDtB35e1E76h9BSjY4OyJ9sPkdtWQ==","signatures":[{"sig":"MEUCIHuiRnd7DuTS5eBnWrdksmCJNhN1+JaNXOt/t+b1H7kbAiEAjb8t8WeptCpGGpOKztfIiXFWhxyH9/oCXOZZt2wO+Uk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44703},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"bb08a5da2ed42e40ace87a405cbcd2e667b6ac8b","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"test":"bun test","build":"tsc","test:node":"vitest --run","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_integrity":"sha512-w9yVnMiyK9cfzMbBFa3Y6FcZbmIFJrggWfURe/AmXtZMWmSO7se5PBDnGuDtB35e1E76h9BSjY4OyJ9sPkdtWQ==","repository":{"url":"https://github.com/remorses/tuistory","type":"git"},"_npmVersion":"10.8.3","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ghostty-opentui":"^1.3.7"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","bun-types":"^1.3.4","typescript":"^5.9.2","@types/node":"^24.10.1"},"optionalDependencies":{"bun-pty":"*","node-pty":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.0.4_1765559421917_0.2716948416068188","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"tuistory","version":"0.0.5","keywords":["tui","terminal","testing","playwright","e2e"],"author":"remorses","license":"MIT","_id":"tuistory@0.0.5","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"dist":{"shasum":"be68f3ba8bc8c79d9b93f517f7a10eee041f1134","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.0.5.tgz","fileCount":22,"integrity":"sha512-k1WbFhNySBCfk9ah/tysv9ELfGdraGGQqpveXBYlSvzI8o1VWJDWRdbYDVivXMTTcyFDjanL4+RwNQMPBcpdHw==","signatures":[{"sig":"MEYCIQCwAjFR4YrLGFQtlC7ObfWRMIc5gVWb9F00F21bXemtDgIhAIFkSN2cC7tZ9kAmrpP57fIBhMLATj94KatrgOackcbZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51561},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"be68f3ba8bc8c79d9b93f517f7a10eee041f1134","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"test":"bun test","build":"tsc","test:node":"vitest --run","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_integrity":"sha512-k1WbFhNySBCfk9ah/tysv9ELfGdraGGQqpveXBYlSvzI8o1VWJDWRdbYDVivXMTTcyFDjanL4+RwNQMPBcpdHw==","repository":{"url":"https://github.com/remorses/tuistory","type":"git"},"_npmVersion":"10.8.3","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ghostty-opentui":"^1.3.7"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.15","bun-types":"^1.3.4","typescript":"^5.9.2","@types/node":"^25.0.1"},"optionalDependencies":{"bun-pty":"*","node-pty":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.0.5_1765889131842_0.7469262825738259","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"tuistory","version":"0.0.6","keywords":["tui","terminal","testing","playwright","e2e"],"author":{"name":"remorses"},"license":"MIT","_id":"tuistory@0.0.6","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"homepage":"https://github.com/remorses/tuistory#readme","bugs":{"url":"https://github.com/remorses/tuistory/issues"},"dist":{"shasum":"c977c45b528a14a0adfe99cafbc73aa1d812cfb5","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.0.6.tgz","fileCount":22,"integrity":"sha512-leSmvRuBFk9rk9pLYrgQNHIsmV7BS+hzEvRBU/6iYJZTHwO0yFedxf/jkz+Szqa1ZZkRcAy5g0i3kC/6dlCkEg==","signatures":[{"sig":"MEQCIBO6pAMGjCfq0cPF12jXL7EkU+SXktSk/R1N6QcNDXhUAiBOan4M3hqGbZcAh2Es/BMRi+RmrCHCixhPPWnIT6umGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51217},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"test":"bun test","build":"tsc","test:node":"vitest --run","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"repository":{"url":"git+https://github.com/remorses/tuistory.git","type":"git"},"_npmVersion":"10.9.4","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ghostty-opentui":"^1.3.7"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.5","typescript":"^5.9.2","@types/node":"^25.0.3"},"optionalDependencies":{"bun-pty":"0.4.3","node-pty":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.0.6_1767176066865_0.5983135569330678","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"tuistory","version":"0.0.7","keywords":["tui","terminal","testing","playwright","e2e"],"author":{"name":"remorses"},"license":"MIT","_id":"tuistory@0.0.7","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"homepage":"https://github.com/remorses/tuistory#readme","bugs":{"url":"https://github.com/remorses/tuistory/issues"},"dist":{"shasum":"d868f38c185186201cc3fb20f14a752e51a60531","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.0.7.tgz","fileCount":22,"integrity":"sha512-5m5uTvTrmGPOibICC6dpUJ95Zegwdba6kIGVEAdaWT33e7IKTsfbV2jsSdokkdOWGhP39m3J5d2RZ54Q2Sk5xg==","signatures":[{"sig":"MEYCIQDG0Vsq4nNTCezDsoxMh8X0CMXPrrsmijKW5dcSeUm78AIhALP14npOiEgibfbev4Ub4oi0e2hnWuqpyKeOgvbBwcI3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55927},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"test":"bun test","build":"tsc","test:node":"vitest --run","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"repository":{"url":"git+https://github.com/remorses/tuistory.git","type":"git"},"_npmVersion":"10.9.4","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ghostty-opentui":"^1.3.12"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.5","typescript":"^5.9.2","@types/node":"^25.0.6"},"optionalDependencies":{"bun-pty":"0.4.7","node-pty":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.0.7_1768391161055_0.4196767538577322","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"tuistory","version":"0.0.8","keywords":["tui","terminal","testing","playwright","e2e"],"author":"remorses","license":"MIT","_id":"tuistory@0.0.8","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"2c87ca81f9184a3627d40bb0f5af3893e3ee91be","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.0.8.tgz","fileCount":34,"integrity":"sha512-epTD5MVVK3QWw5dPYpghujS1FFwyw26glw6sqTqGHSloDZ/5AWxwrPp2HCtwybrUuRVxI6AXdW9OyZIYhfUzEA==","signatures":[{"sig":"MEUCIQCV9viN27CfjMkWgdLAgMHh4I7VvCRocbxvksjlQusQ7wIgPy0oUCnsMm/POX2xU22gw1njB64hrNLyauPMDD6YZTk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154434},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"2c87ca81f9184a3627d40bb0f5af3893e3ee91be","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"test":"bun test","build":"tsc && chmod +x dist/cli.js","test:node":"vitest --run","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_integrity":"sha512-epTD5MVVK3QWw5dPYpghujS1FFwyw26glw6sqTqGHSloDZ/5AWxwrPp2HCtwybrUuRVxI6AXdW9OyZIYhfUzEA==","repository":{"url":"https://github.com/remorses/tuistory","type":"git"},"_npmVersion":"10.8.3","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"cac":"^6.7.14","hono":"^4.11.7","picocolors":"^1.1.1","ghostty-opentui":"1.3.12","@hono/node-server":"^1.19.9","kill-port-process":"^3.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.5","@types/bun":"^1.3.7","typescript":"^5.9.2","@types/node":"^25.0.6"},"optionalDependencies":{"node-pty":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.0.8_1769628587195_0.9229197393464414","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"tuistory","version":"0.0.9","keywords":["tui","terminal","testing","playwright","e2e"],"author":"remorses","license":"MIT","_id":"tuistory@0.0.9","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"816ff1d2449d707790acd8c480ad998e984149d0","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.0.9.tgz","fileCount":34,"integrity":"sha512-qUtGYVSofi1ZS3TW0EYG8LHi5wCHF5vF4MfHia0K5c13tBAjsk5xVxsycgGUncPyqX6MTiTE3Z1W4mcjt9sQ6w==","signatures":[{"sig":"MEUCIQCExNOz2u+p3yJ5n1hNw6baF11BmNCTdHu7FmcJ5OVjzwIgXR6aQs2TqYeL2YXY3h9KR0QHHLg5+CLnsWG2RV+fYbA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160037},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"816ff1d2449d707790acd8c480ad998e984149d0","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"test":"bun test","build":"tsc && chmod +x dist/cli.js","test:node":"vitest --run","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_integrity":"sha512-qUtGYVSofi1ZS3TW0EYG8LHi5wCHF5vF4MfHia0K5c13tBAjsk5xVxsycgGUncPyqX6MTiTE3Z1W4mcjt9sQ6w==","repository":{"url":"https://github.com/remorses/tuistory","type":"git"},"_npmVersion":"10.8.3","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"cac":"^6.7.14","hono":"^4.11.7","picocolors":"^1.1.1","ghostty-opentui":"1.3.12","@hono/node-server":"^1.19.9","kill-port-process":"^3.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.5","@types/bun":"^1.3.7","typescript":"^5.9.2","@types/node":"^25.0.6"},"optionalDependencies":{"node-pty":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.0.9_1769631880757_0.3819211550459609","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"tuistory","version":"0.0.10","keywords":["tui","terminal","testing","playwright","e2e"],"author":"remorses","license":"MIT","_id":"tuistory@0.0.10","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"a697d239d4ae687cf6d2c37155c18ca7a0bbed29","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.0.10.tgz","fileCount":34,"integrity":"sha512-zLKvBpl2vYszpF2QTSjPvTxrZqrX0Lo4oSaJ6TOsSJS9gyFktDlAuTy12Kg7Zzay54raiU0od7XirTcwyUBQ+w==","signatures":[{"sig":"MEUCIQCW32CTjNsn46c3Wei07y54xpEfO5GPLzyKGs1GAqQsogIgLLukQsa3j2rt9idVUsqOatq+K4wZdWxbmucn2+7kpVg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":163061},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"a697d239d4ae687cf6d2c37155c18ca7a0bbed29","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"test":"bun test","build":"tsc && chmod +x dist/cli.js","test:node":"vitest --run","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_integrity":"sha512-zLKvBpl2vYszpF2QTSjPvTxrZqrX0Lo4oSaJ6TOsSJS9gyFktDlAuTy12Kg7Zzay54raiU0od7XirTcwyUBQ+w==","repository":{"url":"https://github.com/remorses/tuistory","type":"git"},"_npmVersion":"10.8.3","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"cac":"^6.7.14","hono":"^4.11.7","picocolors":"^1.1.1","ghostty-opentui":"1.3.12","@hono/node-server":"^1.19.9","kill-port-process":"^3.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.5","@types/bun":"^1.3.7","typescript":"^5.9.2","@types/node":"^25.0.6"},"optionalDependencies":{"node-pty":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.0.10_1770394529267_0.26763193573876065","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"tuistory","version":"0.0.11","keywords":["tui","terminal","testing","playwright","e2e"],"author":"remorses","license":"MIT","_id":"tuistory@0.0.11","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"583fa15c1108088fdc5ec779d7b69ef783abd0b0","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.0.11.tgz","fileCount":34,"integrity":"sha512-77MF5f+RBz4eBgekkTxdg3pt1XsWirloH18+r/M4hhWEhouut/xYOXbQ5Q9SneS5SeSSHXIkWZOxAUfl0UyYwg==","signatures":[{"sig":"MEQCIDRW3ISfDt2PvodhJQgn1zzDY/SYqdkJq9NQHcqL5/vWAiAV4GLnCPwYa8qJ7cVu/nSjWU5J8fWoJJf7ijAgnm6SzA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":163062},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"583fa15c1108088fdc5ec779d7b69ef783abd0b0","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"test":"bun test","build":"tsc && chmod +x dist/cli.js","test:node":"vitest --run","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_integrity":"sha512-77MF5f+RBz4eBgekkTxdg3pt1XsWirloH18+r/M4hhWEhouut/xYOXbQ5Q9SneS5SeSSHXIkWZOxAUfl0UyYwg==","repository":{"url":"https://github.com/remorses/tuistory","type":"git"},"_npmVersion":"10.8.3","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"cac":"^6.7.14","hono":"^4.11.7","picocolors":"^1.1.1","ghostty-opentui":"^1.3.13","@hono/node-server":"^1.19.9","kill-port-process":"^3.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.5","@types/bun":"^1.3.7","typescript":"^5.9.2","@types/node":"^25.0.6"},"optionalDependencies":{"node-pty":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.0.11_1770394728860_0.6963530929766142","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"tuistory","version":"0.0.12","keywords":["tui","terminal","testing","playwright","e2e"],"author":"remorses","license":"MIT","_id":"tuistory@0.0.12","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"1ccb0c0135a8f2ca3919012ca1dcf7b8902c988d","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.0.12.tgz","fileCount":34,"integrity":"sha512-cO8TfvbwmAHAfE3hpUx1Wbd4ukNmZVFfj+N/2pLBf864nP8lzi20HA2rEUe+ZFn7sk9HdSwjsHs+/5mMa/VGCg==","signatures":[{"sig":"MEYCIQC2To2rrr2ZO7yyUEuVpEaw3+qp21vUJsDIgP3txBt5hgIhAP5giwHI407kFja5f7h1hk9Vw1FNcoOXz9Nhs5z6Yp0x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165019},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"1ccb0c0135a8f2ca3919012ca1dcf7b8902c988d","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"test":"bun test","build":"tsc && chmod +x dist/cli.js","test:node":"vitest --run","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_integrity":"sha512-cO8TfvbwmAHAfE3hpUx1Wbd4ukNmZVFfj+N/2pLBf864nP8lzi20HA2rEUe+ZFn7sk9HdSwjsHs+/5mMa/VGCg==","repository":{"url":"https://github.com/remorses/tuistory","type":"git"},"_npmVersion":"10.8.3","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"cac":"^6.7.14","hono":"^4.11.7","picocolors":"^1.1.1","ghostty-opentui":"^1.3.13","@hono/node-server":"^1.19.9","kill-port-process":"^3.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.5","@types/bun":"^1.3.7","typescript":"^5.9.2","@types/node":"^25.0.6"},"optionalDependencies":{"node-pty":"0.10.1"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.0.12_1770457840969_0.8201176182197114","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"tuistory","version":"0.0.13","keywords":["tui","terminal","testing","playwright","e2e"],"author":"remorses","license":"MIT","_id":"tuistory@0.0.13","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"092e155e00b40079d7d08c52eabd883e546488c6","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.0.13.tgz","fileCount":34,"integrity":"sha512-wMrIEEntFXSHz+MA4SpRqpWmim8Y/ReEhhN3yqsUGiPxV/zJYHEqkj45+aYNUZ1kjeD8WqlmCv3Po595AJCseQ==","signatures":[{"sig":"MEQCIHoCv9vysmhToj1p3rEp2/Lq9+LgCWB1rIDwxwqtClQNAiAilhT45wBkEPIfccZrre39b3H/9TN+v14BN/BWO3VR5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187990},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"092e155e00b40079d7d08c52eabd883e546488c6","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"test":"bun test","build":"tsc && chmod +x dist/cli.js","test:node":"vitest --run","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_integrity":"sha512-wMrIEEntFXSHz+MA4SpRqpWmim8Y/ReEhhN3yqsUGiPxV/zJYHEqkj45+aYNUZ1kjeD8WqlmCv3Po595AJCseQ==","repository":{"url":"https://github.com/remorses/tuistory","type":"git"},"_npmVersion":"10.8.3","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.3.6","goke":"^6.1.3","hono":"^4.11.7","picocolors":"^1.1.1","string-dedent":"^3.0.1","ghostty-opentui":"^1.3.13","@hono/node-server":"^1.19.9","kill-port-process":"^3.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.5","@types/bun":"^1.3.7","typescript":"^5.9.2","@types/node":"^25.0.6"},"optionalDependencies":{"node-pty":"0.10.1"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.0.13_1770741783281_0.9953272949918857","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"tuistory","version":"0.0.14","keywords":["tui","terminal","testing","playwright","e2e"],"author":"remorses","license":"MIT","_id":"tuistory@0.0.14","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"3d7c2c1edba440ee89c3b9422fabf72353b76918","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.0.14.tgz","fileCount":34,"integrity":"sha512-Rln4mzk+ci5/ENY4si2h9zhrbCbDLaX+irnPk8hoYBtoE+mXeOwrvJe4zAimYmNzC0qqxIAUKmgBMWYE6kHuuQ==","signatures":[{"sig":"MEUCIQCNx/bn8pOlxq/fpJo8v1O4etVf8D6IiI3dllTqHXhfYwIgclXdFDiAMkpyA1DGbm7tPndr2Y/jNTu9cDosOIvQveM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":201511},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"3d7c2c1edba440ee89c3b9422fabf72353b76918","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"test":"pnpm test:node && pnpm test:bun","build":"tsc && chmod +x dist/cli.js","test:bun":"bun test","test:node":"vitest --run","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_integrity":"sha512-Rln4mzk+ci5/ENY4si2h9zhrbCbDLaX+irnPk8hoYBtoE+mXeOwrvJe4zAimYmNzC0qqxIAUKmgBMWYE6kHuuQ==","repository":{"url":"https://github.com/remorses/tuistory","type":"git"},"_npmVersion":"10.8.3","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.3.6","goke":"^6.1.3","hono":"^4.11.7","picocolors":"^1.1.1","string-dedent":"^3.0.1","ghostty-opentui":"^1.3.13","@hono/node-server":"^1.19.9","kill-port-process":"^3.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.9","@types/bun":"^1.3.9","typescript":"^5.9.2","@types/node":"^25.2.3"},"optionalDependencies":{"node-pty":"0.10.1"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.0.14_1771422104759_0.8905598057684816","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"tuistory","version":"0.0.15","keywords":["tui","terminal","testing","playwright","e2e"],"author":"remorses","license":"MIT","_id":"tuistory@0.0.15","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"9186e27ab2cd8ad3856a014ab580d7fc7a11aa25","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.0.15.tgz","fileCount":34,"integrity":"sha512-uZ8a0QkOAAtSrgFM7XMMG4YBLiP3bkLnJX0BaGLy6/mhanXbqvZoWQXCEtRDhME2gpEfFAtneYjN3QskLEsncw==","signatures":[{"sig":"MEUCIQCx2jOo9zqE5MiXoIJ4si6MJUauP3VXpVhVzsYCfxKybgIgJa0ScSCjE4vieWe4sVQioSC2a9GGEEK5zd05oPQCNEE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238267},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"9186e27ab2cd8ad3856a014ab580d7fc7a11aa25","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"test":"pnpm test:node && pnpm test:bun","build":"tsc && chmod +x dist/cli.js","test:bun":"bun test","test:node":"vitest --run","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_integrity":"sha512-uZ8a0QkOAAtSrgFM7XMMG4YBLiP3bkLnJX0BaGLy6/mhanXbqvZoWQXCEtRDhME2gpEfFAtneYjN3QskLEsncw==","repository":{"url":"https://github.com/remorses/tuistory","type":"git"},"_npmVersion":"10.8.3","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.3.6","goke":"^6.1.3","hono":"^4.11.7","errore":"^0.11.0","picocolors":"^1.1.1","string-dedent":"^3.0.1","ghostty-opentui":"^1.3.13","@hono/node-server":"^1.19.9","kill-port-process":"^3.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.9","@types/bun":"^1.3.9","typescript":"^5.9.2","@types/node":"^25.2.3"},"optionalDependencies":{"node-pty":"0.10.1"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.0.15_1771595763558_0.8646373102908596","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"tuistory","version":"0.0.16","keywords":["tui","terminal","testing","playwright","e2e"],"author":"remorses","license":"MIT","_id":"tuistory@0.0.16","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"4f444e769be034037426cea1d4569ada9ea7c23c","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.0.16.tgz","fileCount":34,"integrity":"sha512-ZwWxFkkS3PedcxOAkPQDaQX4FpLJgv07Q1OBWozaNUwJ5O9wQZtoMMaJ6oADvkx9Ih9cDCbib+mu20yH/MXIJA==","signatures":[{"sig":"MEUCIQCrLwXNU60p+nKza1qtSoC6sRUCkoHvMZgDqxsIM1uSaQIgaTinhtSdATyd8OPhGOxB6SxNs4daet+Sw58NLaKr95M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":244404},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"4f444e769be034037426cea1d4569ada9ea7c23c","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"test":"pnpm test:node && pnpm test:bun","build":"tsc && chmod +x dist/cli.js","test:bun":"bun test","test:node":"vitest --run","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_integrity":"sha512-ZwWxFkkS3PedcxOAkPQDaQX4FpLJgv07Q1OBWozaNUwJ5O9wQZtoMMaJ6oADvkx9Ih9cDCbib+mu20yH/MXIJA==","repository":{"url":"https://github.com/remorses/tuistory","type":"git"},"_npmVersion":"10.8.3","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.3.6","goke":"^6.1.3","hono":"^4.11.7","errore":"^0.11.0","picocolors":"^1.1.1","string-dedent":"^3.0.1","ghostty-opentui":"^1.4.4","@hono/node-server":"^1.19.9","kill-port-process":"^3.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.9","@types/bun":"^1.3.9","typescript":"^5.9.2","@types/node":"^25.2.3"},"optionalDependencies":{"node-pty":"0.10.1"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.0.16_1771880175001_0.21861760772607441","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"tuistory","version":"0.1.0","keywords":["tui","terminal","testing","playwright","e2e"],"author":"remorses","license":"MIT","_id":"tuistory@0.1.0","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"ecde1c0fcea72abd9f25ddd508aca847ea554cb4","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.1.0.tgz","fileCount":42,"integrity":"sha512-48qhPGQ6G1ei6UXx42gMSVUwZDjE2ER7ZAbAA2l3Xk9eXUC7XLyKrZYOMksigD/sl/flHwyWFgNiCYY39xpAWg==","signatures":[{"sig":"MEUCIFGGZYfeSNlAnEm6plBV4yZ2fumIIBaazDTk1oMwEjgZAiEA4uwprNeNFjI+YxMm4EhW1Jw2O/7ofLgWJ+KXTudtUPE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335436},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"ecde1c0fcea72abd9f25ddd508aca847ea554cb4","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"test":"pnpm test:node && pnpm test:bun","build":"tsc && chmod +x dist/cli.js","test:bun":"bun test","test:node":"vitest --run","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_integrity":"sha512-48qhPGQ6G1ei6UXx42gMSVUwZDjE2ER7ZAbAA2l3Xk9eXUC7XLyKrZYOMksigD/sl/flHwyWFgNiCYY39xpAWg==","repository":{"url":"https://github.com/remorses/tuistory","type":"git"},"_npmVersion":"10.8.3","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.3.6","goke":"^6.6.0","hono":"^4.11.7","react":"^19","errore":"^0.11.0","picocolors":"^1.1.1","@hono/node-ws":"^1.3.0","@opentui/core":"0.1.88","string-dedent":"^3.0.1","@clack/prompts":"^1.2.0","@opentui/react":"0.1.88","ghostty-opentui":"^1.4.10","@hono/node-server":"^1.19.9","kill-port-process":"^3.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.9","@types/bun":"^1.3.9","typescript":"^5.9.2","@types/node":"^25.2.3"},"optionalDependencies":{"zigpty":"^0.0.4"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.1.0_1776610268663_0.48562720950127036","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"tuistory","version":"0.2.0","keywords":["tui","terminal","testing","playwright","e2e"],"author":"remorses","license":"MIT","_id":"tuistory@0.2.0","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"7feea72c3731fedc722f3e18bbf999339acd100b","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.2.0.tgz","fileCount":42,"integrity":"sha512-ZV6RJgD6plDDoMVWA0UfMUkhFtQD9BZKydAKGI8+6oNR9vzVGsur/EeYjypT+S7og9wEIS/p9KP8xXHhFiceog==","signatures":[{"sig":"MEUCIQCUWTG22HWSgpRFb7b6E4XtYFXmSAiXZkx4rEThRXZmVwIgUplaaxpyj89OUIPWRK0hJBP2+uA7PkCIAeMw6hw8XoU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":344605},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"7feea72c3731fedc722f3e18bbf999339acd100b","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"test":"pnpm test:node && pnpm test:bun","build":"tsc && chmod +x dist/cli.js","test:bun":"bun test","test:node":"vitest --run","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_integrity":"sha512-ZV6RJgD6plDDoMVWA0UfMUkhFtQD9BZKydAKGI8+6oNR9vzVGsur/EeYjypT+S7og9wEIS/p9KP8xXHhFiceog==","repository":{"url":"https://github.com/remorses/tuistory","type":"git"},"_npmVersion":"10.8.3","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.3.6","goke":"^6.6.0","hono":"^4.11.7","react":"^19","errore":"^0.11.0","picocolors":"^1.1.1","@hono/node-ws":"^1.3.0","@opentui/core":"0.1.88","string-dedent":"^3.0.1","@clack/prompts":"^1.2.0","@opentui/react":"0.1.88","ghostty-opentui":"^1.4.10","@hono/node-server":"^1.19.9","kill-port-process":"^3.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.9","@types/bun":"^1.3.9","typescript":"^5.9.2","@types/node":"^25.2.3"},"optionalDependencies":{"zigpty":"^0.0.4"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.2.0_1776938064699_0.6852334100721198","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"tuistory","version":"0.2.1","keywords":["tui","terminal","testing","playwright","e2e"],"author":"remorses","license":"MIT","_id":"tuistory@0.2.1","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"8e5e88ac2c959a71c7201c49e8d7f7df29bf2334","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.2.1.tgz","fileCount":42,"integrity":"sha512-EE6dTHgmRVTVjiANdHwofhL3mgl9z/eoVG9aTgpbKM7j1KfTk/dkbwZH4DSPixrgZ3Bp1SzHzl8JqOhfFnYfbA==","signatures":[{"sig":"MEUCIQCoLLfy5OBdBS0nr5zQ1U9NS2SLl6CzXbHtivVYL0hQaQIgFevIvdxnTdXz6hwzllyRA413zZ5HsB3srqQkP6DIZew=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":347007},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"8e5e88ac2c959a71c7201c49e8d7f7df29bf2334","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"test":"pnpm test:node && pnpm test:bun","build":"tsc && chmod +x dist/cli.js","test:bun":"bun test","test:node":"vitest --run","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_integrity":"sha512-EE6dTHgmRVTVjiANdHwofhL3mgl9z/eoVG9aTgpbKM7j1KfTk/dkbwZH4DSPixrgZ3Bp1SzHzl8JqOhfFnYfbA==","repository":{"url":"https://github.com/remorses/tuistory","type":"git"},"_npmVersion":"10.8.3","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.3.6","goke":"^6.6.0","hono":"^4.11.7","react":"^19","errore":"^0.11.0","picocolors":"^1.1.1","@hono/node-ws":"^1.3.0","@opentui/core":"0.1.88","string-dedent":"^3.0.1","@clack/prompts":"^1.2.0","@opentui/react":"0.1.88","ghostty-opentui":"^1.4.10","@hono/node-server":"^1.19.9","kill-port-process":"^3.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.9","@types/bun":"^1.3.9","typescript":"^5.9.2","@types/node":"^25.2.3"},"optionalDependencies":{"zigpty":"^0.0.4"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.2.1_1776939432748_0.39935133640122333","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"tuistory","version":"0.3.0","keywords":["tui","terminal","testing","playwright","e2e"],"author":"remorses","license":"MIT","_id":"tuistory@0.3.0","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"8ac11f2da3c106a446b5fd87e352a0ec5aa496f0","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.3.0.tgz","fileCount":42,"integrity":"sha512-Lfp/jH2tzddHJJdexikcbvnDHigYBK6G+PxdLkJuO5wvMLUKsmTuQWZN7nIh7atgjjgqVnqJcE+dUKlxAg1uug==","signatures":[{"sig":"MEYCIQDhiA8yNg6rEaWFkZMnUk3mCokWB7VTEAlAZO+5jKkWOAIhAMNXQPu+4j0xDD4soboB23QiJK0MgwXottZeHDIXAnS4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":361550},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"8ac11f2da3c106a446b5fd87e352a0ec5aa496f0","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"cli":"bun src/cli.ts","test":"pnpm test:node && pnpm test:bun","build":"tsc && chmod +x dist/cli.js","test:bun":"bun test","test:node":"vitest --run","typecheck":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_integrity":"sha512-Lfp/jH2tzddHJJdexikcbvnDHigYBK6G+PxdLkJuO5wvMLUKsmTuQWZN7nIh7atgjjgqVnqJcE+dUKlxAg1uug==","repository":{"url":"https://github.com/remorses/tuistory","type":"git"},"_npmVersion":"10.8.3","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.3.6","goke":"^6.9.0","hono":"^4.11.7","react":"^19","errore":"^0.11.0","std-env":"^4.1.0","picocolors":"^1.1.1","@hono/node-ws":"^1.3.0","@opentui/core":"0.1.88","string-dedent":"^3.0.1","@clack/prompts":"^1.2.0","@opentui/react":"0.1.88","ghostty-opentui":"^1.4.11","@hono/node-server":"^1.19.9","kill-port-process":"^3.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.9","@types/bun":"^1.3.9","typescript":"^5.9.2","@types/node":"^25.2.3"},"optionalDependencies":{"zigpty":"^0.0.4"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.3.0_1777203263599_0.35742222928678835","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"tuistory","version":"0.4.0","keywords":["tui","terminal","testing","playwright","e2e"],"author":{"name":"remorses"},"license":"MIT","_id":"tuistory@0.4.0","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"homepage":"https://github.com/remorses/tuistory#readme","bugs":{"url":"https://github.com/remorses/tuistory/issues"},"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"b8fd1ad6d82c1027e903e4f249750244883c9ea6","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.4.0.tgz","fileCount":42,"integrity":"sha512-uZJy4y7nfeFHmy5+EgTCeFGDXyNpNAb0L7PAwkJr5xeGu6M39WYvT4mpNkE6M75pLFULPZND8dloRo8Rmf0xXw==","signatures":[{"sig":"MEQCIESlL96E746xm3klchr99oFAhhZlmJW5x/rKQ0MZbVOcAiB62CB9T8tWatJdC19FttVwUZJ1ADIfQQm7BBT5nYm3rw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":367559},"main":"./dist/index.js","type":"module","_from":"file:tuistory-0.4.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"cli":"bun src/cli.ts","test":"pnpm test:node && pnpm test:bun","build":"tsc && chmod +x dist/cli.js","test:bun":"bun test","test:node":"vitest --run","typecheck":"tsc"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_resolved":"/private/var/folders/8w/wvmrpgms5hngywvs8s99xnmm0000gn/T/3920188579bed9deba44e2658376d410/tuistory-0.4.0.tgz","_integrity":"sha512-uZJy4y7nfeFHmy5+EgTCeFGDXyNpNAb0L7PAwkJr5xeGu6M39WYvT4mpNkE6M75pLFULPZND8dloRo8Rmf0xXw==","repository":{"url":"git+https://github.com/remorses/tuistory.git","type":"git"},"_npmVersion":"11.9.0","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"4.3.6","goke":"^6.9.0","hono":"^4.11.7","react":"^19","errore":"^0.11.0","std-env":"^4.1.0","picocolors":"^1.1.1","@hono/node-ws":"^1.3.0","@opentui/core":"0.1.88","string-dedent":"^3.0.1","@clack/prompts":"^1.2.0","@opentui/react":"0.1.88","ghostty-opentui":"^1.4.12","@hono/node-server":"^1.19.9","kill-port-process":"^3.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.9","@types/bun":"^1.3.9","typescript":"^5.9.2","@types/node":"^25.2.3"},"optionalDependencies":{"zigpty":"^0.0.4"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.4.0_1777642642154_0.45907980459179254","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"tuistory","version":"0.4.1","keywords":["tui","terminal","testing","playwright","e2e"],"author":"remorses","license":"MIT","_id":"tuistory@0.4.1","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"dc9a7f2fe36ab7b816bdf35165650acffeafd193","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.4.1.tgz","fileCount":42,"integrity":"sha512-k/zpwSOD6pv400G/Q4LzQEndZwmAF8nihD0x4mR2fwaAG0F2hynLSHLyBIFmZLO1leA4J83x1jh0mjouTvVIIA==","signatures":[{"sig":"MEQCIHcWqA5zoKhVbB9UeqRmBGyJb6lUxjw9WIu10uj1BF46AiAwlNYkJrsjC1rzzl+ogSAyqT0io1r5K1DrJzpuiBsyxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":368761},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"dc9a7f2fe36ab7b816bdf35165650acffeafd193","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"cli":"bun src/cli.ts","test":"pnpm test:node && pnpm test:bun","build":"tsc && chmod +x dist/cli.js","test:bun":"bun test","test:node":"vitest --run","typecheck":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_integrity":"sha512-k/zpwSOD6pv400G/Q4LzQEndZwmAF8nihD0x4mR2fwaAG0F2hynLSHLyBIFmZLO1leA4J83x1jh0mjouTvVIIA==","repository":{"url":"https://github.com/remorses/tuistory","type":"git"},"_npmVersion":"10.8.3","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.3.6","goke":"^6.9.0","hono":"^4.11.7","react":"^19","errore":"^0.11.0","std-env":"^4.1.0","picocolors":"^1.1.1","@hono/node-ws":"^1.3.0","@opentui/core":"0.1.88","string-dedent":"^3.0.1","@clack/prompts":"^1.2.0","@opentui/react":"0.1.88","ghostty-opentui":"^1.4.13","@hono/node-server":"^1.19.9","kill-port-process":"^3.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.9","@types/bun":"^1.3.9","typescript":"^5.9.2","@types/node":"^25.2.3"},"optionalDependencies":{"zigpty":"^0.0.4"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.4.1_1777975524139_0.60418901354181","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"tuistory","version":"0.5.0","keywords":["tui","terminal","testing","playwright","e2e"],"author":"remorses","license":"MIT","_id":"tuistory@0.5.0","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"b74eefaa66de38d2930307b08bb73f9d646350a1","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.5.0.tgz","fileCount":42,"integrity":"sha512-4AH2/ApaBGswDm8vYDZlx2hghfkhwhzTpXa47rICe9GwlEXPjEwg9pDlqgogfKiYMsDSp0rhm3sBMoNr+9vvVw==","signatures":[{"sig":"MEYCIQChh7JuLmUZ7yShwosQkESL51WTX6Dd4WyXSuwJZmLWbAIhAKS4bEQJve/QOJ20JRUm00cQqhnTdNg6PPqV9I5ypE0K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":378792},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"b74eefaa66de38d2930307b08bb73f9d646350a1","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"cli":"bun src/cli.ts","test":"pnpm test:node && pnpm test:bun","build":"tsc && chmod +x dist/cli.js","test:bun":"bun test","test:node":"vitest --run","typecheck":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_integrity":"sha512-4AH2/ApaBGswDm8vYDZlx2hghfkhwhzTpXa47rICe9GwlEXPjEwg9pDlqgogfKiYMsDSp0rhm3sBMoNr+9vvVw==","repository":{"url":"https://github.com/remorses/tuistory","type":"git"},"_npmVersion":"10.8.3","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.3.6","goke":"^6.9.0","hono":"^4.11.7","react":"^19","errore":"^0.11.0","std-env":"^4.1.0","picocolors":"^1.1.1","@hono/node-ws":"^1.3.0","@opentui/core":"0.1.88","string-dedent":"^3.0.1","@clack/prompts":"^1.2.0","@opentui/react":"0.1.88","ghostty-opentui":"^1.5.0","@hono/node-server":"^1.19.9","kill-port-process":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.9","@types/bun":"^1.3.9","typescript":"^5.9.2","@types/node":"^25.2.3"},"optionalDependencies":{"zigpty":"^0.0.4"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.5.0_1778660272916_0.6251130718968236","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"tuistory","version":"0.6.0","keywords":["tui","terminal","testing","playwright","e2e"],"author":"remorses","license":"MIT","_id":"tuistory@0.6.0","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"e3765ff80917ede790d7f5850f37d46166e2490e","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.6.0.tgz","fileCount":42,"integrity":"sha512-0uhvhOtnwaBpI6uoVDvT7/4V1kK5Y903uwvcZbIqf9CyeIx/ZRq6CNdY/7sIze8TTqsMILToDuNUjhXOhSlsww==","signatures":[{"sig":"MEUCIQDppdoWMXAE4cto2Q8Ys3gEkQHa3GVtX1rH0DAf9HQIOwIgf/wIAtjNWH6tiTFoknt3pYXmymN4sw2txWmxvklIqxc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":398518},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"e3765ff80917ede790d7f5850f37d46166e2490e","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"cli":"bun src/cli.ts","test":"pnpm test:node && pnpm test:bun","build":"tsc && chmod +x dist/cli.js","test:bun":"bun test","test:node":"vitest --run","typecheck":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_integrity":"sha512-0uhvhOtnwaBpI6uoVDvT7/4V1kK5Y903uwvcZbIqf9CyeIx/ZRq6CNdY/7sIze8TTqsMILToDuNUjhXOhSlsww==","repository":{"url":"https://github.com/remorses/tuistory","type":"git"},"_npmVersion":"10.8.3","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.3.6","goke":"^6.9.0","hono":"^4.11.7","react":"^19","errore":"^0.11.0","std-env":"^4.1.0","picocolors":"^1.1.1","@hono/node-ws":"^1.3.0","@opentui/core":"0.1.88","string-dedent":"^3.0.1","@clack/prompts":"^1.2.0","@opentui/react":"0.1.88","ghostty-opentui":"^1.5.0","@hono/node-server":"^1.19.9","kill-port-process":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.9","@types/bun":"^1.3.9","typescript":"^5.9.2","@types/node":"^25.2.3"},"optionalDependencies":{"zigpty":"^0.0.4"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.6.0_1779029382793_0.6195646193082716","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"tuistory","version":"0.7.0","keywords":["tui","terminal","testing","playwright","e2e"],"author":"remorses","license":"MIT","_id":"tuistory@0.7.0","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"051fcd4af9cc30fbeaec2943c19d02584df7cf8b","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.7.0.tgz","fileCount":42,"integrity":"sha512-e1LhpiGMd2MhMjtVdSu8ayzCl++XQCivHT1jNrgA0XZRQIrc7RpikF41/hL/k7vfUAPLStmNGTdOpL6Mniy9Jg==","signatures":[{"sig":"MEQCIHIDMZ/EMo8PYlMcC8M5gDk1WHUC7K9qa7KDwvdrKvHFAiB0dvcNPrlhJ9TOdjX2oC+emRGj//nwmjUblApiNWY43Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":409667},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"051fcd4af9cc30fbeaec2943c19d02584df7cf8b","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"cli":"bun src/cli.ts","test":"pnpm test:node && pnpm test:bun","build":"tsc && chmod +x dist/cli.js","test:bun":"bun test","test:node":"vitest --run","typecheck":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_integrity":"sha512-e1LhpiGMd2MhMjtVdSu8ayzCl++XQCivHT1jNrgA0XZRQIrc7RpikF41/hL/k7vfUAPLStmNGTdOpL6Mniy9Jg==","repository":{"url":"https://github.com/remorses/tuistory","type":"git"},"_npmVersion":"10.8.3","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.3.6","goke":"^6.12.1","hono":"^4.11.7","react":"^19","errore":"^0.11.0","std-env":"^4.1.0","picocolors":"^1.1.1","@hono/node-ws":"^1.3.0","@opentui/core":"0.1.88","string-dedent":"^3.0.1","@clack/prompts":"^1.2.0","@opentui/react":"0.1.88","ghostty-opentui":"^1.5.0","@hono/node-server":"^1.19.9","kill-port-process":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.9","@types/bun":"^1.3.9","typescript":"^5.9.2","@types/node":"^25.2.3"},"optionalDependencies":{"zigpty":"^0.0.4"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.7.0_1779096449523_0.7315026635274324","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"tuistory","version":"0.8.0","keywords":["tui","terminal","testing","playwright","e2e"],"author":{"name":"remorses"},"license":"MIT","_id":"tuistory@0.8.0","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"homepage":"https://github.com/remorses/tuistory#readme","bugs":{"url":"https://github.com/remorses/tuistory/issues"},"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"36041bc0cccdb32d52f06d39f9f56c571ccec9fc","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.8.0.tgz","fileCount":42,"integrity":"sha512-iemtKEt3kte7HyV8/Q1mRXmMwDUSAGC6Lm0fDDkbZaZKqVtKkLAx8+vzPHUJc2+ZndUIZa5WQ93b31GFp9aayw==","signatures":[{"sig":"MEUCIQDhi1Bc6Spje5hzWFyN5e6lWhAmPPnQ5+DOP2PJLqAOwgIgJ1inJmwQfT8KK3a13CqQK+U0sRimV81/rofv67Dx1E8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":416169},"main":"./dist/index.js","type":"module","_from":"file:tuistory-0.8.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"cli":"bun src/cli.ts","test":"pnpm test:node && pnpm test:bun","build":"tsc && chmod +x dist/cli.js","test:bun":"bun test","test:node":"vitest --run","typecheck":"tsc"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_resolved":"/private/var/folders/8w/wvmrpgms5hngywvs8s99xnmm0000gn/T/e439e17f3c18fac4cbf4e9836c245dff/tuistory-0.8.0.tgz","_integrity":"sha512-iemtKEt3kte7HyV8/Q1mRXmMwDUSAGC6Lm0fDDkbZaZKqVtKkLAx8+vzPHUJc2+ZndUIZa5WQ93b31GFp9aayw==","repository":{"url":"git+https://github.com/remorses/tuistory.git","type":"git"},"_npmVersion":"11.12.1","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"4.3.6","goke":"^6.12.1","hono":"^4.11.7","react":"^19","errore":"^0.11.0","std-env":"^4.1.0","picocolors":"^1.1.1","@hono/node-ws":"^1.3.0","@opentui/core":"0.1.88","string-dedent":"^3.0.1","@clack/prompts":"^1.2.0","@opentui/react":"0.1.88","ghostty-opentui":"^1.5.0","@hono/node-server":"^1.19.9","kill-port-process":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.9","@types/bun":"^1.3.9","typescript":"^5.9.2","@types/node":"^25.2.3"},"optionalDependencies":{"zigpty":"^0.0.4"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.8.0_1779458130513_0.4668487470708247","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"tuistory","version":"0.8.1","keywords":["tui","terminal","testing","playwright","e2e"],"author":{"name":"remorses"},"license":"MIT","_id":"tuistory@0.8.1","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"homepage":"https://github.com/remorses/tuistory#readme","bugs":{"url":"https://github.com/remorses/tuistory/issues"},"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"a26a900e496797a0fd743a500db7e6bed7c3acd6","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.8.1.tgz","fileCount":46,"integrity":"sha512-FXd561d7iVBtSQxD0lSKuATkwWAgF/vxw3aPGsYinl1Yuk21f21HlMIv2wtvHVfvrVSUUBF4uhrco91EgQ562A==","signatures":[{"sig":"MEUCIF84Ga7aFZ0cHUFMiVumYlBWNfWTek/nJJWEJNJV2DE9AiEAwHc+Nlf6P9f83QixgnP6/Qp3iOxRZwnNy6id8l+syvw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":427331},"main":"./dist/index.js","type":"module","_from":"file:tuistory-0.8.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"cli":"bun src/cli.ts","test":"pnpm test:node && pnpm test:bun","build":"tsc && chmod +x dist/cli.js","test:bun":"bun test","test:node":"vitest --run","typecheck":"tsc"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_resolved":"/private/var/folders/8w/wvmrpgms5hngywvs8s99xnmm0000gn/T/9d47de5d4b3186aabf1c781a6e3e61ac/tuistory-0.8.1.tgz","_integrity":"sha512-FXd561d7iVBtSQxD0lSKuATkwWAgF/vxw3aPGsYinl1Yuk21f21HlMIv2wtvHVfvrVSUUBF4uhrco91EgQ562A==","repository":{"url":"git+https://github.com/remorses/tuistory.git","type":"git"},"_npmVersion":"11.12.1","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"4.3.6","goke":"^6.12.1","hono":"^4.11.7","react":"^19","errore":"^0.11.0","std-env":"^4.1.0","picocolors":"^1.1.1","@hono/node-ws":"^1.3.0","@opentui/core":"0.1.88","string-dedent":"^3.0.1","@clack/prompts":"^1.2.0","@opentui/react":"0.1.88","ghostty-opentui":"^1.5.0","@hono/node-server":"^1.19.9","kill-port-process":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.9","@types/bun":"^1.3.9","typescript":"^5.9.2","@types/node":"^25.2.3"},"optionalDependencies":{"zigpty":"^0.0.4"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.8.1_1780416572690_0.12688556786511063","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"tuistory","version":"0.9.0","keywords":["tui","terminal","testing","playwright","e2e"],"author":{"name":"remorses"},"license":"MIT","_id":"tuistory@0.9.0","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"homepage":"https://github.com/remorses/tuistory#readme","bugs":{"url":"https://github.com/remorses/tuistory/issues"},"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"728b7869c96192df7a07b032e3dbd8973a778b8b","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.9.0.tgz","fileCount":46,"integrity":"sha512-0X5noSSLn1Wia9EFLpMm7677iSDkF3oqrJYUO/HYxge8t4sd6sLPUrqq02Zh3GfVn2NleAXvik5AD0rox2lWuQ==","signatures":[{"sig":"MEUCICVTrVvhTq8uq9suHCedswgkKuxNwiQ+N9xGjjjBTvAxAiEAjQ42oeV+ZxCYpNikfLC/PJ6PtZMKYWHe2wqbgyfJM5Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":428222},"main":"./dist/index.js","type":"module","_from":"file:tuistory-0.9.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"cli":"bun src/cli.ts","test":"pnpm test:node && pnpm test:bun","build":"tsc && chmod +x dist/cli.js","test:bun":"bun test","test:node":"vitest --run","typecheck":"tsc"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_resolved":"/private/var/folders/8w/wvmrpgms5hngywvs8s99xnmm0000gn/T/84e7a3d131b8c4c25d0c7f4e20fad231/tuistory-0.9.0.tgz","_integrity":"sha512-0X5noSSLn1Wia9EFLpMm7677iSDkF3oqrJYUO/HYxge8t4sd6sLPUrqq02Zh3GfVn2NleAXvik5AD0rox2lWuQ==","repository":{"url":"git+https://github.com/remorses/tuistory.git","type":"git"},"_npmVersion":"11.12.1","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"4.3.6","goke":"^6.12.1","hono":"^4.11.7","react":"^19","errore":"^0.11.0","std-env":"^4.1.0","picocolors":"^1.1.1","@hono/node-ws":"^1.3.0","@opentui/core":"0.1.88","string-dedent":"^3.0.1","@clack/prompts":"^1.2.0","@opentui/react":"0.1.88","ghostty-opentui":"^1.5.0","@hono/node-server":"^1.19.9","kill-port-process":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.9","@types/bun":"^1.3.9","typescript":"^5.9.2","@types/node":"^25.2.3"},"optionalDependencies":{"zigpty":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.9.0_1780568373967_0.06142636986023042","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"tuistory","version":"0.10.0","keywords":["tui","terminal","testing","playwright","e2e"],"author":{"name":"remorses"},"license":"MIT","_id":"tuistory@0.10.0","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"homepage":"https://github.com/remorses/tuistory#readme","bugs":{"url":"https://github.com/remorses/tuistory/issues"},"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"c869f5fe3a475f0e7777a2e423e45112c1b0cba3","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.10.0.tgz","fileCount":46,"integrity":"sha512-IrENXm9HK0GaNQgnQnnbgQutSA3xOlpO19u8EfcbUe9TfwnMWswTJ/T4HsEFT6EoOL+ZpnrEk2RZqC5gMMg7ug==","signatures":[{"sig":"MEQCIAa6+AwfH3pUZ408t3TyTfSUA025OWvP5ridAXTixOGFAiAhTneYidQjJOSbGtKlDgavS/xo/QOvccULuaYfcrJR/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":442013},"main":"./dist/index.js","type":"module","_from":"file:tuistory-0.10.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"cli":"bun src/cli.ts","test":"pnpm test:node && pnpm test:bun","build":"tsc && chmod +x dist/cli.js","test:bun":"bun test","test:node":"vitest --run","typecheck":"tsc"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_resolved":"/private/var/folders/8w/wvmrpgms5hngywvs8s99xnmm0000gn/T/b45e19d312360247383d43670274f9f1/tuistory-0.10.0.tgz","_integrity":"sha512-IrENXm9HK0GaNQgnQnnbgQutSA3xOlpO19u8EfcbUe9TfwnMWswTJ/T4HsEFT6EoOL+ZpnrEk2RZqC5gMMg7ug==","repository":{"url":"git+https://github.com/remorses/tuistory.git","type":"git"},"_npmVersion":"11.12.1","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"4.3.6","goke":"^6.12.1","hono":"^4.11.7","react":"^19","errore":"^0.11.0","std-env":"^4.1.0","picocolors":"^1.1.1","@hono/node-ws":"^1.3.0","@opentui/core":"^0.2.12","string-dedent":"^3.0.1","@clack/prompts":"^1.2.0","@opentui/react":"^0.2.12","ghostty-opentui":"^1.5.0","@hono/node-server":"^1.19.9","kill-port-process":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.9","@types/bun":"^1.3.9","typescript":"^5.9.2","@types/node":"^25.2.3"},"optionalDependencies":{"zigpty":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.10.0_1780664730036_0.45534135104530726","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"tuistory","version":"0.10.1","keywords":["tui","terminal","testing","playwright","e2e"],"author":"remorses","license":"MIT","_id":"tuistory@0.10.1","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"bin":{"tuistory":"dist/cli.js"},"dist":{"shasum":"c78dfa822e1358527361cd0f9318998ba5f0c8b5","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.10.1.tgz","fileCount":46,"integrity":"sha512-+dtDUSeiN5FOpqJzVjTQWqtnwKsOzg0CBMo5fXPWwC8Er+jLwMm2g4X/LKG2HyAn0/gECnDareRT9dOz0XfvAQ==","signatures":[{"sig":"MEUCIQDn1XuQmh/QxfmE+8kD/u2FSxZgkOq3zntq6bIosE3o9AIgYvlYbfN9it/cS8ren3CQtbTJgmIkjHx+9zZg8rdYyfw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":443927},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"c78dfa822e1358527361cd0f9318998ba5f0c8b5","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./pty":{"bun":"./dist/pty-bun.js","types":"./dist/pty-node.d.ts","default":"./dist/pty-node.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"}},"scripts":{"cli":"bun src/cli.ts","test":"pnpm test:node && pnpm test:bun","build":"tsc && chmod +x dist/cli.js","test:bun":"bun test","test:node":"vitest --run","typecheck":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"_integrity":"sha512-+dtDUSeiN5FOpqJzVjTQWqtnwKsOzg0CBMo5fXPWwC8Er+jLwMm2g4X/LKG2HyAn0/gECnDareRT9dOz0XfvAQ==","repository":{"url":"https://github.com/remorses/tuistory","type":"git"},"_npmVersion":"10.8.3","description":"Playwright-like testing for TUI applications","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"4.3.6","goke":"^6.12.1","hono":"^4.11.7","react":"^19","errore":"^0.11.0","std-env":"^4.1.0","picocolors":"^1.1.1","@hono/node-ws":"^1.3.0","@opentui/core":"^0.2.12","string-dedent":"^3.0.1","@clack/prompts":"^1.2.0","@opentui/react":"^0.2.12","ghostty-opentui":"^1.5.0","@hono/node-server":"^1.19.9","kill-port-process":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.16","bun-types":"^1.3.9","@types/bun":"^1.3.9","typescript":"^5.9.2","@types/node":"^25.2.3"},"optionalDependencies":{"zigpty":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/tuistory_0.10.1_1783001872865_0.9409974483924228","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"tuistory","version":"0.11.0","description":"Playwright-like testing for TUI applications","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","bin":{"tuistory":"dist/cli.js"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./src":{"types":"./src/index.ts","default":"./src/index.ts"},"./pty":{"types":"./dist/pty-node.d.ts","bun":"./dist/pty-bun.js","default":"./dist/pty-node.js"}},"scripts":{"build":"tsc && chmod +x dist/cli.js","test":"pnpm test:node && pnpm test:bun","test:bun":"bun test","cli":"bun src/cli.ts","test:node":"vitest --run","typecheck":"tsc","prepublishOnly":"npm run build"},"keywords":["tui","terminal","testing","playwright","e2e"],"author":"remorses","license":"MIT","repository":{"type":"git","url":"https://github.com/remorses/tuistory"},"dependencies":{"@clack/prompts":"^1.2.0","@hono/node-server":"^1.19.9","@hono/node-ws":"^1.3.0","@opentui/core":"^0.4.5","@opentui/react":"^0.4.5","errore":"^0.11.0","ghostty-opentui":"^1.5.0","goke":"^6.12.1","hono":"^4.11.7","kill-port-process":"^4.0.2","picocolors":"^1.1.1","react":"^19","std-env":"^4.1.0","string-dedent":"^3.0.1","zod":"4.3.6"},"optionalDependencies":{"zigpty":"^0.2.0"},"devDependencies":{"@types/bun":"^1.3.9","@types/node":"^25.2.3","bun-types":"^1.3.9","typescript":"^5.9.2","vitest":"^4.0.16"},"_id":"tuistory@0.11.0","_integrity":"sha512-sB5qeO5QGJGoTXF2l5rTKU9FMpdSMIOXu59yHma/Vs6PvNQsu8Zby29aRzhvOHehrC42Ftkyu2Yz5Q0b4s/7aA==","_nodeVersion":"26.3.0","_npmVersion":"10.8.3","shasum":"f27a568fde6a0e11249f3cb63d1764fd58b0f80a","dist":{"integrity":"sha512-sB5qeO5QGJGoTXF2l5rTKU9FMpdSMIOXu59yHma/Vs6PvNQsu8Zby29aRzhvOHehrC42Ftkyu2Yz5Q0b4s/7aA==","shasum":"f27a568fde6a0e11249f3cb63d1764fd58b0f80a","tarball":"https://registry.npmjs.org/tuistory/-/tuistory-0.11.0.tgz","fileCount":46,"unpackedSize":446129,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHBerrewgK5Nm+L12FaEL+nRcyMUH+VWZQVGicU8LwPZAiBMzexwXlwGCUT7x/zKGApExnyfplNkdy9EB3tFoOqfHg=="}]},"_npmUser":{"name":"xmorse","email":"beats.by.morse@gmail.com"},"directories":{},"maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tuistory_0.11.0_1786382271200_0.5523044730294726"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-04T10:55:18.195Z","modified":"2026-08-10T17:17:51.498Z","1.0.0":"2025-12-04T10:55:18.442Z","0.0.1":"2025-12-04T13:32:27.308Z","0.0.2":"2025-12-04T13:43:25.908Z","0.0.4":"2025-12-12T17:10:22.063Z","0.0.5":"2025-12-16T12:45:31.987Z","0.0.6":"2025-12-31T10:14:27.019Z","0.0.7":"2026-01-14T11:46:01.186Z","0.0.8":"2026-01-28T19:29:47.333Z","0.0.9":"2026-01-28T20:24:40.919Z","0.0.10":"2026-02-06T16:15:29.435Z","0.0.11":"2026-02-06T16:18:49.044Z","0.0.12":"2026-02-07T09:50:41.127Z","0.0.13":"2026-02-10T16:43:03.450Z","0.0.14":"2026-02-18T13:41:44.905Z","0.0.15":"2026-02-20T13:56:03.694Z","0.0.16":"2026-02-23T20:56:15.160Z","0.1.0":"2026-04-19T14:51:08.811Z","0.2.0":"2026-04-23T09:54:24.878Z","0.2.1":"2026-04-23T10:17:12.911Z","0.3.0":"2026-04-26T11:34:23.736Z","0.4.0":"2026-05-01T13:37:22.385Z","0.4.1":"2026-05-05T10:05:24.283Z","0.5.0":"2026-05-13T08:17:53.069Z","0.6.0":"2026-05-17T14:49:42.969Z","0.7.0":"2026-05-18T09:27:29.910Z","0.8.0":"2026-05-22T13:55:30.664Z","0.8.1":"2026-06-02T16:09:32.852Z","0.9.0":"2026-06-04T10:19:34.160Z","0.10.0":"2026-06-05T13:05:30.196Z","0.10.1":"2026-07-02T14:17:53.236Z","0.11.0":"2026-08-10T17:17:51.348Z"},"author":"remorses","license":"MIT","keywords":["tui","terminal","testing","playwright","e2e"],"repository":{"type":"git","url":"https://github.com/remorses/tuistory"},"description":"Playwright-like testing for TUI applications","maintainers":[{"name":"xmorse","email":"beats.by.morse@gmail.com"}],"readme":"<div align=\"center\">\n    <br />\n    <br />\n    <h3>tuistory</h3>\n    <p>Run dev servers and TUIs that AI agents can read, wait on, and type into.</p>\n    <br />\n    <br />\n</div>\n\n**tmux for AI agents.** tuistory wraps any terminal command in a named background session. Agents can read logs, wait for specific output, take screenshots, and type into the process. Humans can attach to the same session at any time to see exactly what the agent sees, interact with the process, then detach and let the agent continue. Both share the same terminal state.\n\n```\n                       package.json: \"dev\": \"tuistory -- next dev\"\n\n  Human runs `pnpm dev`                        Agent runs `pnpm dev`\n        │                                            │\n        ▼                                            ▼\n  ┌──────────────────┐                   ┌─────────────────────────────┐\n  │ Auto-attaches    │                   │ Runs in background          │\n  │ to the terminal  │                   │                             │\n  │ (like running    │                   │ tuistory read -s …          │\n  │  next dev        │                   │ tuistory -s … wait \"ready\"  │\n  │  directly)       │                   │ tuistory -s … snapshot      │\n  └──────────────────┘                   └─────────────────────────────┘\n                                                     │\n                    Human runs                       │\n                    `tuistory attach`                │\n                          │                          │\n                          ▼                          ▼\n                   ┌────────────────────────────────────────┐\n                   │  Same background session               │\n                   │                                        │\n                   │  Human sees live terminal output       │\n                   │  Agent reads logs, waits, types        │\n                   │  Both share the same terminal state    │\n                   │                                        │\n                   │  Ctrl+C twice ► detach                 │\n                   │  Ctrl+X twice ► kill process           │\n                   └────────────────────────────────────────┘\n```\n\n## Add tuistory to your dev script\n\nThe simplest way to use tuistory: replace your `dev` command in `package.json`.\n\n```json\n{\n  \"scripts\": {\n    \"dev\": \"tuistory -- next dev\"\n  }\n}\n```\n\nThe session name is auto-derived from `<cwd-basename>-<command>` in kebab-case. A project in `~/myapp` running `next dev` gets session name `myapp-next-dev`.\n\nThat's it. This one change gives you three things:\n\n1. **Humans get the same experience.** `pnpm dev` auto-attaches your terminal to the session. It looks and feels identical to running `next dev` directly. Press `Ctrl+C` to detach (the session keeps running in the background).\n\n2. **Agents don't hang.** Without tuistory, an agent running `pnpm dev` starts a long-lived process that blocks its tool call until timeout. With tuistory, the dev server launches in the background and the command returns immediately. The agent can move on to other work.\n\n3. **Agents can inspect the server.** Once the session exists, agents read logs, wait for \"ready\" strings, check for errors, and even type commands into REPLs. All through simple CLI calls that return instantly.\n\n### What agents can do with a running session\n\n```bash\n# Read recent output (like checking server logs)\ntuistory read -s x\n\n# Read the entire output buffer\ntuistory read -s x --all\n\n# Wait for the server to be ready (replaces sleep)\ntuistory -s x wait \"ready on\" --timeout 30000\n\n# Wait for output to stabilize (when you don't know what to expect)\ntuistory -s x wait-idle --timeout 10000\n\n# See the current terminal screen\ntuistory -s x snapshot --trim\n\n# Capture terminal as a PNG image\ntuistory -s x screenshot\n\n# Restart the dev server after code changes\ntuistory -s x restart\n\n# Type into the process (for REPLs, debuggers, interactive CLIs)\ntuistory -s x type \"rs\"\ntuistory -s x press enter\n\n# Stop the server\ntuistory -s x press ctrl c\ntuistory -s x close\n```\n\n### Reuse and idempotency\n\nRunning `pnpm dev` again while the session is alive **reattaches** (for humans) or prints session info (for agents) instead of failing. Agents never get \"port already in use\" errors; they get a message telling them the session is already running and how to read its output.\n\n### Attach to a running session (humans only)\n\n<!-- Agents: do not run tuistory attach. Use read, snapshot, and wait instead. -->\n\nUse `tuistory attach` to connect your terminal to any running session. This works like `tmux attach`: you see the full terminal output exactly as if you ran the command yourself. You can type, scroll, and interact normally. Press `Ctrl+C` to detach without stopping the process.\n\n```bash\n# Attach to a specific session\ntuistory attach -s x\n\n# Pick from a list of running sessions\ntuistory attach\n```\n\nWhile attached, press `Ctrl+C` twice to **detach** (the process keeps running), or `Ctrl+X` twice to **kill** the process and close the session.\n\nThis is useful when an agent started a dev server or a long-running process and you want to see what's happening. `tuistory sessions` lists all active sessions, then `tuistory attach` connects you to one.\n\n## Installation\n\n```bash\nnpm install tuistory\n```\n\nAs a global CLI:\n\n```bash\nnpm install -g tuistory\n\n# Or use directly\nnpx tuistory --help\nbunx tuistory --help\n```\n\n## Agent Skill\n\nThis package ships a skill file that teaches AI coding agents how and when to\nuse it. Install it with:\n\n```bash\nnpx -y skills add remorses/tuistory\n```\n\n## CLI Quick Start\n\nA full workflow controlling Claude Code:\n\n```bash\n# Launch Claude Code\ntuistory -s claude --cols 150 --rows 45 -- claude\n\n# Wait for it to load\ntuistory -s claude wait \"Claude Code\" --timeout 15000\n\n# Type a prompt\ntuistory -s claude type \"what is 2+2? reply with just the number\"\ntuistory -s claude press enter\n\n# Wait for the response\ntuistory -s claude wait \"/[0-9]+/\" --timeout 30000\n\n# Get terminal snapshot\ntuistory -s claude snapshot --trim\n\n# Read all process output\ntuistory read -s claude --all\n\n# Close the session\ntuistory -s claude close\n```\n\n## CLI Commands\n\n```\ntuistory -- <command>         Launch a terminal session\ntuistory snapshot             Current terminal screen as text\ntuistory read                 Process output since last read\ntuistory screenshot           Capture terminal as PNG image\ntuistory type <text>          Type text character by character\ntuistory press <key> [keys]   Press key(s): enter, ctrl c, alt f4\ntuistory click <pattern>      Click on text matching pattern\ntuistory wait <pattern>       Wait for text (supports /regex/)\ntuistory wait-idle            Wait for terminal to stabilize\ntuistory scroll <up|down>     Scroll the terminal\ntuistory resize <cols> <rows> Resize terminal\ntuistory attach               Attach interactively to a session (humans only)\ntuistory restart              Restart session (same command/cwd/env)\ntuistory close                Close a session\ntuistory sessions             List active sessions\n```\n\n### Common Options\n\n```\n-s, --session <name>  Session name (defaults to <cwd-basename>-<command>)\n--cols <n>            Terminal columns (default: 120)\n--rows <n>            Terminal rows (default: 36)\n--env <key=value>     Environment variable (repeatable)\n--timeout <ms>        Wait timeout in milliseconds\n--trim                Trim whitespace from snapshot\n--json                Output as JSON\n--all                 For read: return entire buffer\n--follow              For read: block until new output\n```\n\n### Option ordering with `--`\n\nEverything after `--` is the command to run. tuistory options **must come before** `--`, not after it. Anything after `--` is passed verbatim to the child process.\n\n```bash\n# Correct: options before --, command after\ntuistory -s myserver --cols 150 -- node server.js --port 3000\n\n# Wrong: tuistory options after -- are ignored\ntuistory -- node server.js -s myserver --cols 150\n```\n\nWhen no `-s` is given, the session name is auto-derived from `<cwd-basename>-<command>` in kebab-case. For most use cases (especially `package.json` scripts) you don't need to pass `-s` at all.\n\n### Chaining tools that use `--`\n\nTools like [sigillo](https://github.com/remorses/sigillo) and [kimaki tunnel](https://github.com/remorses/kimaki) also use `--` to separate their options from a child command. You can nest them because each tool only consumes the **first** `--` it sees; the rest passes through verbatim.\n\n```json\n{\n  \"scripts\": {\n    \"dev\": \"tuistory -- sigillo run -- kimaki tunnel -- next dev\"\n  }\n}\n```\n\ntuistory should always be the **outermost wrapper** so the entire process tree lives in one session that agents can read, wait on, and restart.\n\n## Background Processes (replaces tmux)\n\ntuistory replaces tmux for running background processes. The key advantage: **reactive waiting** instead of blind `sleep`.\n\n### Before: tmux\n\n```bash\ntmux new-session -d -s dev\ntmux send-keys -t dev \"pnpm dev\" Enter\nsleep 5  # blind guess\ntmux capture-pane -t dev -p | grep \"ready\"\ntmux send-keys -t dev C-c\ntmux kill-session -t dev\n```\n\n`sleep 5` is a blind guess. Too short and the server isn't ready. Too long and you waste time. `capture-pane` only shows the last screenful.\n\n### After: tuistory\n\n```bash\ntuistory -- pnpm dev\ntuistory -s x wait \"ready on\" --timeout 30000\ntuistory read -s x\ntuistory -s x press ctrl c\ntuistory -s x close\n```\n\n`wait` reacts as fast as the terminal updates (~75ms). `read` returns the full output stream, not just the visible screen.\n\n## Environment Inheritance\n\ntuistory forwards the **full environment** from the calling shell to child processes. `node_modules/.bin` entries injected by pnpm, bun, and npm are preserved, so local binaries work without prefixing:\n\n```bash\n# These work because tuistory inherits the caller's PATH\ntuistory -- vitest run\ntuistory -- tsc --noEmit\n```\n\nExplicit `--env` flags override inherited values:\n\n```bash\ntuistory --env NODE_ENV=production -- my-server\n```\n\n## Tips for Automation\n\n**Run `snapshot` after every action.** Terminal apps are stateful and may show dialogs or errors. Always check the current state:\n\n```bash\ntuistory -s mysession press enter\ntuistory -s mysession snapshot --trim\n```\n\n**Use `read` for log-heavy processes.** `snapshot` only shows the visible screen. `read` gives you the full output stream:\n\n```bash\ntuistory -- npm test\ntuistory -s x wait \"Tests:\" --timeout 60000\ntuistory read -s x\n```\n\n**Use `wait-idle` when you don't know what to wait for.** It waits until the terminal stops receiving data (~200ms of silence by default):\n\n```bash\ntuistory -- npm test\ntuistory -s x wait-idle --timeout 10000\ntuistory read -s x\n```\n\n**Use `wait` for async operations.** Don't assume commands complete instantly:\n\n```bash\ntuistory -s mysession type \"long-running-command\"\ntuistory -s mysession press enter\ntuistory -s mysession wait \"Done\" --timeout 60000\n```\n\n## Daemon Architecture\n\ntuistory runs a background **relay daemon** that holds all sessions in memory. The first CLI command auto-starts it; subsequent commands connect to the existing one.\n\n### Auto-restart on version upgrade\n\nWhen you upgrade tuistory, the next CLI command detects the version mismatch and **automatically restarts the daemon**.\n\n```\n┌───────────────┐     GET /version     ┌────────────────┐\n│  CLI v1.5.0   │ ──────────────────►  │ Daemon v1.4.0  │\n│               │ ◀──────────────────  │                │\n│               │   { version: 1.4.0 } │                │\n│               │                      │                │\n│  v1.5 > v1.4  │                      │                │\n│  ► kill old   │ ─── SIGTERM ──────►  │    (dies)      │\n│  ► spawn new  │                      └────────────────┘\n│               │                      ┌────────────────┐\n│               │ ─── spawn ────────►  │ Daemon v1.5.0  │\n│               │    poll /version     │                │\n│               │ ◀── { version: 1.5 } │                │\n│  ► proceed    │                      │   (ready)      │\n└───────────────┘                      └────────────────┘\n```\n\nThe restart is **race-safe**: a file lock prevents two concurrent CLI invocations from both trying to restart. The daemon only restarts when the CLI version is **newer** than the running daemon.\n\n### Manual daemon control\n\n```bash\ntuistory daemon-stop    # Stops daemon and closes all sessions\ntuistory log-path       # Print the daemon log file path\n```\n\n### Security model\n\nThe daemon runs a real shell PTY, so only your own terminal should reach it. Three checks enforce that:\n\n- **Bound to `127.0.0.1`.** Nothing on your network or the internet can connect.\n- **Origin header rejected.** Browsers always set it, CLI tools never do — so a malicious website you visit cannot open the attach WebSocket or inject keystrokes into your sessions.\n- **Host header allow-listed.** Only `127.0.0.1`, `localhost`, and `[::1]` are accepted, which blocks DNS rebinding tricks.\n\nAnything else gets `403` and is logged to `/tmp/tuistory/relay-server.log`.\n\n## Library Usage (Playwright for terminals)\n\nUse tuistory programmatically in tests or scripts:\n\n```ts\nimport { launchTerminal } from 'tuistory'\n\nconst session = await launchTerminal({\n  command: 'claude',\n  args: [],\n  cols: 150,\n  rows: 45,\n})\n\nawait session.waitForText('claude', { timeout: 10000 })\n\nconst initialText = await session.text()\nexpect(initialText).toMatchInlineSnapshot(`\n  \"\n  ╭────────────────────────────────────────────────────────────────────────╮\n  │ Welcome to Claude Code                                                │\n  ╰────────────────────────────────────────────────────────────────────────╯\n  \"\n`)\n\nawait session.type('/help')\nawait session.press('enter')\n\nconst output = session.read()\nconst allOutput = session.readAll()\n\nawait session.press(['ctrl', 'c'])\nsession.close()\n```\n\n## Library API\n\n### `launchTerminal(options)`\n\nLaunch a terminal session.\n\n```ts\nconst session = await launchTerminal({\n  command: 'my-cli',\n  args: ['--flag'],\n  cols: 120,\n  rows: 36,\n  cwd: '/path/to/dir',\n  env: { MY_VAR: 'value' },\n  idleDelayMs: 200,\n})\n```\n\n`idleDelayMs` controls how long the PTY must stop producing output before the\nsession is considered idle. It defaults to 200ms so multi-write TUI renders are\ncaptured as complete frames. Use a shorter delay only when the application\nrenders atomically or your test follows actions with a stronger readiness\npredicate. The default `waitIdle()` timeout grows with longer configured delays;\nan explicit `waitIdle({ timeout })` still takes precedence.\n\n### `session.type(text)`\n\nType a string character by character.\n\n```ts\nawait session.type('hello world')\n```\n\n### `session.press(keys)`\n\nPress a single key or a chord.\n\n```ts\nawait session.press('enter')\nawait session.press('tab')\nawait session.press(['ctrl', 'c'])\nawait session.press(['ctrl', 'shift', 'a'])\n```\n\n**Keys:** `enter`, `esc`, `tab`, `space`, `backspace`, `delete`, `up`, `down`, `left`, `right`, `home`, `end`, `pageup`, `pagedown`\n\n**Modifiers:** `ctrl`, `alt`, `shift`, `meta`\n\n### `session.text(options?)`\n\nGet the current terminal screen text.\n\n```ts\nconst text = await session.text()\n\n// Filter by style\nconst boldText = await session.text({ only: { bold: true } })\nconst coloredText = await session.text({ only: { foreground: '#ff0000' } })\n```\n\n### `session.read()`\n\nRead new process output since the last `read()` call. Returns clean text with ANSI codes stripped.\n\n```ts\nconst newOutput = session.read()\nconst allOutput = session.readAll()\n```\n\n### `session.waitForText(pattern, options?)`\n\nWait for text or regex to appear.\n\n```ts\nawait session.waitForText('Ready')\nawait session.waitForText(/Loading\\.\\.\\./, { timeout: 10000 })\n```\n\n### `session.click(pattern, options?)`\n\nClick on text matching a pattern.\n\n```ts\nawait session.click('Submit')\nawait session.click(/Button \\d+/, { first: true })\n```\n\n### `session.close()`\n\nClose the terminal session.\n\n```ts\nsession.close()\n```\n\n## Projects using tuistory\n\n- [Termcast](https://github.com/remorses/termcast): A Raycast API re-implementation for the terminal. Agents use tuistory to autonomously convert Raycast extensions into TUIs.\n- [Kimaki](https://github.com/remorses/kimaki): Discord bot agents that use tuistory to control TTY processes like opencode, claude code and debuggers.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}