{"_id":"@wterm/ghostty","_rev":"9-6813ee9a71e8263cc1c648b470b0d8a7","name":"@wterm/ghostty","dist-tags":{"latest":"0.5.1"},"versions":{"0.3.0":{"name":"@wterm/ghostty","version":"0.3.0","keywords":["terminal","emulator","ghostty","libghostty","wasm","xterm"],"license":"Apache-2.0","_id":"@wterm/ghostty@0.3.0","maintainers":[{"name":"ctate","email":"chris@ctate.dev"}],"homepage":"https://wterm.dev","bugs":{"url":"https://github.com/vercel-labs/wterm/issues"},"dist":{"shasum":"609415acb7ba4e9feb6d050d079a0f354bb76dd0","tarball":"https://registry.npmjs.org/@wterm/ghostty/-/ghostty-0.3.0.tgz","fileCount":17,"integrity":"sha512-TDjEmUSRD7IaFxq31P7+I3Inkp5mHCfBfO6LYj3/vbLbWOkOZOKPhjAcZ36AYFHe9Q0HLCFvLWmrxIO3aGCjDA==","signatures":[{"sig":"MEYCIQDGJ3QV6C+YsB3+lfxLovJZ1FQH5zo4kXJf+3nn4WD3+AIhAMglu2UHxxgZSuGTgUeDti3INWq3OCee5FrTBSsXf7Gc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":475068},"main":"dist/index.js","type":"module","_from":"file:wterm-ghostty-0.3.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"build":"tsc","type-check":"tsc --noEmit","rebuild-wasm":"bash scripts/build-wasm.sh"},"_npmUser":{"name":"ctate","email":"chris@ctate.dev"},"_resolved":"/private/var/folders/bw/l_mkbwg9061dn0frt5258s180000gn/T/c053f23544ba6957df3a668edbbbfad5/wterm-ghostty-0.3.0.tgz","_integrity":"sha512-TDjEmUSRD7IaFxq31P7+I3Inkp5mHCfBfO6LYj3/vbLbWOkOZOKPhjAcZ36AYFHe9Q0HLCFvLWmrxIO3aGCjDA==","repository":{"url":"git+https://github.com/vercel-labs/wterm.git","type":"git","directory":"packages/@wterm/ghostty"},"_npmVersion":"10.9.0","description":"libghostty-powered terminal core for wterm — full-featured VT emulation via Ghostty's WASM build","directories":{},"_nodeVersion":"22.12.0","dependencies":{"@wterm/core":"0.3.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.2","@internal/ts":"0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ghostty_0.3.0_1777580341298_0.22735024546423044","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@wterm/ghostty","version":"0.3.1","keywords":["terminal","emulator","ghostty","libghostty","wasm","xterm"],"license":"Apache-2.0","_id":"@wterm/ghostty@0.3.1","maintainers":[{"name":"ctate","email":"chris@ctate.dev"}],"homepage":"https://wterm.dev","bugs":{"url":"https://github.com/vercel-labs/wterm/issues"},"dist":{"shasum":"b3718db1db496769e528bf0a75952db1a04b48c4","tarball":"https://registry.npmjs.org/@wterm/ghostty/-/ghostty-0.3.1.tgz","fileCount":17,"integrity":"sha512-flTYuYMnl2jgn3ezuxikloraaPIcZabrmnvykzaIHqk61m5XowaLBkEUKagXKZZ36i5NfAP37kDzZsMWAB7psg==","signatures":[{"sig":"MEUCIQDqaytXZpuQRmVTbvJfw3fbToOSwFSa+Y2brtDusx9UqgIgaDdui3FFfYtDNFY7mE74j7j/EUodFXxbnwCAUMNZhCk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@wterm%2fghostty@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":475341},"main":"dist/index.js","type":"module","_from":"file:/tmp/wterm-ghostty-0.3.1.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc --noEmit","rebuild-wasm":"bash scripts/build-wasm.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7aab1f60-2083-4b58-b83b-babd05acfa67"}},"_resolved":"/tmp/wterm-ghostty-0.3.1.tgz","_integrity":"sha512-flTYuYMnl2jgn3ezuxikloraaPIcZabrmnvykzaIHqk61m5XowaLBkEUKagXKZZ36i5NfAP37kDzZsMWAB7psg==","repository":{"url":"git+https://github.com/vercel-labs/wterm.git","type":"git","directory":"packages/@wterm/ghostty"},"_npmVersion":"11.16.0","description":"libghostty-powered terminal core for wterm — full-featured VT emulation via Ghostty's WASM build","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@wterm/core":"0.3.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.2","@internal/ts":"0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ghostty_0.3.1_1785213124063_0.3023220751307589","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@wterm/ghostty","version":"0.3.2","keywords":["terminal","emulator","ghostty","libghostty","wasm","xterm"],"license":"Apache-2.0","_id":"@wterm/ghostty@0.3.2","maintainers":[{"name":"ctate","email":"chris@ctate.dev"}],"homepage":"https://wterm.dev","bugs":{"url":"https://github.com/vercel-labs/wterm/issues"},"dist":{"shasum":"d5f130d35f2333c238b7d554a79abbe789f85345","tarball":"https://registry.npmjs.org/@wterm/ghostty/-/ghostty-0.3.2.tgz","fileCount":17,"integrity":"sha512-sP5w7xntOQHb2ReuHjeDtPXHnUtLyWyrEaFqOY2kuc/mdH2GFWfhQyrLbKx8b8pTmmmdlxbJ76ksrERcobmVWw==","signatures":[{"sig":"MEUCIQCjcGcLvwoCk5RnL15PL1QTIfJyXsSGNQLKBOu8I9SB4gIgEHGT12hS9KSBU6tEmZFDWMhwfQZ1CfI9XySCoXpw3lc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@wterm%2fghostty@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":483041},"main":"dist/index.js","type":"module","_from":"file:/tmp/wterm-ghostty-0.3.2.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ghostty-vt.wasm":"./wasm/ghostty-vt.wasm"},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc --noEmit","rebuild-wasm":"bash scripts/build-wasm.sh","rebuild-wasm:docker":"bash scripts/build-wasm-docker.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7aab1f60-2083-4b58-b83b-babd05acfa67"}},"_resolved":"/tmp/wterm-ghostty-0.3.2.tgz","_integrity":"sha512-sP5w7xntOQHb2ReuHjeDtPXHnUtLyWyrEaFqOY2kuc/mdH2GFWfhQyrLbKx8b8pTmmmdlxbJ76ksrERcobmVWw==","repository":{"url":"git+https://github.com/vercel-labs/wterm.git","type":"git","directory":"packages/@wterm/ghostty"},"_npmVersion":"11.16.0","description":"libghostty-powered terminal core for wterm — full-featured VT emulation via Ghostty's WASM build","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@wterm/core":"0.3.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.2","@internal/ts":"0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ghostty_0.3.2_1785710608205_0.36654227007538953","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@wterm/ghostty","version":"0.3.3","keywords":["terminal","emulator","ghostty","libghostty","wasm","xterm"],"license":"Apache-2.0","_id":"@wterm/ghostty@0.3.3","maintainers":[{"name":"ctate","email":"chris@ctate.dev"}],"homepage":"https://wterm.dev","bugs":{"url":"https://github.com/vercel-labs/wterm/issues"},"dist":{"shasum":"aa74a163f1148b688425598d74d48af841bfcbe0","tarball":"https://registry.npmjs.org/@wterm/ghostty/-/ghostty-0.3.3.tgz","fileCount":17,"integrity":"sha512-7/AGWr0TiD77g8+ZKAFl8L31ge2o+N41MsUD+ukLxsWnOgoRetSI43FYAlJ8yWi7X74FMM5l+n1Um+jtXsu0oQ==","signatures":[{"sig":"MEUCIFMBKMHaHCr9lh+HlrcdfiLDkk3KMjbkjN1bIZsB/GI3AiEAsgfZw0oVLH/z5lb8XvkDv4aDAm4oNceTi92UWh4xzDs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@wterm%2fghostty@0.3.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":486146},"main":"dist/index.js","type":"module","_from":"file:/tmp/wterm-ghostty-0.3.3.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ghostty-vt.wasm":"./wasm/ghostty-vt.wasm"},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc --noEmit","rebuild-wasm":"bash scripts/build-wasm.sh","rebuild-wasm:docker":"bash scripts/build-wasm-docker.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7aab1f60-2083-4b58-b83b-babd05acfa67"}},"_resolved":"/tmp/wterm-ghostty-0.3.3.tgz","_integrity":"sha512-7/AGWr0TiD77g8+ZKAFl8L31ge2o+N41MsUD+ukLxsWnOgoRetSI43FYAlJ8yWi7X74FMM5l+n1Um+jtXsu0oQ==","repository":{"url":"git+https://github.com/vercel-labs/wterm.git","type":"git","directory":"packages/@wterm/ghostty"},"_npmVersion":"11.16.0","description":"libghostty-powered terminal core for wterm — full-featured VT emulation via Ghostty's WASM build","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@wterm/core":"0.3.3"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.2","@internal/ts":"0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ghostty_0.3.3_1786381820828_0.060280684233991355","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@wterm/ghostty","version":"0.3.4","keywords":["terminal","emulator","ghostty","libghostty","wasm","xterm"],"license":"Apache-2.0","_id":"@wterm/ghostty@0.3.4","maintainers":[{"name":"ctate","email":"chris@ctate.dev"}],"homepage":"https://wterm.dev","bugs":{"url":"https://github.com/vercel-labs/wterm/issues"},"dist":{"shasum":"f7c91d80f3fd5ab79c90c7965f271004617e3bde","tarball":"https://registry.npmjs.org/@wterm/ghostty/-/ghostty-0.3.4.tgz","fileCount":17,"integrity":"sha512-oa53vgUFuNfIt+p8vvEeKlr8M4NRciEmHqY8pIXBxV3NRH6OGjMb1TiSxKBi+hySP61uXKqVbbu9YdW+7fWNMg==","signatures":[{"sig":"MEUCIQCmfYzcK6ZZUYeZ5rPF9yPY84l15GmZhwXhfKuQVqX+9gIgRc2cvDdUtoQZvWSrm7GC5vAVhMduYlVKa06cyB1vHus=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@wterm%2fghostty@0.3.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":503721},"main":"dist/index.js","type":"module","_from":"file:/tmp/wterm-ghostty-0.3.4.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ghostty-vt.wasm":"./wasm/ghostty-vt.wasm"},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc --noEmit","rebuild-wasm":"bash scripts/build-wasm.sh","rebuild-wasm:docker":"bash scripts/build-wasm-docker.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7aab1f60-2083-4b58-b83b-babd05acfa67"}},"_resolved":"/tmp/wterm-ghostty-0.3.4.tgz","_integrity":"sha512-oa53vgUFuNfIt+p8vvEeKlr8M4NRciEmHqY8pIXBxV3NRH6OGjMb1TiSxKBi+hySP61uXKqVbbu9YdW+7fWNMg==","repository":{"url":"git+https://github.com/vercel-labs/wterm.git","type":"git","directory":"packages/@wterm/ghostty"},"_npmVersion":"11.17.0","description":"libghostty-powered terminal core for wterm — full-featured VT emulation via Ghostty's WASM build","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@wterm/core":"0.3.4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.2","@internal/ts":"0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ghostty_0.3.4_1786600269387_0.13999681857614044","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@wterm/ghostty","version":"0.4.0","keywords":["terminal","emulator","ghostty","libghostty","wasm","xterm"],"license":"Apache-2.0","_id":"@wterm/ghostty@0.4.0","maintainers":[{"name":"ctate","email":"chris@ctate.dev"}],"homepage":"https://wterm.dev","bugs":{"url":"https://github.com/vercel-labs/wterm/issues"},"dist":{"shasum":"b5f0b17ea7e68ed052b6e0b07a3ab3a0c1dbc234","tarball":"https://registry.npmjs.org/@wterm/ghostty/-/ghostty-0.4.0.tgz","fileCount":17,"integrity":"sha512-tNavTXXMwf7TRAg+XhgCM8oO9ZeKuJDNDfO3rGspa4hZujkWzAfCByWM/8RPh7XzzBVJ+r8Mf1DWT5WVXUpFWQ==","signatures":[{"sig":"MEUCIQCzE7QW4kKXn3QF9RC/MmTh8npJ8IToqX/pJBY07p9kKAIgZv8FkhsNntJS+zYef81Rzt7A0np7A2oe3f21vf2Not8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@wterm%2fghostty@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":681060},"main":"dist/index.js","type":"module","_from":"file:/tmp/wterm-ghostty-0.4.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ghostty-vt.wasm":"./wasm/ghostty-vt.wasm"},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc --noEmit","rebuild-wasm":"bash scripts/build-wasm.sh","rebuild-wasm:docker":"bash scripts/build-wasm-docker.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7aab1f60-2083-4b58-b83b-babd05acfa67"}},"_resolved":"/tmp/wterm-ghostty-0.4.0.tgz","_integrity":"sha512-tNavTXXMwf7TRAg+XhgCM8oO9ZeKuJDNDfO3rGspa4hZujkWzAfCByWM/8RPh7XzzBVJ+r8Mf1DWT5WVXUpFWQ==","repository":{"url":"git+https://github.com/vercel-labs/wterm.git","type":"git","directory":"packages/@wterm/ghostty"},"_npmVersion":"11.17.0","description":"libghostty-powered terminal core for wterm — full-featured VT emulation via Ghostty's WASM build","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@wterm/core":"0.4.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.2","@internal/ts":"0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ghostty_0.4.0_1788362802023_0.5216808895932461","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@wterm/ghostty","version":"0.4.1","keywords":["terminal","emulator","ghostty","libghostty","wasm","xterm"],"license":"Apache-2.0","_id":"@wterm/ghostty@0.4.1","maintainers":[{"name":"ctate","email":"chris@ctate.dev"}],"homepage":"https://wterm.dev","bugs":{"url":"https://github.com/vercel-labs/wterm/issues"},"dist":{"shasum":"fcce407d48b8545a86cd9c6fc9d8dfe04e12b9c2","tarball":"https://registry.npmjs.org/@wterm/ghostty/-/ghostty-0.4.1.tgz","fileCount":17,"integrity":"sha512-HqG/03oTXME302x+BwOaWDSi2b1Txgd28rbIHhRcTIlY4R4+vqafMmXDrKWEmNsMuoqbTc4prAr/MmVQvm/TmQ==","signatures":[{"sig":"MEUCIQCQ07jNIoyWD3LxccVpGGkAJZCQLsQkkqnI/6cgGNbdsgIgOa7EojQRG59inf5bSFBYxv01WMuYDIsluk0R0YnR2IE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@wterm%2fghostty@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":681248},"main":"dist/index.js","type":"module","_from":"file:/tmp/wterm-ghostty-0.4.1.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ghostty-vt.wasm":"./wasm/ghostty-vt.wasm"},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc --noEmit","rebuild-wasm":"bash scripts/build-wasm.sh","rebuild-wasm:docker":"bash scripts/build-wasm-docker.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7aab1f60-2083-4b58-b83b-babd05acfa67"}},"_resolved":"/tmp/wterm-ghostty-0.4.1.tgz","_integrity":"sha512-HqG/03oTXME302x+BwOaWDSi2b1Txgd28rbIHhRcTIlY4R4+vqafMmXDrKWEmNsMuoqbTc4prAr/MmVQvm/TmQ==","repository":{"url":"git+https://github.com/vercel-labs/wterm.git","type":"git","directory":"packages/@wterm/ghostty"},"_npmVersion":"11.19.0","description":"libghostty-powered terminal core for wterm — full-featured VT emulation via Ghostty's WASM build","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@wterm/core":"0.4.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.2","@internal/ts":"0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ghostty_0.4.1_1788391889876_0.04933772005656478","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@wterm/ghostty","version":"0.5.0","keywords":["terminal","emulator","ghostty","libghostty","wasm","xterm"],"license":"Apache-2.0","_id":"@wterm/ghostty@0.5.0","maintainers":[{"name":"ctate","email":"chris@ctate.dev"}],"homepage":"https://wterm.dev","bugs":{"url":"https://github.com/vercel-labs/wterm/issues"},"dist":{"shasum":"e337354301871ff8fff9bc242d14ed25337c53f8","tarball":"https://registry.npmjs.org/@wterm/ghostty/-/ghostty-0.5.0.tgz","fileCount":17,"integrity":"sha512-MOZTFazB1g3gd2xWslE3Ua0D8opfiTBsskIMtdclE0IsoghHMn4lu0oFEbQV0ZiUNGrou8Td+dPNNm5GYjMhvQ==","signatures":[{"sig":"MEUCICHu20X7xBQOa5PjzT6TmMj71S4+g/aeM7Ggw3bjim/PAiEArBklrAswKIZiHxevm8d4ShnMPGjnln4GEHEy1otA3jc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@wterm%2fghostty@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":681593},"main":"dist/index.js","type":"module","_from":"file:/tmp/wterm-ghostty-0.5.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ghostty-vt.wasm":"./wasm/ghostty-vt.wasm"},"scripts":{"test":"vitest run","build":"tsc","type-check":"tsc --noEmit","rebuild-wasm":"bash scripts/build-wasm.sh","rebuild-wasm:docker":"bash scripts/build-wasm-docker.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7aab1f60-2083-4b58-b83b-babd05acfa67"}},"_resolved":"/tmp/wterm-ghostty-0.5.0.tgz","_integrity":"sha512-MOZTFazB1g3gd2xWslE3Ua0D8opfiTBsskIMtdclE0IsoghHMn4lu0oFEbQV0ZiUNGrou8Td+dPNNm5GYjMhvQ==","repository":{"url":"git+https://github.com/vercel-labs/wterm.git","type":"git","directory":"packages/@wterm/ghostty"},"_npmVersion":"11.19.0","description":"libghostty-powered terminal core for wterm — full-featured VT emulation via Ghostty's WASM build","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@wterm/core":"0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.2","@internal/ts":"0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ghostty_0.5.0_1788561821461_0.6382837235928445","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"_id":"@wterm/ghostty@0.5.1","bugs":{"url":"https://github.com/vercel-labs/wterm/issues"},"dist":{"shasum":"b9e4041f72790e901bc70e53c252842cc3a090de","tarball":"https://registry.npmjs.org/@wterm/ghostty/-/ghostty-0.5.1.tgz","fileCount":17,"integrity":"sha512-5JJwiLx9ImDkgGyRJN4AhQSWp+DilBwqarIZhdA8qzh37sqOjlTZJAd/Lm6VGF1964rkYXYSQSQFbGbj0hlByg==","signatures":[{"sig":"MEYCIQDzNJiUH6CLYUd7mB4nxzfL4duAOjASLIK8jPrJqiZhgAIhAI1t3aEjsDlTsuyWFVL922xn0hsct144k0AbgPE3fiOf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGod1obUZBNz1aNYPKqAVfbN2KRcUIEGJK7s9ieZYX0lAiAmXULnU4SVFpTN4DoHZZimRUl7ZOU+vPlpWJX8mnwY7A=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@wterm%2fghostty@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":700784},"main":"dist/index.js","name":"@wterm/ghostty","type":"module","_from":"file:/tmp/wterm-ghostty-0.5.1.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ghostty-vt.wasm":"./wasm/ghostty-vt.wasm"},"license":"Apache-2.0","scripts":{"test":"vitest run","build":"tsc","type-check":"tsc --noEmit","rebuild-wasm":"bash scripts/build-wasm.sh","rebuild-wasm:docker":"bash scripts/build-wasm-docker.sh"},"version":"0.5.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7aab1f60-2083-4b58-b83b-babd05acfa67"}},"homepage":"https://wterm.dev","keywords":["terminal","emulator","ghostty","libghostty","wasm","xterm"],"_resolved":"/tmp/wterm-ghostty-0.5.1.tgz","_integrity":"sha512-5JJwiLx9ImDkgGyRJN4AhQSWp+DilBwqarIZhdA8qzh37sqOjlTZJAd/Lm6VGF1964rkYXYSQSQFbGbj0hlByg==","repository":{"url":"git+https://github.com/vercel-labs/wterm.git","type":"git","directory":"packages/@wterm/ghostty"},"_npmVersion":"11.19.0","description":"libghostty-powered terminal core for wterm — full-featured VT emulation via Ghostty's WASM build","directories":{},"maintainers":[{"name":"ctate","email":"chris@ctate.dev"}],"_nodeVersion":"24.21.0","dependencies":{"@wterm/core":"0.5.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@internal/ts":"0.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ghostty_0.5.1_1790379972141_0.6465767599325065"}}},"time":{"created":"2026-04-30T20:19:00.889Z","modified":"2026-09-25T23:46:12.622Z","0.3.0":"2026-04-30T20:19:01.506Z","0.3.1":"2026-07-28T04:32:04.203Z","0.3.2":"2026-08-02T22:43:28.347Z","0.3.3":"2026-08-10T17:10:21.006Z","0.3.4":"2026-08-13T05:51:09.561Z","0.4.0":"2026-09-02T15:26:42.209Z","0.4.1":"2026-09-02T23:31:30.035Z","0.5.0":"2026-09-04T22:43:41.628Z","0.5.1":"2026-09-25T23:46:12.274Z"},"bugs":{"url":"https://github.com/vercel-labs/wterm/issues"},"license":"Apache-2.0","homepage":"https://wterm.dev","keywords":["terminal","emulator","ghostty","libghostty","wasm","xterm"],"repository":{"url":"git+https://github.com/vercel-labs/wterm.git","type":"git","directory":"packages/@wterm/ghostty"},"description":"libghostty-powered terminal core for wterm — full-featured VT emulation via Ghostty's WASM build","maintainers":[{"name":"ctate","email":"chris@ctate.dev"}],"readme":"# @wterm/ghostty\n\nFull-featured terminal emulation core for [wterm](https://github.com/vercel-labs/wterm), powered by [libghostty](https://ghostty.org) built from source.\n\nDrop-in replacement for wterm's built-in Zig core. Implements the same `TerminalCore` interface with comprehensive VT emulation: proper Unicode grapheme handling, all SGR attributes, terminal modes, and more.\n\nThe core exposes mouse tracking (modes 1000, 1002, and 1003), its active wire encoding through `mouseEncoding()`, focus reporting (mode 1004), synchronized-output state (mode 2026), Kitty keyboard negotiation, and terminal responses including foreground/background color queries (OSC 10 and OSC 11) to `@wterm/dom`. With the DOM layer, X10, UTF-8 (1005), SGR (1006), urxvt (1015), and SGR pixel (1016) reports are supported. Mode 1003 reports unpressed pointer movement once per cell for cell formats and once per CSS pixel for 1016.\nCombining marks and ZWJ emoji are exposed through `CellData.chars` as complete strings, including after their rows move into scrollback.\n\n`CellData.spacerHead` marks the empty right-edge filler before a wrapped wide glyph. WTerm's full-history Find uses this flag, grapheme strings, and native row-wrap metadata to match text across soft wraps without inserting artificial spaces.\n\nWTerm also uses this metadata when copying native text selections: soft wraps join without newlines, spacer heads are omitted, and partial graphemes copy as whole cells. Explicit newlines remain intact. See [selection and copy](../dom/README.md#selecting-and-copying-text).\n\n`trackPosition({ row, col })` follows a retained cell through scrolling and reflow. The returned handle has `resolve()` and `dispose()` methods; row zero is the oldest retained row. It resolves to `null` after pruning, reset, screen switching, reinitialization, or disposal. Up to 64 simultaneous handles are supported; invalid coordinates, exhausted capacity, and older binaries return `null`. Release handles when finished. WTerm uses this API to preserve native selections and separately checks for overwritten text. See the [core contract](../core/README.md#tracked-cell-positions).\n\n`getCursor()` exposes Ghostty's block, bar, or underline `shape` and `blinking`\nstate. The DOM renderer follows application requests (DECSCUSR and mode 12);\nan explicit `cursorBlink: true` or `false` on the terminal wrapper overrides\nblinking. Omitting the option follows the application, initially steady.\n\nOSC 0 and OSC 2 window-title changes reach `getTitle()` and the terminal\nwrapper's `onTitle` callback, including an empty title that clears the current\nname. When several changes arrive before a render, the latest complete title\nis delivered. Titles longer than Ghostty's 255-byte limit are ignored.\n\n`getBellCount()` reads and clears Ghostty's pending BEL count. `WTerm` forwards\nit through `onBell(count)` as output is written, even when synchronized output\nholds painting. BEL used to terminate an OSC sequence is excluded.\n\nNative OSC 8 hyperlinks are resolved from Ghostty's page-owned metadata and exposed through `CellData.linkUri`, `CellData.linkId`, and `CellData.linkKey` in both the viewport and scrollback.\n\nThe Ghostty core also provides the optional terminal graphics API. The DOM\nrenderer displays direct Kitty Graphics Protocol PNG/RGB/RGBA images as\ntransient, bounded canvas overlays. Pinned placements follow scrollback,\nscrolling, resize, and primary/alternate screen changes. Sixel, iTerm2/OSC\n1337, animation, virtual Unicode placements, file/shared-memory/URL media, and\nimage persistence are not supported. Auto-sized (implicit) placements align\nwith the terminal content origin and reserve their rendered height in the\nvisual DOM flow so prompts emitted after an image remain visible below it.\n\nGhostty also exposes the cumulative number of rows discarded from the oldest end of scrollback. `@wterm/dom` uses that signal to keep retained history anchored when the page budget rolls over.\n\n`getRowMetadata(row)` and `getScrollbackRowMetadata(offset)` return\n`{ wrapsToNext, continuesPrevious }` from Ghostty's native row flags. Live rows\nstart at zero; history offset zero is the newest retained row. They distinguish\nsoft wraps from explicit newlines, including across the live/history boundary\nand after resize reflow. Results are snapshots: re-read after output or resize,\nand treat row indexes as temporary. A retained row can continue an older row\nthat has already been discarded. Invalid positions, disposed cores, and older\nWASM binaries without these exports return `null` rather than a hard-line\nassumption. The methods read terminal state immediately, without requiring a\nrender or consuming dirty flags.\n\nKitty keyboard flags stay authoritative in Ghostty's active screen. Queries return the native value, primary and alternate screens negotiate independently, DECSTR preserves the flags, and RIS clears them. `@wterm/dom` encodes browser keyboard events from those flags with the browser limitations documented in its README.\n\n## Install\n\n```bash\nnpm install @wterm/ghostty\n```\n\n## Usage\n\n### Vanilla JS\n\n```ts\nimport { WTerm } from \"@wterm/dom\";\nimport { GhosttyCore } from \"@wterm/ghostty\";\nimport \"@wterm/dom/css\";\n\nconst core = await GhosttyCore.load();\nconst term = new WTerm(document.getElementById(\"terminal\"), { core });\nawait term.init();\n```\n\n### React\n\n```tsx\nimport { Terminal } from \"@wterm/react\";\nimport { GhosttyCore } from \"@wterm/ghostty\";\nimport \"@wterm/dom/css\";\n\nconst core = await GhosttyCore.load();\n\nfunction App() {\n  return <Terminal core={core} />;\n}\n```\n\n### Vue\n\n```vue\n<script setup lang=\"ts\">\nimport { Terminal } from \"@wterm/vue\";\nimport { GhosttyCore } from \"@wterm/ghostty\";\n\nconst core = await GhosttyCore.load();\n</script>\n\n<template>\n  <Terminal :core=\"core\" />\n</template>\n```\n\n### Svelte\n\n```svelte\n<script lang=\"ts\">\nimport { onMount } from \"svelte\";\nimport { Terminal } from \"@wterm/svelte\";\nimport { GhosttyCore } from \"@wterm/ghostty\";\n\nlet core: GhosttyCore | undefined;\n\nonMount(() => {\n  void GhosttyCore.load().then((loaded) => {\n    core = loaded;\n  });\n});\n</script>\n\n{#if core}\n  <Terminal {core} />\n{/if}\n```\n\n## Options\n\n`GhosttyCore.load()` accepts an options object:\n\n| Option | Type | Description |\n|---|---|---|\n| `wasmPath` | `string` | Custom path to the ghostty-vt WASM binary |\n| `scrollbackLimit` | `number` | Scrollback budget in bytes, not lines (default: 10000). ghostty allocates history in pages, so the retained row count depends on the terminal width |\n| `foregroundColor` | `string` | Foreground reported by OSC 10 in `#RRGGBB` format (default: `#d4d4d4`) |\n| `backgroundColor` | `string` | Background reported by OSC 11 in `#RRGGBB` format (default: `#1e1e1e`) |\n| `imageStorageLimit` | `number` | Maximum decoded Kitty image bytes per screen (default: 32 MiB; `0` disables graphics) |\n\nWhen using a custom CSS theme, pass matching foreground and background colors so terminal applications receive the colors they are actually rendered with:\n\n```ts\nconst core = await GhosttyCore.load({\n  foregroundColor: \"#ededed\",\n  backgroundColor: \"#0a0a0a\",\n  imageStorageLimit: 32 * 1024 * 1024,\n});\n```\n\nThe image limit applies to decoded image storage, not browser canvas count.\nEach direct image is also capped at `MAX_IMAGE_BYTES` (32 MiB), even when a\nlarger `imageStorageLimit` is configured; the larger budget can hold multiple\nsmaller images. Each screen also retains at most 4,096 image descriptors and\n4,096 placements, so unique tiny-image churn cannot grow WASM metadata without\nbound; additional records fail closed until existing records are removed.\nThe DOM overlay independently caps visible canvas backing stores at 32 MiB and\nbounds each destination canvas to the terminal pixel area; placements that do\nnot fit those browser limits are skipped.\nGhostty rejects oversized, malformed, and non-direct media before any file or\nshared-memory access. `getResourceState()` reports image count, placement\ncount, bytes used/capacity, rejections, evictions, and saturation.\n\nThe core returns copied metadata and RGBA buffers through the optional\n`TerminalCore` graphics methods. Call `core.dispose()` when the application\nowns the core lifecycle; `WTerm.destroy()` cleans up its DOM layer but never\ndisposes a caller-supplied core automatically.\n\n## Bundlers\n\nThe WASM binary is fetched at runtime, not inlined, so the default has to resolve to a URL your app actually serves. `GhosttyCore.load()` resolves it with `new URL(\"../wasm/ghostty-vt.wasm\", import.meta.url)`. Bundlers that implement that asset pattern emit the binary and rewrite the URL; ones that do not leave `import.meta.url` pointing at the machine that built the bundle.\n\n| Bundler | Default `GhosttyCore.load()` | Verified |\n|---|---|---|\n| Vite (dev and build) | works, emits a hashed asset | yes |\n| Bun dev server | fails, pass `wasmPath` | yes |\n| Others | untested, use `wasmPath` if the default throws | no |\n\nWhen the default cannot work, serve the binary yourself and point at it:\n\n```bash\ncp node_modules/@wterm/ghostty/wasm/ghostty-vt.wasm public/ghostty-vt.wasm\n```\n\n```ts\nconst core = await GhosttyCore.load({ wasmPath: \"/ghostty-vt.wasm\" });\n```\n\nThe binary is also addressable as `@wterm/ghostty/ghostty-vt.wasm`, so a bundler with a URL import can take it directly:\n\n```ts\nimport wasmPath from \"@wterm/ghostty/ghostty-vt.wasm?url\";\n\nconst core = await GhosttyCore.load({ wasmPath });\n```\n\n## Architecture\n\nThe WASM binary is built from upstream [ghostty-org/ghostty](https://github.com/ghostty-org/ghostty) (v1.3.1) using it as a Zig package dependency — no third-party npm packages or pre-built binaries from other projects.\n\n```\nghostty (Zig dep)  →  WASM patches  →  wasm_api.zig (~300 LOC)  →  ghostty-vt.wasm  →  TypeScript bindings\n```\n\nghostty's `Terminal` and `Page` types use `posix.mmap` and Mach VM allocators internally, which don't exist on `wasm32-freestanding`. The build script applies small, targeted patches to replace these with `std.heap.wasm_allocator`, expose the discarded-row count from `PageList`, forward the per-screen image limit, bound and compact Kitty image/placement metadata, and make direct PNG decoding work without POSIX time. It also adds the Wuffs freestanding compatibility include/source configuration in `zig/build.zig`. The patches are pinned to ghostty v1.3.1 and touch these upstream files:\n\n- `src/terminal/Terminal.zig`\n- `src/terminal/kitty/graphics_image.zig`\n- `src/terminal/kitty/graphics_storage.zig`\n- `src/terminal/kitty/graphics_exec.zig`\n- `src/terminal/kitty/graphics_unicode.zig`\n- `src/terminal/page.zig`\n- `src/terminal/PageList.zig`\n\nThe Wuffs compatibility headers used by the build are `zig/src/wuffs-compat/{stdbool.h,stddef.h,stdint.h,stdlib.h,string.h}`; Wuffs itself is fetched from the pinned dependency in `zig/build.zig.zon`.\n\nThe committed `wasm/ghostty-vt.wasm` binary means consumers never need Zig installed. Only maintainers rebuilding the WASM need Zig 0.15.x.\n\n### Rebuilding the WASM\n\nRequires [Zig 0.15.x](https://ziglang.org/download/) (ghostty's required version):\n\n```bash\npnpm --filter @wterm/ghostty rebuild-wasm\n```\n\nThis fetches the ghostty source via Zig's package manager, applies WASM compatibility patches, compiles our export layer to `wasm32-freestanding`, and copies the binary to `wasm/`.\n\nIf the host toolchain cannot build, run the same script in a Linux container:\n\n```bash\npnpm --filter @wterm/ghostty rebuild-wasm:docker\n```\n\nZig 0.15.x cannot link a native build runner on macOS 26, and Zig 0.16 fails inside ghostty's vendored build files, so neither drives `rebuild-wasm` there. The wasm target itself is unaffected. Container output is byte-identical to a host build.\n\n### Public API experiment\n\nThe repository also contains an isolated\n[public libghostty WASM probe](../../../experiments/libghostty/README.md), using\nan unpatched upstream revision and Zig 0.16.0. Run `pnpm test:libghostty` from\nthe repository root to build it and exercise rendering, terminal effects,\nhistory, and snapshots in Node and browser engines. It does not replace this\npackage's v1.3.1 binary: the probed freestanding build disables Kitty graphics,\nand the public API still has gaps against the adapter's history, hyperlink\nidentity, and resource-reporting contracts. The experiment documents the\nverified behavior and remaining compatibility gaps.\n\n### Upgrading ghostty\n\n1. Edit the URL tag in `zig/build.zig.zon` to the new ghostty version\n2. Run `zig fetch <new-url>` from the `zig/` directory to get the new hash\n3. Update the hash in `build.zig.zon`\n4. Verify the patches in `scripts/patch-ghostty-wasm.sh` still apply cleanly\n5. Run `pnpm --filter @wterm/ghostty rebuild-wasm`\n\n## Tradeoffs vs built-in core\n\n| | Built-in (default) | `@wterm/ghostty` |\n|---|---|---|\n| WASM binary size | ~26 KB | ~580 KB |\n| VT compliance | Basic VT100/VT220/xterm | Comprehensive |\n| Unicode | Single codepoints | Full grapheme clusters |\n| Dependencies | None | None (WASM built from source) |\n| Setup | Zero-config | Requires `@wterm/ghostty` install |\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}