{"_id":"@hahahhh/sshx","_rev":"34-877db81b5a18a1a2c32ba169aca341fe","name":"@hahahhh/sshx","dist-tags":{"latest":"0.0.8","next":"0.0.8-rc.0"},"versions":{"0.0.1-rc.2":{"name":"@hahahhh/sshx","version":"0.0.1-rc.2","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.1-rc.2","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"7017b7948de0fea49f592995defba5fe20f719ca","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.1-rc.2.tgz","fileCount":3,"integrity":"sha512-gQMdB+rllHK8gmmKA82Hfq0FW5UG/yT1UzLc+inWou9wMa5fZSQ7YWuwouTr1l8M4kgj6w95uxaWIArGiWYUig==","signatures":[{"sig":"MEQCIFepwbVNPGd8ii/390dAYxZl4nnYWdsG9xAtAsMxMzeaAiBvGXOo/chyXa4YYcVf+iWry1keLxTo2SwgGkdMkKl3jQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13439},"type":"module","engines":{"node":">=18"},"gitHead":"894ba57da56248aba25a4bca5d1e96a9d869d65d","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.1-rc.2_1783162164633_0.3778726440448319","host":"s3://npm-registry-packages-npm-production"}},"0.0.1-rc.3":{"name":"@hahahhh/sshx","version":"0.0.1-rc.3","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.1-rc.3","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"eeffa5a9afcdf58bf26035bdaf76053bee467991","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.1-rc.3.tgz","fileCount":3,"integrity":"sha512-yVpPqziu74YFk0ZmbFDK7A6lpgNRwKcm3octW93Zd4T0UBhcUKzls4ezuAncqVqLqJgnNaF/LR6Fv9PdZwjYBg==","signatures":[{"sig":"MEQCIH3+YLNQIBMSpmK2P73lJ69JC2nnVwc3PFWaQ0eVv3FcAiByrAGVE8jYLvZxNcCjJKAgwA6i11rFh2dywIfkFXw7gg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13504},"type":"module","engines":{"node":">=18"},"gitHead":"bdbbfe05b9727a3820fd79713a3bf42a28d838c2","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.1-rc.3_1783162979470_0.28491218589391964","host":"s3://npm-registry-packages-npm-production"}},"0.0.1-rc.4":{"name":"@hahahhh/sshx","version":"0.0.1-rc.4","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.1-rc.4","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"257f4eb4f7c0713f5df8b321c72f695515143e4c","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.1-rc.4.tgz","fileCount":3,"integrity":"sha512-zJXpudsLGS1jY3aglJLAKyBOQzhG1AAHKVOaGD2g2L/a/lfPv54AtGo1LlxLegDpOq+0VnKZ/b3yZKrFu2ftmg==","signatures":[{"sig":"MEUCIAJV47Z4hSP5hu3EEUo8rWuoplVcopP1gNwOU87doeAZAiEAhWsOQraSHIjn9098cofn1i4rzsXmX6DiT0S92m+0/BQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13592},"type":"module","engines":{"node":">=18"},"gitHead":"d31b41a28cd7c8a34fe2de7dc6501795d304a1b9","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.1-rc.4_1783166028537_0.9326094802798248","host":"s3://npm-registry-packages-npm-production"}},"0.0.1-rc.5":{"name":"@hahahhh/sshx","version":"0.0.1-rc.5","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.1-rc.5","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"3faa3eb8643563abd9dccd6bfdeed2d2f97c1c98","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.1-rc.5.tgz","fileCount":3,"integrity":"sha512-q4PArNERDZPlM/qAv6dpOIIzBoZ2SnJVdE1YeZO88ZD5vmLA5/F6NUy/qKN9kTr7dU1VnR6Po9vJOUXoa9j7aw==","signatures":[{"sig":"MEYCIQCIRPeOAkeekkGwrBLn2c2WIO1NLx9Z2oyHmP81Py0eRQIhANw2lyBppGK2YSQ3u25h9uG3i8G4Z22imFFfJrRyhOr8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13592},"type":"module","engines":{"node":">=18"},"gitHead":"0a82c4e3c8b1613e111505ec71b8643f3ca59348","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.1-rc.5_1783166820255_0.7928507329386194","host":"s3://npm-registry-packages-npm-production"}},"0.0.1-rc.6":{"name":"@hahahhh/sshx","version":"0.0.1-rc.6","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.1-rc.6","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"cdcd5a6fbffdad3c9ca5dc6eef3a4bee001f5a33","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.1-rc.6.tgz","fileCount":3,"integrity":"sha512-ZJjtJRpHUkZ/ZHrlSOPiARptDenbXoLlFI9NUc+2Q25Ys73bdXyJTmPPCvhz5PFTKKUPfqR280OE4zC9gKL7gQ==","signatures":[{"sig":"MEUCIHyHxB8tv18s2bO0vuQjTaT+ZFkt/ygbaPK4kAdqqR+xAiEAwEB3GWGYVwLgi9RAVqik8leCWMmSW4Dy3GtgihUCct0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13592},"type":"module","engines":{"node":">=18"},"gitHead":"a9f6f0b43135c73e508edb7f9f2ec56e8a8784a2","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.1-rc.6_1783167539945_0.75808292215818","host":"s3://npm-registry-packages-npm-production"}},"0.0.1-rc.7":{"name":"@hahahhh/sshx","version":"0.0.1-rc.7","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.1-rc.7","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"2b1677c6fcbf5b832fdfdfe592b3ced68f218414","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.1-rc.7.tgz","fileCount":3,"integrity":"sha512-dzyRdTu5H/wJMRLnnninYOFEZnBQ8InKxZRM4JMwB9WN8Fjv7K68zemNWiv01ltS7U2FfsDlU0v7aTrlJyKeEA==","signatures":[{"sig":"MEYCIQCMFdU+QxbYfm7npWdcVwhQrT/yG2YcexUDCYZ2kGJvWQIhANFWAv/5L/iLKgDj1Rwt0SFwywWb97YSGx8U2wo6u10I","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13929},"type":"module","engines":{"node":">=18"},"gitHead":"0db8cc07ab10b3dca41eb6cce6436e44ac12492a","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.1-rc.7_1783168854513_0.6512127511445382","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"@hahahhh/sshx","version":"0.0.1","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.1","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"b4481a07fa9e5c98ad1d4c2abe5290323f675a2c","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.1.tgz","fileCount":3,"integrity":"sha512-w8fn6dEgLs6YbUwmOU3A+YB0x3HWcgM9m6COcuPX+EsRjYSKbbhPcgWfyFiTl1W+Y//C+HyZ+bdvQhRHsjQ3QQ==","signatures":[{"sig":"MEUCIQDU2jfrP1GU4v0x2vkEfO+rjfTrduCGVNUzbmmkhbc/fwIgSxt9MwVLHAIdtNsBA2GP+EvDyTRnaUA4YFm+oFGhmAA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13924},"type":"module","engines":{"node":">=18"},"gitHead":"bdbe59dff37260f9d03bd42b1844335eecbcbc8b","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.1_1783169087467_0.542310061093263","host":"s3://npm-registry-packages-npm-production"}},"0.0.2-rc.0":{"name":"@hahahhh/sshx","version":"0.0.2-rc.0","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.2-rc.0","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"9da83da9f0b310ff587189e37af4e8864d9db997","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.2-rc.0.tgz","fileCount":3,"integrity":"sha512-kovsh3ZjUAxxyCWZ9jTR7PmgcjFEXYS/9fZKRrGWHTeQn7s+p0G1pTBpNOsAmT9Bd/PcnIJXfBiJTCH6CZDLeQ==","signatures":[{"sig":"MEYCIQDWPnx/WRsXZgBFZsctcrh3rbgZywdJ+VB3eYNJCf93iAIhAMt/g8qSPICxgbQuX57v3JMDlHDSauX3AAqqoPC7jeww","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13912},"type":"module","engines":{"node":">=18"},"gitHead":"69e220c3edfe9734c7926e07548c68c0571c44f3","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.2-rc.0_1783354138258_0.07881203454218477","host":"s3://npm-registry-packages-npm-production"}},"0.0.2-rc.1":{"name":"@hahahhh/sshx","version":"0.0.2-rc.1","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.2-rc.1","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"ee50d5c98f4dde17520eaacb539273e22c53bb41","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.2-rc.1.tgz","fileCount":3,"integrity":"sha512-c+ktrab+DrdHZkexBiHSdvFsayZk93ZLiz5CKecMJsGYvviCqoJXN0NKTLSGCthtGiZBdBaWz+Zly323irH3Yw==","signatures":[{"sig":"MEUCIQCZVvtI6z52My8xGzdhhSGgZoBfWpqBHJ3OKhOJIoOHIwIgJjni/ojFAUNb6Suwye58JTd0SCjc7cNhqp6nEhj4Fqk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13912},"type":"module","engines":{"node":">=18"},"gitHead":"4375ad49df8531e7570e62b0d93c2bcc2aa7cd57","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.2-rc.1_1783355747905_0.5824153658242062","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@hahahhh/sshx","version":"0.0.2","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.2","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"3f1e37ba33c53acd2531bec1d671783fec6af324","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.2.tgz","fileCount":3,"integrity":"sha512-jkXZP0X9lfM59LACxj3XBPi4IWKw6j/pZNA1qz+VYU2pENN+iv/aVXI2fFixIUgiDWrwQ++dP2RqpI+i21bjTA==","signatures":[{"sig":"MEUCIQCr57rTx0Sm8e2Q8zkbMcNC3AKvuhNFKaJXH96frI0d3wIgZP0W12vEvEPiXorWaXnmUOEnShf+sts1MqfR6dBBgEc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15545},"type":"module","engines":{"node":">=18"},"gitHead":"e10787369c79fdaf7a80b56e0da3263f23b54993","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.2_1783356601341_0.39378999661918357","host":"s3://npm-registry-packages-npm-production"}},"0.0.3-rc.0":{"name":"@hahahhh/sshx","version":"0.0.3-rc.0","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.3-rc.0","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"c29254c611a5bb5af8b2bfcf0cc8c9993c9368a7","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.3-rc.0.tgz","fileCount":3,"integrity":"sha512-HozIjyVcM2Zx+tQod3bc6c+a0B2iHt4Lj4XE9bjddne+Cz5EfmXKLte6+4aFlwpAHQWz2UQDNcuqEW/G7+Rz/g==","signatures":[{"sig":"MEUCIAi9m+OUIpGeNouro1UNDwjlP9KP849a6/48hOYCU+GnAiEA9DZQg1mrJJ119zZvlLgLbCOn/r5W6qhXe7BNOJUGM/A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15444},"type":"module","engines":{"node":">=18"},"gitHead":"72e1dbe33e44959922e8bb3688fcc44c5e1f694e","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.3-rc.0_1783525722048_0.8274415489247486","host":"s3://npm-registry-packages-npm-production"}},"0.0.3-rc.1":{"name":"@hahahhh/sshx","version":"0.0.3-rc.1","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.3-rc.1","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"125d0a37991ad8f16092df6e995e6d7bbbfebb80","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.3-rc.1.tgz","fileCount":3,"integrity":"sha512-6EEFmZbQqH7CPgPWkxTCo858RPmunFGWcaY9gRpXD+E3ZJoWUwTpXH9cwDlAd/prymQfJx/UV9rZu4LUaIOITA==","signatures":[{"sig":"MEYCIQDYZQ+FyZzYeeAxBiE7Fm0afwBH2lFDGg486DfUdspnaQIhAJLtvVmIn2MxbJk/blwITnHZLC2n+b79qjnDy52BHvbD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15725},"type":"module","engines":{"node":">=18"},"gitHead":"19078c5cbb039c748fd3bbbaf61a6aafc0565d92","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.3-rc.1_1783702140942_0.7067706044452724","host":"s3://npm-registry-packages-npm-production"}},"0.0.3-rc.2":{"name":"@hahahhh/sshx","version":"0.0.3-rc.2","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.3-rc.2","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"de9a42fe4d226d9a70867d8ee3a5f70b835aaefa","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.3-rc.2.tgz","fileCount":3,"integrity":"sha512-i3dW1I4WSOgR99RM30qF8ZsC20K3FNkMcJpbtCTQj6hqs+Jct7WgyHDmL4xhNCYxnAHVCWvO8pm4EcIaDSnWDw==","signatures":[{"sig":"MEUCICcWeJeRWdmhkZtaAbtVpuUkjaMvsTS+UbqRSSoPLuRqAiEAoMmf3HEAi74iVRpWE/N3UcykvuswHns0NnprUDEIcaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15725},"type":"module","engines":{"node":">=18"},"gitHead":"609a932a68a11a5041b1eaa2e3ad098383c19274","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.3-rc.2_1783702863011_0.7153989949100155","host":"s3://npm-registry-packages-npm-production"}},"0.0.3-rc.3":{"name":"@hahahhh/sshx","version":"0.0.3-rc.3","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.3-rc.3","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"a05d53962004fea1e44b7031c5f28106eab7e597","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.3-rc.3.tgz","fileCount":3,"integrity":"sha512-l1xvHg+u3KFs2xWLa8Yd6AZwrMcUnE5CTZWqgGuVbu/VH/aERrmtXmfpiLsdilTAmJpjNpqhSjcAtJ6U1wQmwA==","signatures":[{"sig":"MEUCICSBe5kt6rna31N4v4UI3/8FoOHdu4KeF7yppxMoVMLPAiEAo5HY7h2fzjzOrW82yjgSLQcZ4MMlkPxKNcAzx05ajls=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16008},"type":"module","engines":{"node":">=18"},"gitHead":"4d626ba158f722653377fe6bdddaf51c921f4b32","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.3-rc.3_1783704312802_0.031709026367243265","host":"s3://npm-registry-packages-npm-production"}},"0.0.3-rc.4":{"name":"@hahahhh/sshx","version":"0.0.3-rc.4","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.3-rc.4","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"012d12c50e0b91f80dc1ec88b157fe84eac6eaec","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.3-rc.4.tgz","fileCount":3,"integrity":"sha512-GNMhIX5JnSWj9eQUVZAw5Slib6gZvUKhAsjObPRNcDZKugAEMCt6GSRayos2AIi/A76h22vAXyjWmEJ7SIa8Qg==","signatures":[{"sig":"MEQCIEQB8Q0/F+76OMisqqOjT7Vj9/BkQRn+vqqe3oOla19qAiBvhMvk5BeMkySFfA64JeNmnQP3rhA/z6JG4Er3h9B2Pg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16008},"type":"module","engines":{"node":">=18"},"gitHead":"6d6534c4da6b8cfb42b79a931397349a0c8c462c","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.3-rc.4_1783705030464_0.20669158231018758","host":"s3://npm-registry-packages-npm-production"}},"0.0.3-rc.5":{"name":"@hahahhh/sshx","version":"0.0.3-rc.5","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.3-rc.5","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"dca1ea6d67ddeddb6f065dfd993717ccde1db54e","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.3-rc.5.tgz","fileCount":3,"integrity":"sha512-oMl0VjfceCWX7NPkeA0Ja6WdiBVpS/NjviSG/O/ie22OnnCcPSrYU7MHZ/2OBfh7kPqAppTuOtVHZ3khLMbBFA==","signatures":[{"sig":"MEQCIGCQ7/gIbuCqQNnAHB8WNpIR5tMfJ9mv6RmR6cLXuTSuAiBZi2mjygW37R3Ky94dGL+y02liJJOqKXy3Mk4p+pz9uQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16522},"type":"module","engines":{"node":">=18"},"gitHead":"050e8bb8f438f7789fa92e0c5eb8285cff92fd41","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.3-rc.5_1783764241048_0.7245826505733475","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@hahahhh/sshx","version":"0.0.3","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.3","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"130bd564613575ab3703ed1144b5f0d770e21251","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.3.tgz","fileCount":3,"integrity":"sha512-nb+KfflI6b9AMAmga+AusWPoesOUg1gFRPBcveNwc5dyUs9FXsjjEAP8EQPfS2QQb4BseA4z/qx7Sm7Y/dCZbw==","signatures":[{"sig":"MEYCIQDz7Q7FuTwnHJHckuBOVirSJuH5Tz05iBG2n6IhFDuTQgIhAJV4AALOkgG7KNL90t9oZ5ZEXR+tVVC9HG54Qt4pIWn5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16517},"type":"module","engines":{"node":">=18"},"gitHead":"ce6be1c078ddfa40e13b45b1065922ee36fe5ca6","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.3_1783765134332_0.9051316145641468","host":"s3://npm-registry-packages-npm-production"}},"0.0.4-rc.0":{"name":"@hahahhh/sshx","version":"0.0.4-rc.0","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.4-rc.0","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"e52eb10a0a0e3f1779228c4e7132f00cfddf64cb","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.4-rc.0.tgz","fileCount":3,"integrity":"sha512-d+sREs8VzPJwEcACk16PtA26YV1rXhcRbK2hnvZEMlss1uHWpwi7ayX757qlwu7I+R1UB0CdPi4C/cqtRmL1/Q==","signatures":[{"sig":"MEUCIHn6G5rp7X3qbX58JA7NAMclpH3VfDSGIvGgD3wQsSvHAiEA94r7Ubw224/wVC0k/z71l0kHWL4LSqWTtrqjCrW9XyY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18652},"type":"module","engines":{"node":">=18"},"gitHead":"5a508aab180565f0d70cfd3af3e0eff2b2ddebf1","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.4-rc.0_1783851916116_0.11286431543096498","host":"s3://npm-registry-packages-npm-production"}},"0.0.4-rc.1":{"name":"@hahahhh/sshx","version":"0.0.4-rc.1","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.4-rc.1","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"b1bc428511bd632f58c8efd3b4264b11c26c2967","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.4-rc.1.tgz","fileCount":3,"integrity":"sha512-ehRkseyJi5xiHgZrogh5Ve51uu31qId1N9Eg0X654LxewB97fodqB/jWFo1jjTeKmevOr0dW6OsObyYh74pyNg==","signatures":[{"sig":"MEYCIQDvQ9GjOdK/qJIi0jcBg1DDCtsIc6RSg60orfqE7cPzSwIhANpvJflUTBfRPUfscE2VjYTak/7CzsVtUMAfr1KK2k6y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21355},"type":"module","engines":{"node":">=18"},"gitHead":"64b6c2621a5a08db160598f20435e38e7c849b3e","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.4-rc.1_1783855607988_0.24772272550507823","host":"s3://npm-registry-packages-npm-production"}},"0.0.4-rc.3":{"name":"@hahahhh/sshx","version":"0.0.4-rc.3","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.4-rc.3","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"93ff02da601e0bbcdccc872c20b00b0b187c14a0","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.4-rc.3.tgz","fileCount":3,"integrity":"sha512-uGrAKQh8y3IQFg4zxf4M65Tk3Hv9WVv0Rl0mpd9urxsD0RRY0OZQ6dxUvbsjnZ222KxEcCbcn7tc3NHeEDS/Sw==","signatures":[{"sig":"MEQCIFb+KyYhutgjnO3pZBLOcbQEktUKHkhoA5rrBbtJpI1IAiBJompKhUBkWl7x13J5aSI6K44VmkWE/bmNNBlNVkyLpA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22391},"type":"module","engines":{"node":">=18"},"gitHead":"381994da0df6a182d5411487adbd16463c138073","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.4-rc.3_1784043406631_0.8872049548808136","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@hahahhh/sshx","version":"0.0.4","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.4","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"b6b9777a0f62556da65ed3d2848930ea14daa80c","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.4.tgz","fileCount":3,"integrity":"sha512-V8SF90hPwhL3wB8VtNfW4SC0Saipq8y6PA7W3GLYq7Jqvr5CX9uLyi5WpIVtQyikRlGSWe7pA4BY9jVP/bCc5w==","signatures":[{"sig":"MEUCIQDlYNel6UTc80qYd370XQ50z2kyea7PYjocVERYNAi/qwIgB6IypNlDXEjVHZ88OHWb6oygSi8FD1z+h1dLjtR4rfI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22386},"type":"module","engines":{"node":">=18"},"gitHead":"759888f3bd00dd0131b262bf2d5ae723e2d62dcf","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.4_1784044050410_0.6669098384896677","host":"s3://npm-registry-packages-npm-production"}},"0.0.5-rc.0":{"name":"@hahahhh/sshx","version":"0.0.5-rc.0","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.5-rc.0","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"fa937781ddcd71c03670ed3d0729cd67fc643923","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.5-rc.0.tgz","fileCount":3,"integrity":"sha512-hUFOjhbaTw2v7y4rux5OpjGB+pNPGHGZeJMBQNs40AW5ma8jASNL/XY/GAq5Y6s4dHGe5fUAj3jiIdbo2jHLhg==","signatures":[{"sig":"MEQCIEKz2oFZ8epdThEJWRgG4oo+vWF67PjubHE7yvawlZe+AiAwp/R5NvWB27Lf+If6+ys58+sl6R6q+lPCKAVOOTgtVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22391},"type":"module","engines":{"node":">=18"},"gitHead":"a62656a0f80697176f04c0db806597d83afd9309","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.5-rc.0_1784045122177_0.8995096046508833","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@hahahhh/sshx","version":"0.0.5","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.5","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"b64c3b26442acf3ec5dfce75e922c46ef02ca95f","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.5.tgz","fileCount":3,"integrity":"sha512-t4i9MtBdwG5i5FJbZ4jeRm5c3LtTg5SryrAfOwkXd3TbTO5Urkri3siz73nSS+JK6JU1AFJ8TTl9F9BGUwG32w==","signatures":[{"sig":"MEUCIQCWJOIWFigoXjzti7ve1Y3CsUT/AzNqp31CBnMfbTpcOQIgTwaYTGgaPZF4CIZxMsfigqCp+Q6fbgcmoV9iGqZaQWM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22386},"type":"module","engines":{"node":">=18"},"gitHead":"ea8e4932a4f1fb9866ba995052ebf7597855dba6","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.5_1784045966537_0.736424693852026","host":"s3://npm-registry-packages-npm-production"}},"0.0.6-rc.0":{"name":"@hahahhh/sshx","version":"0.0.6-rc.0","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.6-rc.0","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"3ae6c2bf3813755560cefd76d747a76c4031f95d","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.6-rc.0.tgz","fileCount":3,"integrity":"sha512-ob+I3eBPirKDOJr3fdjGeBnstIS1p6qW33/yMbmdGHGnK3eCnbPYMX/Rcibm6s4t8bhu7ysAvhsKa1IA4kkSVA==","signatures":[{"sig":"MEQCIDYtFJ00RA5gx25pAQVW/74NuWXSQy/WtM7BeCKFCv5+AiA9HMNkG/wuHWx1a80lrD2rFLbT9LZLaLjz2KPaSyD//g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23632},"type":"module","engines":{"node":">=18"},"gitHead":"5dad4513dc02c1679323ed9f1e322239b36beeab","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.6-rc.0_1784357854731_0.30527930123133884","host":"s3://npm-registry-packages-npm-production"}},"0.0.6-rc.1":{"name":"@hahahhh/sshx","version":"0.0.6-rc.1","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.6-rc.1","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"e30e55ee435567f016bdf9157bb6b34fea4b4ec6","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.6-rc.1.tgz","fileCount":3,"integrity":"sha512-IhMnq2Iv3bg+HfUgO3dGSlPerwLLfhYdJ3+yZdPStQ+9d7GttWYPUtS49k1b2jHm/Y+6ivgKsGmqRAt/ZyoovQ==","signatures":[{"sig":"MEYCIQC8V6x5Kd38IaXkSYaxYqVmJtEoP8YEaEzaJGAUZ46i2gIhANWkeO6ugEQ0ABIur8mb5L3loVyEQrHF3z9BPTAjQyGo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23788},"type":"module","engines":{"node":">=18"},"gitHead":"0188bfae4ebae475243f8310df24c4554d8613ff","scripts":{"test":"go test ./...","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.6-rc.1_1784365980787_0.8089892343929721","host":"s3://npm-registry-packages-npm-production"}},"0.0.6-rc.3":{"name":"@hahahhh/sshx","version":"0.0.6-rc.3","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.6-rc.3","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"b739bc5092c1d7c04b3b76d70e7943e17a635a50","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.6-rc.3.tgz","fileCount":3,"integrity":"sha512-gIhWiWm/8brKOwMQZmEhwHL7Wslu59grswLVrUAU4cjAZhtzbxo/NtGkJVgM+b6GkmKEnvWpX6+09191/keRhQ==","signatures":[{"sig":"MEUCIQD6dvl5ChDQ7mvW4qxAJVBwxjo9cggRYNslzCmszVZkwQIgYxkknN6nrUblS/RFFuAVhSoTUuWVmdHCmK1Mf/hvpiw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27515},"type":"module","engines":{"node":">=18"},"gitHead":"7c55a89ee00f372a9d2db641769b1cecb5b63a18","scripts":{"test":"go test ./... && node --test test/*.test.js","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","postinstall":"node ./bin/sshx.js --npm-refresh-integrations","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.6-rc.3_1784369416037_0.8666926038103326","host":"s3://npm-registry-packages-npm-production"}},"0.0.6-rc.4":{"name":"@hahahhh/sshx","version":"0.0.6-rc.4","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.6-rc.4","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"232680aab0b9302f50e88761128db8696406527c","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.6-rc.4.tgz","fileCount":3,"integrity":"sha512-1eK71qPpPNf+8zMzGPNUDi/F/FHGyYLPUp+qMYhAjYL31VePlCC7ykU/cp6YsHtePllPk1JwKeo5w2D8EeD8Jw==","signatures":[{"sig":"MEYCIQDtvH0XUy/a6+12XU6k+yT5ilHDG0wA6d/0onldaihv8gIhAMtTQL0KHvHCLEQqn5UNjnpJ/v8cVv1EyoQzO9dEvoRr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27669},"type":"module","engines":{"node":">=18"},"gitHead":"9a87ed6e5eabf66bc2bffd6d9ae5007198fa5b3b","scripts":{"test":"go test ./... && node --test test/*.test.js","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","postinstall":"node ./bin/sshx.js --npm-refresh-integrations","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.6-rc.4_1784373129682_0.5240661348017122","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@hahahhh/sshx","version":"0.0.6","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.6","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"f355b28c7e71d459343d33cf73b10bea07b9a28d","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.6.tgz","fileCount":3,"integrity":"sha512-8t2F3RPnqsM/RGQhuXOC2TYI9ptikA3862AsHxIJ58DduCRRlHMWQsz0jRq0qcAfqTZlJJgR5P6kafS5+p72nQ==","signatures":[{"sig":"MEUCIFsnk4slruaq3h5vtAeduhjjjZay70LCyWoQ0inKHDp3AiEA6QSPQSMGINs4mZvxqkz9n+7BFia1elssZAqrLfdDOB4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27664},"type":"module","engines":{"node":">=18"},"gitHead":"7d44a8a3aa295bc24c383d252b74bd021cb3a449","scripts":{"test":"go test ./... && node --test test/*.test.js","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","publish:rc":"npm publish --access public --tag next","postinstall":"node ./bin/sshx.js --npm-refresh-integrations","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.6_1784373747750_0.03689815781222383","host":"s3://npm-registry-packages-npm-production"}},"0.0.7-rc.0":{"name":"@hahahhh/sshx","version":"0.0.7-rc.0","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.7-rc.0","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"30ca22ccbb29f6c14fc87e20056e0f78f73d4885","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.7-rc.0.tgz","fileCount":3,"integrity":"sha512-pIjoBinIiIdi+fmUswJgMPRrbo0lDMfua5kQYJPN1RX/Z5F3oZfbJEw76A9fIKx48zsoypYT959QU8veBBKnfQ==","signatures":[{"sig":"MEUCIA3dCZ5J/pfMpxbfzbxQICJ5jGvkcx6LKO+pZ3FgEiZNAiEAgy8QySgjtTosu2ohT4gdaVz1MMhTiMdq60+cLs/i+LE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30552},"type":"module","engines":{"node":">=18"},"gitHead":"189ee830d7b5e38a5afa853989d11921e1eb1a17","scripts":{"site":"npm --prefix docs install --no-audit --no-fund && npm --prefix docs run site","test":"go test ./... && node --test test/*.test.js","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","site:dev":"npm --prefix docs install --no-audit --no-fund && npm --prefix docs run dev","publish:rc":"npm publish --access public --tag next","postinstall":"node ./bin/sshx.js --npm-refresh-integrations","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","site:preview":"npm --prefix docs run preview","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.15.0","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.7-rc.0_1785423509307_0.7711597830359043","host":"s3://npm-registry-packages-npm-production"}},"0.0.7-rc.1":{"name":"@hahahhh/sshx","version":"0.0.7-rc.1","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.7-rc.1","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"4a7b71382385accbb897f9b0b3743016203b73d8","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.7-rc.1.tgz","fileCount":3,"integrity":"sha512-BlINpQ4+FbK48II6bjnpz+xtZ6wX4bMTljiOOHmUW3VFXyvFD2BPH1uBtSuyDkrMz6YYxDjNTpnlZlCFzzXi1w==","signatures":[{"sig":"MEYCIQCfIlBl6ZSmFgd3EhwORCxhVh5FfX/aqNjqRPTg6X4HMQIhAOzLaKdF6omgdXjWNkaimJ7qmrMyImnFHQ+yCfztU+Xo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30094},"type":"module","engines":{"node":">=18"},"gitHead":"2b55ef780dffe9d6c8a421ecbe9ef5b2f2f0b8e1","scripts":{"site":"npm --prefix docs install --no-audit --no-fund && npm --prefix docs run site","test":"go test ./... && node --test test/*.test.js","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","site:dev":"npm --prefix docs install --no-audit --no-fund && npm --prefix docs run dev","publish:rc":"npm publish --access public --tag next","postinstall":"node ./bin/sshx.js --npm-refresh-integrations","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","site:preview":"npm --prefix docs run preview","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.19.1","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.7-rc.1_1789312200765_0.3453006841995514","host":"s3://npm-registry-packages-npm-production"}},"0.0.7-rc.2":{"name":"@hahahhh/sshx","version":"0.0.7-rc.2","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.7-rc.2","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"12c0830a934ce8fbfe8c00576b6bf586c59cc039","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.7-rc.2.tgz","fileCount":3,"integrity":"sha512-W5lHvn0+r6m27kEdB/8EqlpPLmDYk8RWeZ0jptN6o4NNYXVF4yUBZnQyWte+2arYOIR6bwJxnQ66b+yTZAmGBQ==","signatures":[{"sig":"MEUCIQDazpBH/6Cjikw6MCfRLsj7bdqSBfgFcZuH0EZ71EjoeQIgE9nDiUjKaPMWh8LYuezurVBtuLVvSwlML7FXMSKSSV0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30094},"type":"module","engines":{"node":">=18"},"gitHead":"4d6b2c08a6c8918428bbe72842b5c79b8ebebb21","scripts":{"site":"npm --prefix docs install --no-audit --no-fund && npm --prefix docs run site","test":"go test ./... && node --test test/*.test.js","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","site:dev":"npm --prefix docs install --no-audit --no-fund && npm --prefix docs run dev","publish:rc":"npm publish --access public --tag next","postinstall":"node ./bin/sshx.js --npm-refresh-integrations","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","site:preview":"npm --prefix docs run preview","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.19.1","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.7-rc.2_1789314866601_0.24135885462537376","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@hahahhh/sshx","version":"0.0.7","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.7","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"44e0313c2ac0818c149c188749768e64b3a8166d","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.7.tgz","fileCount":3,"integrity":"sha512-jWcGLDEYBAOSXv/rdFKyIvtOaWexrVWCPsnH9Po4pGtcZW+OXgRWcW1SCAyi6TiG+OIks9+Q0vAbCvVEpW5xOQ==","signatures":[{"sig":"MEYCIQCWeQ6BwbQ9EE3+F2QKkIva8SHIYkAYdkZJtmCNBufE2wIhAKtVuZ3nUmt51/q/VS6RfCIq4NEZSaUH76dc78uv9vmv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30089},"type":"module","engines":{"node":">=18"},"gitHead":"9bdccec0dcce45a15bf7d1fc74eee83feee87f13","scripts":{"site":"npm --prefix docs install --no-audit --no-fund && npm --prefix docs run site","test":"go test ./... && node --test test/*.test.js","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","site:dev":"npm --prefix docs install --no-audit --no-fund && npm --prefix docs run dev","publish:rc":"npm publish --access public --tag next","postinstall":"node ./bin/sshx.js --npm-refresh-integrations","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","site:preview":"npm --prefix docs run preview","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.19.1","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.7_1789549513115_0.3612948936341589","host":"s3://npm-registry-packages-npm-production"}},"0.0.8-rc.0":{"name":"@hahahhh/sshx","version":"0.0.8-rc.0","keywords":["ssh","sshx","openssh","cli"],"_id":"@hahahhh/sshx@0.0.8-rc.0","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"homepage":"https://github.com/xiaot623/sshx#readme","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"bin":{"sshx":"bin/sshx.js"},"dist":{"shasum":"e12c59e55b8f5fee00ab4de586e25aad830d8e4f","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.8-rc.0.tgz","fileCount":3,"integrity":"sha512-NOdfXBWDUa8nhub9tt0MjtHqqSS7hBg3KsIluaXGKfOk7wWpmAzhDo5GEBcE7er3unk52HASFYAMDDWFklwq8g==","signatures":[{"sig":"MEYCIQD1krS9dnfxQzBPvArT7dq5zWTdsj71VL7g2BAhrFGFoQIhAOE1eA1tTri7YEyflBP0mIciWezKHsBynb+1lAAEqTmB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30094},"type":"module","engines":{"node":">=18"},"gitHead":"dec1a89f2dc66037840b6bf7a6024b557bfdf5a0","scripts":{"site":"npm --prefix docs install --no-audit --no-fund && npm --prefix docs run site","test":"go test ./... && node --test test/*.test.js","build":"node scripts/build-native.js","check":"go vet ./...","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","site:dev":"npm --prefix docs install --no-audit --no-fund && npm --prefix docs run dev","publish:rc":"npm publish --access public --tag next","postinstall":"node ./bin/sshx.js --npm-refresh-integrations","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","site:preview":"npm --prefix docs run preview","release:major":"node scripts/release.js major","release:minor":"node scripts/release.js minor","release:patch":"node scripts/release.js patch","publish:release":"npm publish --access public --tag latest"},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"repository":{"url":"git+https://github.com/xiaot623/sshx.git","type":"git"},"_npmVersion":"11.19.1","description":"Transparent SSH enhancement wrapper for OpenSSH","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/sshx_0.0.8-rc.0_1789561906820_0.990209575994115","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@hahahhh/sshx","version":"0.0.8","type":"module","description":"Transparent SSH enhancement wrapper for OpenSSH","repository":{"type":"git","url":"git+https://github.com/xiaot623/sshx.git"},"keywords":["ssh","sshx","openssh","cli"],"bin":{"sshx":"bin/sshx.js"},"scripts":{"build":"node scripts/build-native.js","build:go":"go build -trimpath -ldflags \"-X github.com/xiaot623/sshx/internal/version.Version=${npm_package_version}\" -o sshx ./cmd/sshx","site":"npm --prefix docs install --no-audit --no-fund && npm --prefix docs run site","site:dev":"npm --prefix docs install --no-audit --no-fund && npm --prefix docs run dev","site:preview":"npm --prefix docs run preview","check":"go vet ./...","test":"go test ./... && node --test test/*.test.js","postinstall":"node ./bin/sshx.js --npm-refresh-integrations","pre_release":"npm version prerelease --preid=rc -m \"chore: pre-release v%s\" && git push origin HEAD --follow-tags","publish:rc":"npm publish --access public --tag next","publish:release":"npm publish --access public --tag latest","release:patch":"node scripts/release.js patch","release:minor":"node scripts/release.js minor","release:major":"node scripts/release.js major"},"engines":{"node":">=18"},"gitHead":"96abd693964b7cb94527374e7dee8884f769ec2e","_id":"@hahahhh/sshx@0.0.8","bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"homepage":"https://github.com/xiaot623/sshx#readme","_nodeVersion":"22.21.1","_npmVersion":"11.19.1","dist":{"integrity":"sha512-QqJPIdPMv9b91c13alggE+BaZiyD2Y6QJ5F959ErMDb5RtphffcRvajNz6hcsZu0DoYdRv7MDznz4zkHkMadTA==","shasum":"42a9b8bc421d643b16ea365dd2eaab2db5a68baf","tarball":"https://registry.npmjs.org/@hahahhh/sshx/-/sshx-0.0.8.tgz","fileCount":3,"unpackedSize":30089,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAui95tG6SYxdYssnkGIxQ84UkfYoyoSp/UpfSeiKt56AiEAtPLve0owusGboyqiapRPmXSxDQFTh66djtJSru4VPIw="}]},"_npmUser":{"name":"hahahhh","email":"stkyar23@gmail.com"},"directories":{},"maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sshx_0.0.8_1789564136345_0.9168585034034893"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-04T10:49:24.472Z","modified":"2026-09-16T13:08:56.639Z","0.0.1-rc.2":"2026-07-04T10:49:24.771Z","0.0.1-rc.3":"2026-07-04T11:02:59.596Z","0.0.1-rc.4":"2026-07-04T11:53:48.677Z","0.0.1-rc.5":"2026-07-04T12:07:00.387Z","0.0.1-rc.6":"2026-07-04T12:19:00.075Z","0.0.1-rc.7":"2026-07-04T12:40:54.654Z","0.0.1":"2026-07-04T12:44:47.602Z","0.0.2-rc.0":"2026-07-06T16:08:58.400Z","0.0.2-rc.1":"2026-07-06T16:35:48.037Z","0.0.2":"2026-07-06T16:50:01.505Z","0.0.3-rc.0":"2026-07-08T15:48:42.181Z","0.0.3-rc.1":"2026-07-10T16:49:01.087Z","0.0.3-rc.2":"2026-07-10T17:01:03.166Z","0.0.3-rc.3":"2026-07-10T17:25:12.957Z","0.0.3-rc.4":"2026-07-10T17:37:10.606Z","0.0.3-rc.5":"2026-07-11T10:04:01.191Z","0.0.3":"2026-07-11T10:18:54.463Z","0.0.4-rc.0":"2026-07-12T10:25:16.250Z","0.0.4-rc.1":"2026-07-12T11:26:48.124Z","0.0.4-rc.3":"2026-07-14T15:36:46.758Z","0.0.4":"2026-07-14T15:47:30.570Z","0.0.5-rc.0":"2026-07-14T16:05:22.307Z","0.0.5":"2026-07-14T16:19:26.689Z","0.0.6-rc.0":"2026-07-18T06:57:34.875Z","0.0.6-rc.1":"2026-07-18T09:13:00.904Z","0.0.6-rc.3":"2026-07-18T10:10:16.182Z","0.0.6-rc.4":"2026-07-18T11:12:09.826Z","0.0.6":"2026-07-18T11:22:27.894Z","0.0.7-rc.0":"2026-07-30T14:58:29.485Z","0.0.7-rc.1":"2026-09-13T15:10:00.883Z","0.0.7-rc.2":"2026-09-13T15:54:26.728Z","0.0.7":"2026-09-16T09:05:13.238Z","0.0.8-rc.0":"2026-09-16T12:31:46.954Z","0.0.8":"2026-09-16T13:08:56.476Z"},"bugs":{"url":"https://github.com/xiaot623/sshx/issues"},"homepage":"https://github.com/xiaot623/sshx#readme","keywords":["ssh","sshx","openssh","cli"],"repository":{"type":"git","url":"git+https://github.com/xiaot623/sshx.git"},"description":"Transparent SSH enhancement wrapper for OpenSSH","maintainers":[{"name":"hahahhh","email":"stkyar23@gmail.com"}],"readme":"# sshx\n\n**English** · [简体中文](README_zh.md) · [Website](https://xiaot623.github.io/sshx/)\n\n> Transparent SSH enhancement — add remote-to-local commands, auto port forwarding, and local domains to your SSH workflow. Zero side effects when you don't need them.\n\n**sshx** is a drop-in wrapper around OpenSSH. Wrap it as `alias ssh=sshx` and your existing SSH workflow works exactly as before — every flag, config, and connection passes through verbatim. But when you connect to a host (or Docker container) with sshx-aware features enabled, you unlock a connection-scoped shared remote server that gives you:\n\n![sshx animated terminal demo](docs/assets/sshx-demo.svg)\n\n- 🔄 **Reverse command bridge** — run `sshx local <cmd>` *on the remote* to execute commands on your local machine, with stdout, stderr, exit code, and stdin all propagated.\n- 📁 **Bidirectional workspace mount** — direct CLI sessions can use remote tools on local files, and local tools on remote files.\n- 🔌 **Automatic port forwarding** — remote local listeners (loopback `127.0.0.1` and wildcard `0.0.0.0`; e.g., a dev server on `0.0.0.0:8080` or `localhost:8080`) are automatically detected and forwarded to your local machine.\n- 🌐 **Local domain binding** — access forwarded ports as `<host>.<your-user>.sshx:<port>` in your local browser, no manual `-L` flags needed.\n- 🛡️ **Remote egress proxy** — opt in to route proxy-aware remote tools through the local client's proxy or TUN-backed network stack.\n- 🐳 **Docker container support** — target running containers by name or ID: `sshx my-container`. Command bridge support works inside containers via `docker exec`.\n\n## Table of Contents\n\n- [Why sshx?](#why-sshx)\n- [Architecture](#architecture)\n- [Features](#features)\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [Configuration Reference](#configuration-reference)\n- [How It Works](#how-it-works)\n- [Safety & Bypass](#safety--bypass)\n- [Platform Support](#platform-support)\n- [Project Structure](#project-structure)\n- [Roadmap](#roadmap)\n- [License](#license)\n\n## Why sshx?\n\n| Without sshx | With sshx |\n|---|---|\n| `ssh remote` — works normally | `ssh remote` — works normally, *plus* server starts in background |\n| Need to copy a file *from* local to remote mid-session | `sshx local cat ~/file.txt` — runs on local, output streams to remote |\n| Dev server on `localhost:3000` inaccessible | Open `http://debian.<your-user>.sshx:3000` in your local browser after `sshx debian` |\n| Multiple terminals each need their own `-L` forwards | One shared daemon, one forward, all terminals benefit |\n| Forget to set up forwarding before connecting | Ports detected and forwarded automatically |\n\nsshx is designed to be **safe to alias**. Hosts without sshx configuration are untouched — no daemon starts, no files are created, no performance overhead.\n\n---\n\n## Architecture\n\n![sshx system architecture](docs/assets/architecture.svg)\n\nEach user-visible session remains a normal OpenSSH connection (or a `docker exec` session for container targets). One hidden multiplexed sidecar channel carries control and optional RemoteFS traffic to a shared target-side server, while one on-demand local daemon owns DNS records and TCP forwards across active client terminals. Automatic port forwarding uses SSH `direct-tcpip`; Docker targets support shells and the command bridge but do not use automatic port scanning.\n\n---\n\n## Features\n\n### 📦 Drop-in Compatibility\n\n- `sshx [any ssh args...]` delegates to the real OpenSSH.\n- All SSH flags pass through: `-F`, `-o`, `-J`, `-L`, `-R`, `-D`, `-N`, `-T`, `-V`, `-G`, `-Q`, etc.\n- `~/.ssh/config` resolution is handled by OpenSSH — no reimplementation.\n- Bypass with `sshx --no-wrap` or `SSHX_DISABLE=1` at any time.\n\n### 🐳 Docker Container Target\n\nWhen the target doesn't match any SSH host, sshx falls back to resolving it as a running Docker container:\n\n- `sshx <container-name>` — opens a shell in the container via `docker exec`.\n- `sshx <container-id-prefix>` — matches by container ID prefix.\n- Explicit SSH targets (`user@host`, IP addresses, hostnames with dots/colons) are never treated as Docker containers.\n- Command bridge support works inside containers.\n- Requires `docker` CLI available on the local machine — gracefully falls back to SSH if Docker isn't found or the container isn't running.\n\n### 🔄 Remote-to-Local Command Bridge\n\nRun commands on your **local machine** from inside an SSH session:\n\n```sh\n# On the remote, inside an sshx-wrapped session:\nsshx local cat ~/my-local-file.txt\nsshx local open -a \"Google Chrome\" \"http://localhost:3000\"\nsshx local pbcopy < /tmp/some-data\nsshx local --timeout=30 npm test\n```\n\n- stdout, stderr, and exit codes propagate correctly.\n- stdin is sent in batch mode — pipe data in and it reaches the local command.\n- Commands have no implicit deadline. Put `--timeout=<duration>` immediately after the target to opt in; bare numbers mean seconds, and values such as `500ms`, `30s`, and `2m` are accepted. Timed-out commands exit with status 124.\n- Policy: a configurable deny list controls which commands are blocked.\n\n### 📁 Bidirectional Workspace Mount (opt-in, beta)\n\nSet `features.remoteFs: true` to expose the command initiator's workspace through a read-write FUSE mount:\n\n- A direct `sshx remote <cmd>` exports the local home (or the current directory when outside the home), mounts it on the remote Linux target, and starts the remote command in the mapped local working directory.\n- A direct interactive `sshx remote` shell still starts in the remote home; `SSHX_MOUNT_ROOT` and `SSHX_WORKSPACE` point to the mounted local source tree.\n- The remote home is exported lazily on the first local command. A working directory outside the remote home creates a separate lazy export for that root.\n- The local command starts at the corresponding mounted working directory. Absolute command arguments are not rewritten.\n- Mounts are reused for the sidecar session, so detached tools such as `open` and `code` can continue reading files after the bridge request returns.\n- VS Code/Cursor Remote-SSH integration sidecars stay remote-to-local only: those application sessions do not export a local workspace to the remote host.\n- With RemoteFS disabled, the command runs from the local home and receives `SSHX_REMOTE_CWD` plus `SSHX_REMOTE_FS=0`.\n\nMounted trees permit reads, writes, and creation. Deletion (unlink/rmdir) is blocked; same-directory rename is allowed so editors can atomic-save; cross-directory rename remains blocked. They can include sensitive files such as shell configuration and SSH credentials, so enable `remoteFs` only for targets you trust.\n\nSet `FS_READ_ONLY=1` on the client when starting sshx to make the session mounts read-only:\n\n```sh\nFS_READ_ONLY=1 sshx debian@orb pwd\n```\n\nThe value is exported into the remote session, and later `sshx local <cmd>` mounts remain read-only.\n\nFUSE is required on the machine receiving a mounted tree. Direct `sshx remote` sessions therefore require FUSE on the remote Linux target; `sshx local` with RemoteFS requires FUSE on the local client. A mount failure fails the invocation instead of running it from the wrong directory.\n\n#### FUSE setup\n\nEach machine that receives a mounted view needs a working FUSE runtime. The remote Linux target needs FUSE for direct local-to-remote workspace mounts; a macOS client needs macFUSE for remote-to-local mounts.\n\n**Linux client/target**\n\nInstall the FUSE 3 userspace tools (the kernel normally already includes the FUSE driver):\n\n```sh\n# Debian / Ubuntu\nsudo apt-get update && sudo apt-get install -y fuse3\n\n# Fedora / RHEL-family\nsudo dnf install -y fuse3\n\n# Arch Linux\nsudo pacman -S fuse3\n```\n\nVerify both the device and unmount helper:\n\n```sh\ntest -r /dev/fuse && test -w /dev/fuse\ncommand -v fusermount3 || command -v fusermount\n```\n\nIf `/dev/fuse` is missing on a normal Linux host, load the kernel module with `sudo modprobe fuse`. Containers and restricted VMs must also expose `/dev/fuse` and permit FUSE mounts; installing `fuse3` alone is not sufficient. Docker targets are not supported by `remoteFs` yet.\n\n**macOS client (current sshx backend)**\n\nInstall the latest macFUSE release from [macfuse.io](https://macfuse.io/) (recommended by the macFUSE project) or with `brew install --cask macfuse`. The current sshx implementation uses macFUSE's kernel/VFS backend.\n\nOn Apple Silicon, first-time kernel-backend setup requires:\n\n1. Shut down, then hold the power/Touch ID button to enter macOS Recovery.\n2. Open Startup Security Utility, select the system volume, and choose **Reduced Security**.\n3. Enable **Allow user management of kernel extensions from identified developers**, then restart.\n4. In **System Settings → Privacy & Security**, allow the macFUSE system software when prompted, then restart again.\n\nIntel Macs do not need the Startup Security Utility change, but may still require approving macFUSE in Privacy & Security and restarting. macFUSE does not require disabling SIP or Gatekeeper.\n\nAfter approval, trigger a mount once and verify that macFUSE loaded:\n\n```sh\nls /Library/Filesystems/macfuse.fs\nls /dev/macfuse*\n```\n\n**macOS 15.4+ FSKit note:** macFUSE 5 provides a userspace FSKit backend that does not require a kernel extension, Recovery-mode security changes, or a restart. It is not transparent to the current sshx mount implementation and is not enabled yet: macFUSE requires the explicit `-o backend=fskit` option, FSKit only supports mount points below `/Volumes`, and several traditional mount options are unavailable. sshx currently creates private mounts below the runtime temporary directory and supplies VFS-oriented options. Supporting FSKit therefore requires a dedicated mount-path/options adapter, although the RemoteFS wire protocol and file-operation backend can remain unchanged.\n\nAbsolute source paths are preserved as a hierarchy below sshx's private session directory, but absolute command arguments are not rewritten. RemoteFS does not expose special files/xattrs/ACLs or support Docker targets, FUSE-T, or FSKit. It is optimized for source trees and small files rather than large-file throughput.\n\n### 🛡️ Remote Egress Proxy (opt-in)\n\nSet `features.proxy: true` or run with `SSHX_USE_PROXY=1` to give the remote session an OpenSSH remote dynamic SOCKS endpoint. Traffic exits the laptop:\n\n```sh\nSSHX_USE_PROXY=1 sshx remote\n```\n\nsshx asks the existing ControlMaster to allocate a remote SOCKS listener with `ssh -O forward -R 127.0.0.1:0` (no local destination). OpenSSH then acts as a SOCKS server on the remote, and connections leave through the client. sshx overrides uppercase and lowercase `HTTP_PROXY`, `HTTPS_PROXY`, and `ALL_PROXY` inside the remote session to `socks5h://127.0.0.1:<port>` so curl, Git, and other tools that only look at `HTTP_PROXY` still work. Existing `NO_PROXY` values are preserved and extended with remote loopback addresses.\n\nThere is no custom local HTTP/SOCKS process, no per-session credentials, and no `SSHX_PROXY_URL` chain-through. DNS names sent through `socks5h://` are resolved on the laptop. A local TUN proxy naturally captures that laptop egress.\n\nThe remote listener is bound only to `127.0.0.1` and uses a dynamically allocated port.\n\nThis feature covers TCP applications that honor proxy environment variables, including tools such as curl, Git, and many package managers. It does not provide a remote TUN device, UDP/ICMP forwarding, PAC/system-GUI proxy discovery, or Docker target support.\n\n### 🔌 Automatic Port Detection & Forwarding\n\nWhen a process on the remote starts listening on `127.0.0.1` or `0.0.0.0` (e.g., `npm run dev` on port 3000), sshx detects it and:\n\n1. Broadcasts the port to the local daemon.\n2. Assigns the SSH target its own loopback IP.\n3. Exposes a TCP proxy at the target domain, e.g. `debian.<your-user>.sshx:3000`.\n\nThe URL port is the remote port. sshx does not bind `127.0.0.1:<port>`; it binds the target's private loopback IP instead, so `debian.<your-user>.sshx:8080` and `ubuntu.<your-user>.sshx:8080` can point at different hosts at the same time. Run `sshx forward` to see the active mappings.\n\n### 🌐 Local Domains (macOS, Linux)\n\n- A local DNS responder on `127.0.0.1:53` resolves active target names dynamically.\n- Each target domain resolves to a private loopback IP; the URL port selects the remote listener.\n- On macOS, `/etc/resolver/<suffix>` is configured once (with `sudo` when needed).\n- All terminals on the same host share one DNS resolver and forwarding daemon.\n\n### 🏗️ Shared Server Architecture\n\n- Compatible runtime daemons live under `~/.sshx_server/runtimes/<RuntimeHomeID>` and serve multiple application contexts and sessions. `RuntimeHomeID` is a stable digest of `TargetID` and `RuntimeID`, keeping Unix socket paths safely below platform limits.\n- Client connects through one hidden multiplexed sidecar SSH channel.\n- Server manages port sniffing, forwarding state, and command bridge routing centrally.\n- Clients renew local and remote leases every 5 seconds. A daemon expires a client after 15 seconds without a heartbeat.\n- The on-demand local daemon and remote server keep a 10-second handoff window after their last lease, then exit.\n- AppVersion is diagnostic only. Compatible clients coexist; incompatible RuntimeIDs use separate directories and daemons.\n- `ClientInstallID` is stable across upgrades; `TargetID` identifies normalized OpenSSH destinations, `ContextID` identifies stable application contexts, and every live sidecar gets a fresh `SessionID`.\n\n---\n\n## Installation\n\n### Run with npx (Recommended)\n\nNo installation required — npx fetches the latest binary on each run:\n\n```sh\nnpx @hahahhh/sshx my-server\nnpx @hahahhh/sshx -p 2222 user@my-server hostname\n```\n\nFor repeated use, install globally:\n\n```sh\nnpm install -g @hahahhh/sshx\n```\n\nThe npm wrapper auto-downloads the correct native binary for your platform from GitHub Releases.\n\n### VS Code / Cursor Remote SSH\n\nInstall the CLI normally, then run the single integration command for each application you use:\n\n```sh\nsshx integrate install vscode\nsshx integrate install cursor\n```\n\nThis integration is highly experimental. The command displays a warning and asks for interactive `y/n` confirmation; pass `-y` to confirm non-interactively. It locates OpenSSH, installs paired `ssh`/`scp` shims backed by the same sshx binary, patches JSONC `remote.SSH.path`, and verifies the complete invocation chain. It is idempotent and rolls back settings and shims on failure; run it again to repair the integration after moving the sshx executable. npm-managed integrations record a management marker and are refreshed automatically by later `npm install` or `npm update` operations, so the install command does not need to be rerun manually. No restart, integration-specific configuration, or extra binary is required.\n\nRemote-SSH remains the user-visible OpenSSH connection. Every real SSH session through an integration shim receives the same application context wrapper, while information probes remain exact passthrough. The wrapper exports a stable `SSHX_CONTEXT_ID` and context-launcher path before executing the original remote command; stdin is never inspected or buffered. Each live session owns a sidecar, and temporary ControlMaster sockets let concurrent SSH and scp calls reuse authentication without a resident integration daemon.\n\n### Download Binary\n\nDownload the prebuilt binary directly from [GitHub Releases](https://github.com/xiaot623/sshx/releases):\n\n```sh\n# Example: macOS arm64, latest release\ncurl -L -o sshx https://github.com/xiaot623/sshx/releases/latest/download/sshx-darwin-arm64\nchmod +x sshx\nsudo mv sshx /usr/local/bin/sshx\n```\n\nAvailable binaries: `sshx-darwin-arm64`, `sshx-darwin-amd64`, `sshx-linux-arm64`, `sshx-linux-amd64`.\n\n### Shell Alias (Recommended)\n\nAdd to your `~/.bashrc` or `~/.zshrc`:\n\n```sh\nalias ssh=sshx\n```\n\nThe alias is safe — unmatched hosts have zero overhead and zero side effects.\n\n---\n\n## Quick Start\n\n### 1. Connect normally\n\n```sh\nsshx my-server\nsshx my-server uname -s\nsshx -p 2222 user@my-server hostname\nsshx my-server --timeout=30 npm test\n```\n\nAll existing SSH options work — `-F`, `-o`, `-J`, `ProxyJump`, etc. are handled by OpenSSH.\n\n### 1a. Connect to a Docker container\n\n```sh\n# By container name\nsshx my-dev-container\n\n# By container ID prefix\nsshx 4fa8bc\n\n# Run a command directly\nsshx my-container cat /etc/os-release\n\n# Stop a command after 30 seconds (bare numbers are seconds)\nsshx my-container --timeout=30 npm test\n```\n\nsshx detects that the target isn't an SSH host and automatically uses `docker exec`. The command bridge and other features work exactly the same inside containers.\n\n### 2. Try the command bridge\n\nInside your SSH session on the remote:\n\n```sh\nsshx local uname -s\n# → Darwin (your local machine's OS)\n\n# Long-running bridge commands have no implicit deadline; opt in when needed\nsshx local --timeout=30 npm test\n```\n\n### 3. Start a dev server on the remote\n\nOn the remote, start a server:\n\n```sh\npython3 -m http.server 8080\n```\n\n`python3 -m http.server` binds to `0.0.0.0` by default; sshx detects it the same as a `--bind 127.0.0.1` listener. Explicit `--bind <ip>` to a non-loopback interface is not forwarded.\n\nOn your **local** machine, open:\n\n```\nhttp://my-server.<your-user>.sshx:8080\n```\n\nNo `-L` flags, no manual forwarding. Since each target gets its own loopback IP, another target can expose its own `8080` at the same time:\n\n```sh\nsshx forward\n# http://my-server.<your-user>.sshx:8080 -> my-server:8080\n# http://other-server.<your-user>.sshx:8080 -> other-server:8080\n```\n\n---\n\n## Configuration Reference\n\n`~/.sshx/config.yaml`:\n\n```yaml\n# Strict mode: if the sshx server fails, refuse the connection instead of\n# falling back to plain SSH. Default: false (graceful fallback).\nstrict: false\n\nfeatures:\n  # Remote-to-local command bridge (`sshx local <cmd>` on the remote)\n  commandBridge: true\n\n  # Auto-detect remote loopback and wildcard TCP listeners and expose them via\n  # <host>.<user>.sshx:<remote-port>.\n  autoForward: true\n\n  # Bidirectional workspace mounts for direct CLI sessions. Default: false.\n  # VS Code/Cursor integrations remain remote-to-local only.\n  # Requires FUSE on each machine receiving a mount.\n  remoteFs: false\n\n  # Route proxy-aware remote TCP applications through the local client.\n  # Default: false. SSHX_USE_PROXY=0|1 overrides this value.\n  proxy: false\n\ncommands:\n  # Commands blocked from bridge execution.\n  deny: []\n```\n\n---\n\n## How It Works\n\n```\n┌─────────────────────────────────┐     ┌─────────────────────────────────┐\n│  Your Local Machine              │     │  Remote Host                    │\n│                                  │     │                                 │\n│  Terminal A ── SSH ─────────────┼─────┼── sshx server (shared daemon)   │\n│  Terminal B ── SSH ─────────────┼─────┼──   │                          │\n│  Terminal C ── SSH ─────────────┼─────┼──   ├── Port sniffing           │\n│                                  │     │     ├── Port forwarding         │\n│  sshx local daemon               │     │     ├── Command bridge routing  │\n│    ├─ Port proxy (shared)        │     │     └── Socket-proxy endpoint  │\n│    └─ DNS responder (127.0.0.1)  │     │                                 │\n└─────────────────────────────────┘     └─────────────────────────────────┘\n```\n\n1. **Connection**: `sshx remote` opens a normal SSH session and starts a compatible runtime under `~/.sshx_server/runtimes/<RuntimeHomeID>`.\n2. **Sidecar channel**: One hidden SSH channel multiplexes command, port, heartbeat, and optional RemoteFS traffic. ContextID routes VS Code/Cursor terminals to a healthy live session.\n3. **Port sniffing**: The server reads `/proc/net/tcp*` (Linux) to detect loopback (`127.0.0.1` / `::1`) and wildcard (`0.0.0.0` / `::`) listeners.\n4. **Forwarding**: Detected ports are forwarded through a single shared local daemon using OpenSSH `ssh -O forward -L`.\n5. **Domains**: The local DNS responder maps `<target>.<suffix>` → localhost. The browser's URL port selects the local forwarded port.\n\nWhen `sshx` is invoked for a **non-matching host** (no sshx config, or host not in scope), it first checks if the target resolves to a running Docker container. If neither SSH nor Docker matches, it `exec`s the real `ssh` directly — no daemon, no installation, no overhead.\n\n---\n\n## Safety & Bypass\n\n- `sshx --no-wrap ...` — skip all sshx behavior and call raw `ssh`.\n- `SSHX_DISABLE=1 sshx ...` — same as `--no-wrap`, useful in scripts.\n- `sshx local ...` on a **client** (not inside a remote session) — errors immediately with a clear message. `local` is globally reserved.\n- `remoteFs` never silently falls back to an unmounted command. A failed FUSE mount fails the invocation.\n- Remote exports are anchored with Go's `os.Root`; path traversal and symlink escapes are rejected.\n- The remote egress proxy is OpenSSH remote dynamic SOCKS bound only to loopback.\n- Docker containers that aren't running or can't be reached are pure passthrough — sshx falls back to raw `ssh` with no side effects.\n- Unmatched hosts are pure passthrough — no files created, no processes started.\n\n---\n\n## Platform Support\n\n| Platform | Client | Server | Docker Client |\n|---|---|---|---|\n| macOS | ✅ | — | ✅ |\n| Linux | ✅ | ✅ | ✅ |\n| Windows | 🔜 | — | 🔜 |\n\n- **Client**: macOS and Linux are fully supported.\n- **Server**: Linux is required for the remote sshx server (uses `/proc/net/tcp*` for port detection).\n- **Docker Client**: macOS and Linux — targets any running Docker container via `docker exec`.\n- **remoteFs**: Linux is supported; macOS clients require macFUSE and are beta. Docker targets are not supported.\n\n---\n\n## Project Structure\n\n```\nsshx/\n├── cmd/sshx/          # Main entry point\n├── internal/\n│   ├── cli/           # CLI parsing, host detection, Docker container resolution\n│   ├── sshcompat/     # SSH argument compatibility\n│   ├── config/        # YAML configuration\n│   ├── protocol/      # Client-server wire protocol\n│   ├── bridge/        # Command bridge (remote → local execution)\n│   ├── remotefs/      # FS protocol, secure backend, and FUSE adapter\n│   ├── ports/         # Port sniffing (/proc/net/tcp*)\n│   ├── forward/       # TCP forwarding\n│   ├── domain/        # DNS resolver\n│   └── locald/        # Local daemon (socket, DNS, forwarding)\n├── scripts/           # Integration tests\n├── go.mod\n├── go.sum\n└── README.md\n```\n\n---\n\n## Roadmap\n\n- [x] **v1** — Command bridge (non-interactive), auto port forwarding, domain binding, shared server\n- [ ] **v2** — Streaming stdin for command bridge, GitHub binary releases, Windows client support\n- [x] **remoteFs beta** — Bidirectional direct-CLI workspace mounting, with remote-to-local-only application integrations\n\n---\n\n## License\n\nMIT\n","readmeFilename":"README.md"}