{"_id":"@2red1blue/agentsshcli","_rev":"8-0719f94da53d83733d351e7cc67229d6","name":"@2red1blue/agentsshcli","dist-tags":{"latest":"0.1.7"},"versions":{"0.1.0":{"name":"@2red1blue/agentsshcli","version":"0.1.0","_id":"@2red1blue/agentsshcli@0.1.0","maintainers":[{"name":"2red1blue","email":"lzx6767@foxmail.com"}],"homepage":"https://github.com/2Red1Blue/agent-ssh-cli#readme","bugs":{"url":"https://github.com/2Red1Blue/agent-ssh-cli/issues"},"bin":{"agentsshcli":"bin/agentsshcli.js"},"dist":{"shasum":"ed88917683790fb3ef40aea1238b50af0fc100c9","tarball":"https://registry.npmjs.org/@2red1blue/agentsshcli/-/agentsshcli-0.1.0.tgz","fileCount":5,"integrity":"sha512-TPD0O0rl/hokS0lX4Kdh5Lt5Z3hq8EcH0pB0eHHjJCsS1x9Mali3/4B+B5nbV3V7kRuAa6lfAhybX+ZgJiWybw==","signatures":[{"sig":"MEYCIQCK+lf0S+6EPXd0f9pWRIZ7K7ztpn8N1tHH3m4p5MsmFwIhANeUa8CQtq6zHJsuJeFpPOqRbaCOJ6iMB7TbbTwj4NjX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18782},"type":"module","engines":{"npm":">=8","node":">=18"},"gitHead":"f76a08fdaa56ead4bda2b2cd68849ba634f82b8e","scripts":{"test":"node --check bin/agentsshcli.js && cargo test --manifest-path native/Cargo.toml","test:native":"cargo test --manifest-path native/Cargo.toml","build:native":"cargo build --release --manifest-path native/Cargo.toml","check:release":"node scripts/check-release.js","build:native-bin":"node scripts/build-native-bin.js","publish:packages":"node scripts/publish-packages.js","build:native-package":"npm run build:native-bin && node scripts/build-native-package.js","publish:packages:dry-run":"node scripts/publish-packages.js --dry-run"},"_npmUser":{"name":"2red1blue","email":"lzx6767@foxmail.com"},"repository":{"url":"git+https://github.com/2Red1Blue/agent-ssh-cli.git","type":"git"},"_npmVersion":"11.16.0","description":"基于 CLI 的 SSH 代理工具，按 ssh-mcp-server 的能力一一映射","directories":{},"_nodeVersion":"26.3.1","_hasShrinkwrap":false,"optionalDependencies":{"@2red1blue/agentsshcli-linux-x64":"0.1.0","@2red1blue/agentsshcli-win32-x64":"0.1.0","@2red1blue/agentsshcli-darwin-x64":"0.1.0","@2red1blue/agentsshcli-linux-arm64":"0.1.0","@2red1blue/agentsshcli-darwin-arm64":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/agentsshcli_0.1.0_1782208412289_0.917674946555137","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@2red1blue/agentsshcli","version":"0.1.1","_id":"@2red1blue/agentsshcli@0.1.1","maintainers":[{"name":"2red1blue","email":"lzx6767@foxmail.com"}],"homepage":"https://github.com/2Red1Blue/agent-ssh-cli#readme","bugs":{"url":"https://github.com/2Red1Blue/agent-ssh-cli/issues"},"bin":{"agentsshcli":"bin/agentsshcli.js"},"dist":{"shasum":"68068fb35642f4388c6a5366b0768bf5c9a0f8c3","tarball":"https://registry.npmjs.org/@2red1blue/agentsshcli/-/agentsshcli-0.1.1.tgz","fileCount":9,"integrity":"sha512-wF4mjf4TumteHxEPMEswgkNYaBeSpskw8XPP4BcgOlgFKPcTRGS8R5DFsuuek/D/GJjhhMk7JOHvik2V8uMIiw==","signatures":[{"sig":"MEUCIBDW9PLgZd1cwefamJRsH43/BDIsYUspx+jV+Zy2CHRLAiEAg2j/NV0pf3FOjtzoQ0nfPvfVvLexum/Kei81lWufxkY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@2red1blue%2fagentsshcli@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58827},"type":"module","engines":{"npm":">=8","node":">=18"},"gitHead":"773a475c6ab9d01ea75f1a38bae086f0b28681b4","scripts":{"test":"node --check bin/agentsshcli.js && cargo test --manifest-path native/Cargo.toml","test:native":"cargo test --manifest-path native/Cargo.toml","build:native":"cargo build --release --manifest-path native/Cargo.toml","check:release":"node scripts/check-release.js","build:native-bin":"node scripts/build-native-bin.js","publish:packages":"node scripts/publish-packages.js","build:native-package":"npm run build:native-bin && node scripts/build-native-package.js","publish:packages:dry-run":"node scripts/publish-packages.js --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7b814b77-7408-41ea-800a-d781f9046fe5"}},"repository":{"url":"git+https://github.com/2Red1Blue/agent-ssh-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"基于 CLI 的 SSH 代理工具，按 ssh-mcp-server 的能力一一映射","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"optionalDependencies":{"@2red1blue/agentsshcli-linux-x64":"0.1.1","@2red1blue/agentsshcli-win32-x64":"0.1.1","@2red1blue/agentsshcli-darwin-x64":"0.1.1","@2red1blue/agentsshcli-linux-arm64":"0.1.1","@2red1blue/agentsshcli-darwin-arm64":"0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/agentsshcli_0.1.1_1782218879224_0.5277472675904746","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@2red1blue/agentsshcli","version":"0.1.2","_id":"@2red1blue/agentsshcli@0.1.2","maintainers":[{"name":"2red1blue","email":"lzx6767@foxmail.com"}],"homepage":"https://github.com/2Red1Blue/agent-ssh-cli#readme","bugs":{"url":"https://github.com/2Red1Blue/agent-ssh-cli/issues"},"bin":{"agentsshcli":"bin/agentsshcli.js"},"dist":{"shasum":"701d8cafe0e067cff88ba805499ee6cbc8a47fea","tarball":"https://registry.npmjs.org/@2red1blue/agentsshcli/-/agentsshcli-0.1.2.tgz","fileCount":9,"integrity":"sha512-DBVxWMv9I4+9Ssm1oyX7znN3TSK17v0ETbXwrnyZpF2w+hv4xy5h5V177xAFccKMmgPvoJN+mOvLy+TqNoTbmQ==","signatures":[{"sig":"MEUCIQCRn7CmAzbygcYEjBtQQxR0CbGDChKESv6hTfC1a5WvjAIgJj92lK6IXlsWCshN62oUUL+dmmvTHWSeQgOWG63ENOM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@2red1blue%2fagentsshcli@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":85472},"type":"module","engines":{"npm":">=8","node":">=18"},"gitHead":"d71cfbd71bec740becab9af432b2c356b7ba1f24","scripts":{"test":"node --check bin/agentsshcli.js && cargo test --manifest-path native/Cargo.toml","test:native":"cargo test --manifest-path native/Cargo.toml","build:native":"cargo build --release --manifest-path native/Cargo.toml","check:release":"node scripts/check-release.js","build:native-bin":"node scripts/build-native-bin.js","publish:packages":"node scripts/publish-packages.js","build:native-package":"npm run build:native-bin && node scripts/build-native-package.js","publish:packages:dry-run":"node scripts/publish-packages.js --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7b814b77-7408-41ea-800a-d781f9046fe5"}},"repository":{"url":"git+https://github.com/2Red1Blue/agent-ssh-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"基于 CLI 的 SSH 代理工具，按 ssh-mcp-server 的能力一一映射","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"optionalDependencies":{"@2red1blue/agentsshcli-linux-x64":"0.1.2","@2red1blue/agentsshcli-win32-x64":"0.1.2","@2red1blue/agentsshcli-darwin-x64":"0.1.2","@2red1blue/agentsshcli-linux-arm64":"0.1.2","@2red1blue/agentsshcli-darwin-arm64":"0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/agentsshcli_0.1.2_1782223927254_0.359076642240842","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@2red1blue/agentsshcli","version":"0.1.3","_id":"@2red1blue/agentsshcli@0.1.3","maintainers":[{"name":"2red1blue","email":"lzx6767@foxmail.com"}],"homepage":"https://github.com/2Red1Blue/agent-ssh-cli#readme","bugs":{"url":"https://github.com/2Red1Blue/agent-ssh-cli/issues"},"bin":{"agentsshcli":"bin/agentsshcli.js"},"dist":{"shasum":"5ed1d7e95d6bdbb299a74921c1c343733b525f85","tarball":"https://registry.npmjs.org/@2red1blue/agentsshcli/-/agentsshcli-0.1.3.tgz","fileCount":9,"integrity":"sha512-RSbJvo06c5ufiATlktp18kqThVB5QMfRSx1AUnNbIGSJjWyYMF+RcsFkp/Cp1w+gsiVRjF82TTO9lRan/LV16A==","signatures":[{"sig":"MEQCIGC9tnPGwwU8W9wGQD8BJLZMj3REx+V1Orx8Y0fBIIAkAiBWocaqKyE+6aMCXN3UqBHVm0QC/xXncqUazqgfYdJUBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@2red1blue%2fagentsshcli@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":90049},"type":"module","engines":{"npm":">=8","node":">=18"},"gitHead":"742f7cfe1d1111076c5293219411eff231065893","scripts":{"test":"node --check bin/agentsshcli.js && cargo test --manifest-path native/Cargo.toml","test:native":"cargo test --manifest-path native/Cargo.toml","build:native":"cargo build --release --manifest-path native/Cargo.toml","check:release":"node scripts/check-release.js","build:native-bin":"node scripts/build-native-bin.js","publish:packages":"node scripts/publish-packages.js","build:native-package":"npm run build:native-bin && node scripts/build-native-package.js","publish:packages:dry-run":"node scripts/publish-packages.js --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7b814b77-7408-41ea-800a-d781f9046fe5"}},"repository":{"url":"git+https://github.com/2Red1Blue/agent-ssh-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"基于 CLI 的 SSH 代理工具，按 ssh-mcp-server 的能力一一映射","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"optionalDependencies":{"@2red1blue/agentsshcli-linux-x64":"0.1.3","@2red1blue/agentsshcli-win32-x64":"0.1.3","@2red1blue/agentsshcli-darwin-x64":"0.1.3","@2red1blue/agentsshcli-linux-arm64":"0.1.3","@2red1blue/agentsshcli-darwin-arm64":"0.1.3"},"_npmOperationalInternal":{"tmp":"tmp/agentsshcli_0.1.3_1782272721178_0.36936984596769173","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@2red1blue/agentsshcli","version":"0.1.4","_id":"@2red1blue/agentsshcli@0.1.4","maintainers":[{"name":"2red1blue","email":"lzx6767@foxmail.com"}],"homepage":"https://github.com/2Red1Blue/agent-ssh-cli#readme","bugs":{"url":"https://github.com/2Red1Blue/agent-ssh-cli/issues"},"bin":{"agentsshcli":"bin/agentsshcli.js"},"dist":{"shasum":"a5c806d204a38c4650821bf4d922479d276580b6","tarball":"https://registry.npmjs.org/@2red1blue/agentsshcli/-/agentsshcli-0.1.4.tgz","fileCount":9,"integrity":"sha512-inmnWy85XDXoHCrMabl/FxA1pxX9FuZNz9AyXFvTYlJgiyHIf984SVoOIE1tT4FUm9wxj/qv3+laGxRQqekDZA==","signatures":[{"sig":"MEYCIQCoxc6MmYv0KpF7wlqkVF8KdlCbDw1rT5K/k/y5X6eeJwIhAJ1w95q+azhN0wj++nofuXhcGAtQqY4YlH/y1zF6PR7N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@2red1blue%2fagentsshcli@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":121467},"type":"module","engines":{"npm":">=8","node":">=18"},"gitHead":"f3babdd854b0572f5b5c3f3006034b059a1e6af9","scripts":{"test":"node --check bin/agentsshcli.js && cargo test --manifest-path native/Cargo.toml","test:native":"cargo test --manifest-path native/Cargo.toml","build:native":"cargo build --release --manifest-path native/Cargo.toml","check:release":"node scripts/check-release.js","build:native-bin":"node scripts/build-native-bin.js","publish:packages":"node scripts/publish-packages.js","build:native-package":"npm run build:native-bin && node scripts/build-native-package.js","publish:packages:dry-run":"node scripts/publish-packages.js --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7b814b77-7408-41ea-800a-d781f9046fe5"}},"repository":{"url":"git+https://github.com/2Red1Blue/agent-ssh-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"基于 CLI 的 SSH 代理工具，按 ssh-mcp-server 的能力一一映射","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"optionalDependencies":{"@2red1blue/agentsshcli-linux-x64":"0.1.4","@2red1blue/agentsshcli-win32-x64":"0.1.4","@2red1blue/agentsshcli-darwin-x64":"0.1.4","@2red1blue/agentsshcli-linux-arm64":"0.1.4","@2red1blue/agentsshcli-darwin-arm64":"0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/agentsshcli_0.1.4_1782302647419_0.7485444732095832","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@2red1blue/agentsshcli","version":"0.1.5","_id":"@2red1blue/agentsshcli@0.1.5","maintainers":[{"name":"2red1blue","email":"lzx6767@foxmail.com"}],"homepage":"https://github.com/2Red1Blue/agent-ssh-cli#readme","bugs":{"url":"https://github.com/2Red1Blue/agent-ssh-cli/issues"},"bin":{"agentsshcli":"bin/agentsshcli.js"},"dist":{"shasum":"8e312c6f4dc7431f14365f160d48832c280397ea","tarball":"https://registry.npmjs.org/@2red1blue/agentsshcli/-/agentsshcli-0.1.5.tgz","fileCount":9,"integrity":"sha512-hv31vMvANkQB9v41h2vLul/gKGEN7nyC/lY53x/+BU1d+eSTVLN48B+F5crfJOw02c01YiVzEKkm2lFpX0Srbg==","signatures":[{"sig":"MEUCIQCeSnFXFMHvJS3ygNWgifxnJ+OSgFT+KX9zz7+iYvYy9QIgCtEi1mMLN/p9CbLtICsZ6FwVsSD2PUzFRgPtR7MtIiM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@2red1blue%2fagentsshcli@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":148774},"type":"module","engines":{"npm":">=8","node":">=18"},"gitHead":"e649746a74bf5a7b9249ed4f9a3577fe41af9ee3","scripts":{"test":"node --check bin/agentsshcli.js && cargo test --manifest-path native/Cargo.toml","test:native":"cargo test --manifest-path native/Cargo.toml","build:native":"cargo build --release --manifest-path native/Cargo.toml","check:release":"node scripts/check-release.js","build:native-bin":"node scripts/build-native-bin.js","publish:packages":"node scripts/publish-packages.js","build:native-package":"npm run build:native-bin && node scripts/build-native-package.js","publish:packages:dry-run":"node scripts/publish-packages.js --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7b814b77-7408-41ea-800a-d781f9046fe5"}},"repository":{"url":"git+https://github.com/2Red1Blue/agent-ssh-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"基于 CLI 的 SSH 代理工具，按 ssh-mcp-server 的能力一一映射","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"optionalDependencies":{"@2red1blue/agentsshcli-linux-x64":"0.1.5","@2red1blue/agentsshcli-win32-x64":"0.1.5","@2red1blue/agentsshcli-darwin-x64":"0.1.5","@2red1blue/agentsshcli-linux-arm64":"0.1.5","@2red1blue/agentsshcli-darwin-arm64":"0.1.5"},"_npmOperationalInternal":{"tmp":"tmp/agentsshcli_0.1.5_1782307160022_0.6156122132555235","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@2red1blue/agentsshcli","version":"0.1.6","_id":"@2red1blue/agentsshcli@0.1.6","maintainers":[{"name":"2red1blue","email":"lzx6767@foxmail.com"}],"homepage":"https://github.com/2Red1Blue/agent-ssh-cli#readme","bugs":{"url":"https://github.com/2Red1Blue/agent-ssh-cli/issues"},"bin":{"agentsshcli":"bin/agentsshcli.js"},"dist":{"shasum":"cb0d39e50db9df4d6a9ae91223bb8980908dfefc","tarball":"https://registry.npmjs.org/@2red1blue/agentsshcli/-/agentsshcli-0.1.6.tgz","fileCount":9,"integrity":"sha512-UVjw3aIncsK78+SUfBt3lbLFTMuwgvq43PRWfp1dSzC3F3kuVsvVd9NtphE88B5iutG+syDqxmmgkK43aUK5hg==","signatures":[{"sig":"MEUCIQC9I+qPAmD31eQZ/Bm0e00mkrYWMR3hDJhE+q0whDzUBgIgQKX0paeYAnN3gZWDHY/f5EYMfK7jm9ZBxRHhuEon9EM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@2red1blue%2fagentsshcli@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":148774},"type":"module","engines":{"npm":">=8","node":">=18"},"gitHead":"1ffc1bce30927fa081fef1225e642f5919c34f36","scripts":{"test":"node --check bin/agentsshcli.js && cargo test --manifest-path native/Cargo.toml","test:native":"cargo test --manifest-path native/Cargo.toml","build:native":"cargo build --release --manifest-path native/Cargo.toml","check:release":"node scripts/check-release.js","build:native-bin":"node scripts/build-native-bin.js","publish:packages":"node scripts/publish-packages.js","build:native-package":"npm run build:native-bin && node scripts/build-native-package.js","publish:packages:dry-run":"node scripts/publish-packages.js --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7b814b77-7408-41ea-800a-d781f9046fe5"}},"repository":{"url":"git+https://github.com/2Red1Blue/agent-ssh-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"基于 CLI 的 SSH 代理工具，按 ssh-mcp-server 的能力一一映射","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"optionalDependencies":{"@2red1blue/agentsshcli-linux-x64":"0.1.6","@2red1blue/agentsshcli-win32-x64":"0.1.6","@2red1blue/agentsshcli-darwin-x64":"0.1.6","@2red1blue/agentsshcli-linux-arm64":"0.1.6","@2red1blue/agentsshcli-darwin-arm64":"0.1.6"},"_npmOperationalInternal":{"tmp":"tmp/agentsshcli_0.1.6_1782365860290_0.7452861401501858","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@2red1blue/agentsshcli","version":"0.1.7","description":"基于 CLI 的 SSH 代理工具，按 ssh-mcp-server 的能力一一映射","type":"module","engines":{"node":">=18","npm":">=8"},"repository":{"type":"git","url":"git+https://github.com/2Red1Blue/agent-ssh-cli.git"},"bin":{"agentsshcli":"bin/agentsshcli.js"},"scripts":{"test":"node --check bin/agentsshcli.js && cargo test --manifest-path native/Cargo.toml","build:native":"cargo build --release --manifest-path native/Cargo.toml","test:native":"cargo test --manifest-path native/Cargo.toml","build:native-bin":"node scripts/build-native-bin.js","build:native-package":"npm run build:native-bin && node scripts/build-native-package.js","check:release":"node scripts/check-release.js","publish:packages":"node scripts/publish-packages.js","publish:packages:dry-run":"node scripts/publish-packages.js --dry-run"},"optionalDependencies":{"@2red1blue/agentsshcli-darwin-arm64":"0.1.7","@2red1blue/agentsshcli-darwin-x64":"0.1.7","@2red1blue/agentsshcli-linux-arm64":"0.1.7","@2red1blue/agentsshcli-linux-x64":"0.1.7","@2red1blue/agentsshcli-win32-x64":"0.1.7"},"_id":"@2red1blue/agentsshcli@0.1.7","gitHead":"03da7979f3c6a41c8dc0e5777f0fc767ccb0dd17","bugs":{"url":"https://github.com/2Red1Blue/agent-ssh-cli/issues"},"homepage":"https://github.com/2Red1Blue/agent-ssh-cli#readme","_nodeVersion":"22.14.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-S25nfXcMWQIwV9YwcSBArkCwMCOfBANZRQDreStA/EHBsk6lrcuSMsTiaFwrlcItf7l27MPfM/1Yy8C6548arw==","shasum":"98a2c221b017cbc6a88f60c7302da991326ab441","tarball":"https://registry.npmjs.org/@2red1blue/agentsshcli/-/agentsshcli-0.1.7.tgz","fileCount":9,"unpackedSize":151343,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@2red1blue%2fagentsshcli@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHne2eCyDeoY3/64QLeNcHWUrcFtEf3eryzjmhwju/uAAiBHga4Rh+dyu3Y8AOGIin5wQEiqQKN9FVZysQb7iSvAoQ=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7b814b77-7408-41ea-800a-d781f9046fe5"}},"directories":{},"maintainers":[{"name":"2red1blue","email":"lzx6767@foxmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agentsshcli_0.1.7_1782454761529_0.7261720406352667"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-23T09:53:32.137Z","modified":"2026-06-26T06:19:21.924Z","0.1.0":"2026-06-23T09:53:32.417Z","0.1.1":"2026-06-23T12:47:59.378Z","0.1.2":"2026-06-23T14:12:07.395Z","0.1.3":"2026-06-24T03:45:21.309Z","0.1.4":"2026-06-24T12:04:07.560Z","0.1.5":"2026-06-24T13:19:20.176Z","0.1.6":"2026-06-25T05:37:40.463Z","0.1.7":"2026-06-26T06:19:21.675Z"},"bugs":{"url":"https://github.com/2Red1Blue/agent-ssh-cli/issues"},"homepage":"https://github.com/2Red1Blue/agent-ssh-cli#readme","repository":{"type":"git","url":"git+https://github.com/2Red1Blue/agent-ssh-cli.git"},"description":"基于 CLI 的 SSH 代理工具，按 ssh-mcp-server 的能力一一映射","maintainers":[{"name":"2red1blue","email":"lzx6767@foxmail.com"}],"readme":"<div align=\"center\">\n\n# agent-ssh-cli\n\n基于 CLI 的 SSH 代理工具，按 ssh-mcp-server 的能力映射为 Agent 可调用的远端操作能力。\n\n远程执行 · 文件上传 · 文件下载 · 连接配置 · 命令白名单 · 命令黑名单 · Agent Skill 集成 · JumpServer 跳板机执行\n\n<p>\n  <a href=\"https://github.com/2Red1Blue/agent-ssh-cli\"><img src=\"https://img.shields.io/badge/CLI-agentsshcli-2ea44f\" alt=\"CLI agentsshcli\"></a>\n  <a href=\"https://github.com/2Red1Blue/agent-ssh-cli/blob/main/LICENSE\"><img src=\"https://img.shields.io/badge/License-MIT-green\" alt=\"License MIT\"></a>\n  <a href=\"https://nodejs.org/\"><img src=\"https://img.shields.io/badge/Node.js-%3E%3D18-339933?logo=node.js&logoColor=white\" alt=\"Node.js >=18\"></a>\n  <a href=\"https://www.npmjs.com/\"><img src=\"https://img.shields.io/badge/npm-%3E%3D8-CB3837?logo=npm&logoColor=white\" alt=\"npm >=8\"></a>\n  <a href=\"https://github.com/2Red1Blue/agent-ssh-cli\"><img src=\"https://img.shields.io/badge/sys-win%2Fmac%2Flinux-0078D6\" alt=\"sys win/mac/linux\"></a>\n  <a href=\"https://github.com/2Red1Blue/agent-ssh-cli/releases\"><img src=\"https://img.shields.io/badge/release-v0.1.7-blue\" alt=\"release v0.1.7\"></a>\n  <a href=\"https://github.com/2Red1Blue/agent-ssh-cli/pulls\"><img src=\"https://img.shields.io/badge/PRs-welcome-brightgreen\" alt=\"PRs welcome\"></a>\n</p>\n\n[AI 一键安装](#ai-一键安装) · [手动安装](#手动安装) · [配置](#配置) · [JumpServer 跳板机模式](#jumpserver-跳板机模式) · [卸载和清理](#卸载和清理) · [许可证](#许可证) · [友情链接](#友情链接)\n\n中文 | [English](README_EN.md)\n\n</div>\n\n## 简介\n本项目参考 [classfang/ssh-mcp-server](https://github.com/classfang/ssh-mcp-server) 的 SSH 操作能力设计，改写为独立 CLI 形式。感谢原项目提供的思路和能力基础。\n\n#### 他能做的事：\n- 解放双手，自动运维服务器\n- 部署代码，更新部署docker\n- 配置nginx,配置证书\n- 所有ssh能做到的事情\n#### 他的能力：\n- 列出本地配置中的 SSH 服务器连接\n- 在指定远端服务器上执行命令\n- 上传本地文件到远端服务器，支持临时文件、断点续传和失败重试\n- 从远端服务器下载文件到本地\n- 通过命令黑白名单限制可执行命令\n- 通过本地路径白名单限制上传和下载访问范围\n- 通过 JumpServer 跳板机以菜单 PTY 模式连接目标主机（`jump-exec` 子命令）\n\n## 上传稳定性\n\n上传会先写入远端 `<remotePath>.part` 临时文件，并写入 `<remotePath>.part.meta` 续传元数据；完成后校验大小，再 rename 为正式目标文件。上传中断后，下次上传同一个本地文件到同一个远端路径会从已有 `.part` 大小继续。\n\n`--no-cache` 上传可用 `Ctrl+C` 停止当前进程；daemon 模式可用 `agentsshcli stop-daemon` 停止连接池进程，但它会影响同一 daemon 内其它任务，不是精确取消单个上传。\n\n## AI 一键安装\n\nAI 一键安装：\n\n```\n安装请阅读 https://github.com/2Red1Blue/agent-ssh-cli/blob/main/AI_INSTALL.md，按说明安装 CLI 并添加 `SKILL.md`。\n```\n\n这句话现在仍然可用。AI 读完 `AI_INSTALL.md` 后，会继续完成：\n\n- 多 npm 前缀检查与逐个全局安装\n- 交互式选择客户端：`cc-switch` / `codex` / `claude` / `opencode` / `hermes` / `custom`\n- 如果检测到 `~/.cc-switch/skills`，默认把 `cc-switch` 作为共享主链安装根\n- 选择主链客户端或主链安装根\n- 选择其余客户端是软链复用还是分别复制\n- 安装 `agent-ssh-cli` 与 `log-analyze`\n- 初始化 `~/.agent-ssh-cli/config.json` 和主链 `env-map.md` 模板\n- 提示你重启客户端后继续交互式补配置，直到客户端里能看到 `log-analyze`\n\n如果你手动执行，一行命令也可以完成当前这套安装效果：\n\n```bash\nfor npm_bin in $(which -a npm 2>/dev/null | awk '!seen[$0]++'); do\n  prefix=\"$(\"$npm_bin\" prefix -g 2>/dev/null)\" || continue\n  case \" ${SEEN_PREFIXES:-} \" in\n    *\" $prefix \"*) continue ;;\n  esac\n  SEEN_PREFIXES=\"${SEEN_PREFIXES:-} $prefix\"\n  \"$npm_bin\" install -g @2red1blue/agentsshcli || exit 1\ndone\nagentsshcli install-ai\n```\n\n如果你希望显式进入交互式客户端选择流程，也可以直接：\n\n```bash\nagentsshcli install-ai --interactive\n```\n\n如果你是这个仓库的维护者，准备通过 GitHub Actions 自动发布 npm 包，请额外阅读：\n\n- [docs/NPM_PUBLISH_GUIDE.md](docs/NPM_PUBLISH_GUIDE.md)\n\n当前仓库的自动发版方案已经切换为 npm Trusted Publishing，不再依赖长期 `NPM_TOKEN`。\n\n如果希望 AI 直接支持日志排障，可同时安装本地 `log-analyze` skill。推荐组合：\n\n- `agent-ssh-cli`：负责 JumpServer / SSH 执行\n- `log-analyze`：负责环境识别、target 映射、日志排查流程\n\n如果后续仓库升级了 `log-analyze` 模板，而你本地也补充过私有规则，推荐先检查再兼容更新：\n\n```bash\nagentsshcli doctor-skills\nagentsshcli sync-skills\n```\n\n`sync-skills` 默认会尽量保留你本地补充的内容，并备份当前 `SKILL.md`；`env-map.json` / `env-map.md` 和私有配置不会被覆盖。\n如果你刚升级过 `agentsshcli`，建议顺手先跑一遍 `agentsshcli doctor-skills` 和 `agentsshcli sync-skills`，让本地安装的 `log-analyze` 一起同步到新模板。\n\n首次安装后，如果要让 AI 交互式补齐你自己的环境映射，请参考：\n\n- [docs/AI_FIRST_RUN_LOG_ANALYZE.md](docs/AI_FIRST_RUN_LOG_ANALYZE.md)\n\n如果你已经完成 `install-ai`，推荐按这个顺序走：\n\n- 安装阶段让 AI 处理：装 CLI、装 skills、初始化 JumpServer 配置\n- SSH 配好后第一步先 `agentsshcli jump-menu <jumpserver-connection>`，展示当前 JumpServer 的 `Opt>` 菜单\n- 若 `env-map.json` / `env-map.md` 还不存在，再执行 `agentsshcli env-map init --from-config`，自动从 `config.json` 发现 JumpServer 连接\n- 然后你只需要告诉 AI：JumpServer 与环境关系、日志路径模式、项目别名、常用主机列表\n- 剩下的主机搜索、真实 hostname/IP 验证、以及 `env-map.json -> env-map.md` 回填，都交给你当前正在使用的 AI 完成\n\n`env-map.json` 建议作为结构化事实源由 AI 自行维护，再自动渲染 `env-map.md` 供人类阅读，而不是要求用户长期手工编辑 Markdown。这个文件本质上是 AI 的本地环境记忆：\n\n- 用户提供：JumpServer 与环境关系、日志路径模式、项目别名、常用主机列表\n- AI 负责：JumpServer 菜单确认、真实主机搜索、验证、写入和后续更新\n\n如果你是在 AI 对话里继续做这一步，推荐让 AI 先做两件事：\n\n- 先直接告诉你“当前主链 `env-map.json` / `env-map.md` 的真实路径”\n- 先执行 `agentsshcli jump-menu <jumpserver-connection>`，把当前 `Opt>` 菜单完整展示给你\n- 若文件尚不存在，再执行 `agentsshcli env-map init --from-config`\n\n然后再继续补这些信息：\n\n- 有哪些 JumpServer 分别对应什么环境\n- 各环境日志通常在哪个路径模式\n- 最常查的项目与简称 / 别名\n- 一组常用主机列表\n\n这样用户不会卡在“文件到底在哪”，也不会在还没看到 JumpServer 菜单前就被要求提供 hostname；结构化 `env-map` 的维护动作则由 AI 自己完成。若 `env-map` 已存在，就应该直接增量维护，只有明确整体重建时才使用 `agentsshcli env-map init --force`。\n\n## 手动安装\n### 环境要求\n\n- Node.js `>= 18`\n- npm `>= 8`\n- 系统支持 Windows / macOS / Linux\n- 本机网络可访问目标 SSH 服务器\n- 如使用私钥认证，私钥文件需对当前用户可读\n- 预编译平台包支持 macOS arm64/x64、Linux x64/arm64、Windows x64\n\n### 安装步骤\n\n1. 全局安装：\n\n```bash\nfor npm_bin in $(which -a npm 2>/dev/null | awk '!seen[$0]++'); do\n  prefix=\"$(\"$npm_bin\" prefix -g 2>/dev/null)\" || continue\n  case \" ${SEEN_PREFIXES:-} \" in\n    *\" $prefix \"*) continue ;;\n  esac\n  SEEN_PREFIXES=\"${SEEN_PREFIXES:-} $prefix\"\n  \"$npm_bin\" install -g @2red1blue/agentsshcli || exit 1\ndone\nagentsshcli --help\n```\n\n如果机器上同时存在多套 Node/npm（例如 Hermes、自带 Node、Homebrew Node），推荐始终按上面的“扫描 `which -a npm` 并按唯一全局前缀逐个安装”方式执行，避免 CLI 只装进其中一套工具自己的全局目录。\n\n2. 导入 SKILL.md:\n\n不再推荐手工“打开 `SKILL.md` 然后自己拷贝”作为默认流程。  \n优先使用：\n\n```bash\nagentsshcli install-ai --interactive\n```\n\n只有在以下场景才建议手工安装：\n\n- 目标客户端不是内置的 `cc-switch / codex / claude / opencode / hermes`\n- 用户明确要求自己指定 skills 根目录\n- 需要把 skill 装到项目级目录而不是全局目录\n\n如果是未知客户端，推荐直接用：\n\n```bash\nagentsshcli install-ai --clients custom --client-root custom=/absolute/path/to/skills\n```\n\n\n## 配置\n\n初始化配置（格式参数和ssh-mcp-server一致）：\n\n```bash\nmkdir -p ~/.agent-ssh-cli\n```\n\n编辑 `~/.agent-ssh-cli/config.json`，填写真实连接信息。默认配置文件也可以通过环境变量覆盖：\n\n可以通过以下环境变量修改配置地点\n```bash\nAGENT_SSH_CONFIG=/path/to/config.json\n```\n\n配置文件是数组，每一项是一台服务器：\n\n- `name`: 连接名，必须唯一\n- `host`: SSH 主机地址\n- `username`: SSH 用户名\n- `password` / `passwordRef` / `privateKey`: 认证方式，密码、密码引用、私钥三类认证只能保留一种\n- `port`: SSH 端口，默认 `22`\n- `passphrase`: 私钥口令，仅配合 `privateKey` 使用\n- `socksProxy`: SOCKS5 代理地址，例如 `socks5://127.0.0.1:1080`；也可省略协议写成 `127.0.0.1:1080`\n- `jumpHost`: 跳板机连接名，填写配置文件中另一台机器的 `name`\n- `pty`: 是否分配伪终端，默认 `false`，也可通过 `exec --pty` 临时开启\n- `allowedLocalPaths`: 额外允许上传或下载写入的本地路径\n- `commandWhitelist`: 命令白名单正则数组\n- `commandBlacklist`: 命令黑名单正则数组\n\n`commandWhitelist` 和 `commandBlacklist` 使用 JavaScript `RegExp` 语法，不是 POSIX 正则；空白字符请写成 `\\\\s`，不要写 `[:space:]`。\n\n完整示例见 [example.config.json](example.config.json)。`~/.agent-ssh-cli/config.json` 保存真实连接信息。\n\n为防止配置文件中的密码泄露，密码认证会在第一次使用该服务器时被动加密保存：首次写入明文 `password` 后，执行 `exec`、`upload` 或 `download` 连接该服务器时，CLI 会把密码加密保存到配置目录下的 `secrets.json`，生成本地 `secret.key`，并把配置中的 `password` 置空、写入 `passwordRef`。后续运行通过 `passwordRef` 解密认证；如需修改密码，把空的 `password` 重新填成新密码，下次连接会自动覆盖旧密文。\n\n参考配置\n\n```json\n[\n  {\n    \"name\": \"密码服务器\",\n    \"host\": \"192.0.2.10\",\n    \"port\": 22,\n    \"username\": \"root\",\n    \"password\": \"\",\n    \"passwordRef\": \"agentsshcli:密码服务器\",\n    \"jumpHost\": \"jump-server\",\n    \"commandBlacklist\": [\n      \"(^|[;&|()\\\\s])rm(\\\\s|$)\",\n      \"(^|[;&|()\\\\s])shutdown(\\\\s|$)\",\n      \"(^|[;&|()\\\\s])reboot(\\\\s|$)\"\n    ]\n  },\n  {\n    \"name\": \"jump-server\",\n    \"host\": \"198.51.100.20\",\n    \"port\": 22,\n    \"username\": \"ubuntu\",\n    \"privateKey\": \"/path/to/jump_key\",\n    \"passphrase\": \"******\",\n    \"socksProxy\": \"socks5://127.0.0.1:1080\"\n  },\n  {\n    \"name\": \"密钥服务器\",\n    \"host\": \"198.51.100.10\",\n    \"port\": 22,\n    \"username\": \"deploy\",\n    \"privateKey\": \"/path/to/id_rsa\",\n    \"passphrase\": \"******\",\n    \"pty\": false,\n    \"allowedLocalPaths\": [\n      \"./tmp\",\n      \"./dist\"\n    ],\n    \"commandWhitelist\": [\n      \"^pwd$\",\n      \"^ls(\\\\s|$)\",\n      \"^cat\\\\s+/var/log/app\\\\.log$\"\n    ],\n    \"commandBlacklist\": [\n      \"(^|[;&|()\\\\s])rm(\\\\s|$)\",\n      \"(^|[;&|()\\\\s])shutdown(\\\\s|$)\",\n      \"(^|[;&|()\\\\s])reboot(\\\\s|$)\"\n    ]\n  }\n]\n```\n测试命令\n\n```bash\nagentsshcli list\nagentsshcli exec --no-cache 密码服务器 \"pwd\"\nagentsshcli exec --pty 密码服务器 \"tty\"\nagentsshcli exec 密码服务器 --command-file ./script.sh --timeout 60000\nagentsshcli exec 密码服务器 \"tail -f /tmp/demo.log\" --timeout 10000 --total-timeout 300000\n```\n完成安装!\n\n## JumpServer 跳板机模式\n\n`jump-search` / `jump-exec` 子命令支持通过 JumpServer 跳板机菜单先搜主机，再登入目标主机执行命令，\n适用于线上服务器只能经堡垒机访问的场景。原有 `exec / upload / download` 直连行为\n完全不变；JumpServer 模式由连接配置中的 `jumpServer` 字段开启。\n\n### 命令格式\n\n```bash\nagentsshcli jump-search <gatewayConnection> \"<query>\" [--timeout <ms>] [--total-timeout <ms>]\nagentsshcli jump-exec <gatewayConnection> --target <hostOrIp> \"<command>\" [--timeout <ms>] [--total-timeout <ms>]\n```\n\n- `jump-search`：只在 JumpServer 菜单层搜索当前账号有权限的主机候选，不进入目标机 shell\n- `<gatewayConnection>`：在 `config.json` 中配置了 `jumpServer.enabled=true` 的连接名\n- `--target`：目标机器 hostname 或 IP（JumpServer 菜单会用它做搜索）\n- `--timeout`：可选，默认 60000ms。表示空闲超时；只要远端持续输出，等待会自动续期\n- `--total-timeout`：可选。整次 jump-exec 的硬上限；默认不设总上限\n\n当用户只给了 `myservice-api`、`api-02`、实例尾号、IP 片段这类模糊线索时，推荐固定流程：\n\n1. 先 `jump-search` 搜出真实 hostname / IP\n2. 把“用户简称 -> 真实 hostname / IP”写回 `env-map.md`\n3. 再用 `jump-exec --target <真实目标>` 做验证或查日志\n\n> 当前 `jump-exec` 和普通 `exec` 都只支持正整数毫秒超时，不支持“无超时”。如需查整天大日志，推荐把 `--timeout` 提高到 `120000~300000`，必要时再加 `--total-timeout` 作为总保护上限。\n\n> upload / download 不支持 JumpServer 模式，请改用直连。\n\n### 一次性生成跳板机配置（推荐 AI 使用）\n\n让 AI 收集完跳板机参数后，一行命令把配置写入 `~/.agent-ssh-cli/config.json`，\n无需手动编辑 JSON：\n\n```bash\nagentsshcli add-jump-server \\\n  --name prod.jumpserver \\\n  --host jump.example.com \\\n  --port 2222 \\\n  --username <your-user> \\\n  --private-key /path/to/jumpserver.pem\n```\n\n子命令会自动填入：\n\n- `pty: true`\n- `jumpServer.enabled: true`\n- `jumpServer.promptRegex: \"Opt>\\\\s*$\"`（标准 JumpServer 菜单 prompt）\n- `jumpServer.shellPromptRegex: \"(?m)[#$]\\\\s*$\"`\n- `jumpServer.searchPrefix: \"/\"`、`charDelayMs: 60`、`enterStrategy: \"direct-then-search\"`\n- 默认 `commandBlacklist`（拒绝 `rm` / `truncate` / `reboot` / `shutdown` / `systemctl stop|restart|reload` / `kill`）\n\n文件不存在会自动创建，权限置为 `0600`。同名连接已存在时报错；加 `--force` 覆盖。正式写入前也可以先用 `--dry-run` 预检参数。\n\n### AI 交互式生成模板\n\n把下面这段贴给 AI（Claude Code / 任意 agent）即可让它带你走一遍：\n\n```\n你是 agent-ssh-cli 跳板机配置助手。请按以下顺序问我，每次只问一个问题。\n先做前置确认，再收集参数，正式写入前先用 --dry-run 预检。\n\n前置确认：\n1. 我是否使用私钥认证（不是密码认证）\n2. 私钥路径是否已经存在于本机\n\n要收集的参数：\n1. 连接名（建议 prod.jumpserver / test.jumpserver，需唯一）\n2. JumpServer host（IP 或域名）\n3. SSH 端口（默认 8390，确认是否需要改）\n4. SSH 用户名\n5. 私钥绝对路径\n\n先预检：\n  agentsshcli add-jump-server --dry-run --name <name> --host <host> --port <port> \\\n    --username <user> --private-key <key>\n\n预检通过后正式写入：\n  agentsshcli add-jump-server --name <name> --host <host> --port <port> \\\n    --username <user> --private-key <key>\n\n\t写入后用以下命令验证：\n\t  agentsshcli list\n\t  agentsshcli jump-menu <name>\n\t  agentsshcli jump-search <name> \"adserving-api\"\n\t  agentsshcli jump-exec <name> --target <一个已知的目标主机> \"hostname\"\n```\n\n### 手动编辑配置（不推荐）\n\n如需手动编辑，参考下面这段完整字段：\n\n```json\n{\n  \"name\": \"prod.jumpserver\",\n  \"host\": \"jump.example.com\",\n  \"port\": 2222,\n  \"username\": \"<your-user>\",\n  \"privateKey\": \"/path/to/jumpserver.pem\",\n  \"pty\": true,\n  \"jumpServer\": {\n    \"enabled\": true,\n    \"promptRegex\": \"Opt>\\\\s*$\",\n    \"shellPromptRegex\": \"(?m)[#$]\\\\s*$\",\n    \"searchPrefix\": \"/\",\n    \"charDelayMs\": 60,\n    \"enterStrategy\": \"direct-then-search\"\n  },\n  \"commandBlacklist\": [\n    \"(^|[;&|()\\\\s])rm(\\\\s|$)\",\n    \"(^|[;&|()\\\\s])truncate(\\\\s|$)\",\n    \"(^|[;&|()\\\\s])reboot(\\\\s|$)\",\n    \"(^|[;&|()\\\\s])shutdown(\\\\s|$)\",\n    \"(^|[;&|()\\\\s])systemctl\\\\s+(stop|restart|reload)(\\\\s|$)\",\n    \"(^|[;&|()\\\\s])kill(\\\\s|$)\"\n  ]\n}\n```\n\n如果你们团队希望连重定向、覆盖写入也一起禁止，可以再手工把 `>` / `>>` 追加到 `commandBlacklist`。\n\n`jumpServer` 字段说明：\n\n| 字段 | 默认值 | 说明 |\n|---|---|---|\n| `enabled` | 必填 | 必须为 `true`，`jump-exec` 才允许使用该连接 |\n| `promptRegex` | `Opt>\\\\s*$` | 网关菜单 prompt 正则 |\n| `shellPromptRegex` | `(?m)[#$]\\\\s*$` | 进入目标后 shell prompt 正则；默认不把 `>` 当作 shell prompt，避免把 JumpServer 的 `Opt>` 菜单误判成已进入目标机 |\n| `searchPrefix` | `/` | 搜索模式前缀（菜单输入 `/<hostname>` 触发搜索） |\n| `charDelayMs` | 60 | 慢速发送字符延迟（毫秒），防止菜单丢字 |\n| `enterStrategy` | `direct-then-search` | `direct` = 只直接发 target；`direct-then-search` = 先直接发，超时再走搜索模式 |\n\n### 使用示例\n\n```bash\n# 先按简称搜索真实主机\nagentsshcli jump-search prod.jumpserver \"app-api\"\n\n# 单机\nagentsshcli jump-exec prod.jumpserver --target app-api-02 \"hostname && uptime\"\n\n# 多机循环\nfor host in app-api-01 app-api-02; do\n  echo \"=== $host ===\"\n  agentsshcli jump-exec prod.jumpserver --target $host \"uptime\"\ndone\n\n# 拉日志最近 50 行\nagentsshcli jump-exec prod.jumpserver --target app-api-02 \\\n  \"tail -50 /www/app-api/logs/info.log\"\n\n# test 环境（IP 目标）\nagentsshcli jump-exec test.jumpserver --target 10.0.0.53 \"hostname\"\n```\n\n### 限制\n\n- 仅支持 PEM 私钥认证（不支持密码、不支持 passphrase 加密的私钥）\n- `upload` / `download` 不支持 JumpServer 模式（PTY 菜单环境无法保证 SFTP 通道）\n- 默认 PTY 宽度 200，防止长行被折叠破坏 marker 检测\n- 默认按“空闲超时”处理；只要命令持续输出，`--timeout` 会自动续期\n- 如需限制整次执行最长时长，可显式增加 `--total-timeout`\n\n## 卸载和清理\n\n更新到最新版：\n\n```bash\nnpm install -g @2red1blue/agentsshcli@latest\n```\n\n卸载:\n\n```bash\nnpm uninstall -g @2red1blue/agentsshcli\nnpm cache clean --force\n#删除配置文件\nrm -rf ~/.agent-ssh-cli\n```\n\n## 许可证\n\n[MIT](LICENSE)\n","readmeFilename":"README.md"}