{"_id":"remote-agents","_rev":"41-6b04ee87e1c6ed1f8577ce5002e84470","name":"remote-agents","dist-tags":{"latest":"0.1.42"},"versions":{"0.1.0":{"name":"remote-agents","version":"0.1.0","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.0","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/ObsidianMotorman/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/ObsidianMotorman/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"8da212b78263e363f35585e2d9700cb82e440216","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.0.tgz","fileCount":5,"integrity":"sha512-zhxv2zZ2fIW61ZtwJYzOUK6SMBpuwvOsqkDlrlTl+elO8rblzhahutIU/aQHKNflfAhDinYPXEmxBGRQEmtZuQ==","signatures":[{"sig":"MEUCIQDwHIeOxireCZ2uDkR9vf8yGq0GIaMuhbVqsoO98MAIowIgXcIZrsxIp+kOgh9PhUCC1tEQbj0aGyfBXUbJLlcv5A0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6780},"engines":{"node":">=18"},"gitHead":"8d4bc198dd6dcbf75751c53d1f450162f32af165","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/ObsidianMotorman/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.0_1781536807731_0.35030363023117195","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"remote-agents","version":"0.1.1","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.1","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/ObsidianMotorman/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/ObsidianMotorman/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"8018e0d749caa49d770899eafdafa2680010b44b","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.1.tgz","fileCount":5,"integrity":"sha512-XsUjO2vhRNi+JXAksjmzmhbaHbQvBhW6mdcWmgcnmhVYDX1h+3RAvxS3dKCiZDPIpr5oiOTUhRDXZrf2EhuJHw==","signatures":[{"sig":"MEQCIBtuh06EYWxkR5/MG4BxJxRu6ZpmXfrFfTKYoWE3OlMlAiB+DgtDT0+vanD/TjSu5iNWLLKvCWPLMIMM5reFFpSJYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7422},"engines":{"node":">=18"},"gitHead":"1b926772273157d74bef37f1861e180312c4cdad","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/ObsidianMotorman/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.1_1781538696539_0.2058360857465551","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"remote-agents","version":"0.1.2","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.2","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"4806d49cc3d65ff902e0f82c7b32729af6113a56","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.2.tgz","fileCount":5,"integrity":"sha512-Wi7HWTdZYgaSn4Fiy/JV+dIgq9slm+OrmeELwSbF+CBZlACEvN1Cks5XhnYyPEESeuMChU6jr5QykHstjBqstg==","signatures":[{"sig":"MEYCIQCHBYPH2jk9h2J8FrothhzcpTVV/FQNQlmppIZ72wFtUQIhAIX15SlcxrMn01v4Xl2HuniswCFVlpRsTlb/lDs5H642","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14139},"engines":{"node":">=18"},"gitHead":"236ff6a0c1e207dfde1b5fa8f795f148468892d1","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.2_1781603830874_0.23357455123949755","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"remote-agents","version":"0.1.3","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.3","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"5122486188d3a6e8832848360ccd397376dc4902","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.3.tgz","fileCount":5,"integrity":"sha512-s98jM0SHyx95j7hTJtsyjef1e9onJ+JJ78q4CGBeU9TbqDQsDm49sJGCSfMCoXeoNhVWXuSO05IU6POt+M/6qg==","signatures":[{"sig":"MEUCIQDieUAUodnFuYr5rnDZwa9OkpcDCTd5qH4U8/dMhxLruwIgLsCVYVmVdYb9iC8vED/Vv4sYMJYKLDXKWC996cL1rJ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14139},"engines":{"node":">=18"},"gitHead":"0797b4e0e1bb9b291aeef71bfa16ca40c23edb83","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.3_1781610698758_0.18013235157608087","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"remote-agents","version":"0.1.4","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.4","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"da84ecdf9eaa82693282915b85519c255ee5ae58","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.4.tgz","fileCount":5,"integrity":"sha512-U5LvPi6Ioa5mcXjW16axlSFMxrbRMa7E3mCRUeM5Y5hZ5k9IeCJpLdC6Gm+a7kZDK1nmntwKv+p/2gFm3c1DfA==","signatures":[{"sig":"MEUCIQDlkZuppig0T1XkTHVUzS/xQJlWzRrWrE2uq3IFGK4IXgIgMM8PCcL+IvpuvY+SsTMiCONPvSFHTGVQufcxb30D5Zo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14139},"engines":{"node":">=18"},"gitHead":"242cae31434784ad8f05688b9235073c080503ba","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.4_1781618128451_0.10789565677420643","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"remote-agents","version":"0.1.5","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.5","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"c1d1b211db85c6c16663c65d0f90be39140164b1","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.5.tgz","fileCount":5,"integrity":"sha512-kUeV4DoYcOZre1nZWG7xk14mDlXVisknMX8QW2euReKJn6FOcJrLeMLM+6RLtvEiyJ+GPQc7POPh3OGOYjMPGA==","signatures":[{"sig":"MEUCIBdwXHA2KWCqDMmd7ybNLfeQZoZXtImnESmivHc0ijAKAiEA8oadXdgyzZiy4BWW6YJWjDHKrlvUhMZbSuvXUJpKhZk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14139},"engines":{"node":">=18"},"gitHead":"7bae8a737874d881e958f6c86b9657a2497866a6","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.5_1781623149681_0.8210920459321462","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"remote-agents","version":"0.1.6","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.6","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"e50983a27d9b38bcb2750ad9c8d5fae3faad6035","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.6.tgz","fileCount":5,"integrity":"sha512-IcP9WiseSdbyyu6BHR01Hjj2vjyCupEqqX8o5XgU7MX3u6lRrs1KVuQeqIN0YOVM+8DkMBLNIiCLXHwS7nifjg==","signatures":[{"sig":"MEYCIQCk4Nsd+ZalO1lsN+xxbmZH4z3ZyVIEcksEWcxphHhFYwIhAOX+nxojHZgosVMnudgr2zINhkN3Cc1oOP1BFeT5GSvc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14139},"engines":{"node":">=18"},"gitHead":"b3d1406b693e534d0d60cb1cbea8993780930f85","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.6_1781639809397_0.8299173264043012","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"remote-agents","version":"0.1.7","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.7","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"989e200f879ad97776a8bc2f50d736b40bf4a253","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.7.tgz","fileCount":5,"integrity":"sha512-1SAfCU1cLS7UjbPsGXNAuYyEh1fOce/LF058jwa7Llo7ko+ocOBqM1HoAWjThVHYArqc+l+137iiVQ/15X8hpg==","signatures":[{"sig":"MEUCIHT4gzP3+zANSXuhbU6ccET5f8QvKbKBe8z0K2/4Om2HAiEAlgDBYs+80MSbjNjeWDxK/N4k8KEUaHiRo1YkR7ogriE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14187},"engines":{"node":">=18"},"gitHead":"d149221dfa97815353d71cd1ec8178a4107b025d","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.7_1781640525867_0.5733380521734504","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"remote-agents","version":"0.1.8","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.8","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"cb8d70cac888dd453f6120eefc7ce165132164be","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.8.tgz","fileCount":5,"integrity":"sha512-xtDI/NKeY8OUoNvbwNbVMKB1OoNrOhBkbqOo/RZos3OoLA6C9yzXIFhezxJT4hL+UxuzwyJzg7BEIhUWrD5rhg==","signatures":[{"sig":"MEUCIQD0FSpWv1Y7cg+7bajWA3aCZonNPnEBDZYnmrDCuHdG3AIgZx9Fg4540Px4uYyXRUoh1k/lymO4esfAcuDrIGB67xs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14797},"engines":{"node":">=18"},"gitHead":"22f00bc5c44f43c56d14ce3695653bfc7fdb2616","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.8_1781688154058_0.759581313780832","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"remote-agents","version":"0.1.9","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.9","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"74f0e6c7d10d838730048995741302634bce1300","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.9.tgz","fileCount":5,"integrity":"sha512-ZGUG0CA7P8X30Czi9btL3z5CBYA5Z98oiWwfAeJxltBQAaZgIyiIyanrxRrJgAlMbzlQ0+fm3yIRvUlDEe5c/g==","signatures":[{"sig":"MEQCIFVxL9NmxRLXDI2BR9P/ZchpA+XFPTcvh03G7DZbDONxAiB2lmLzZ/Bdmr0ie9Mm3ggImkuZbQhc4K3C1iiBoP6KzQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14797},"engines":{"node":">=18"},"gitHead":"fb4eeb3d8be5aea63dc29a19b23c199fc3ebdfd6","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.9_1781703936423_0.13118516866772922","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"remote-agents","version":"0.1.10","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.10","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"7c6462f906b9d45e6e297b8c3ba21da5979c185d","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.10.tgz","fileCount":5,"integrity":"sha512-ee0EiDZsrptW1KgA1krpWRU/bV1tVPVpcjoYKTQ9IAZXaGGDFdP7YIKXI6kApkCQUlegF5r+qe2/7/0LNM46Fg==","signatures":[{"sig":"MEUCIQCs3jLn9+FgqofNNxwUD4FMLyMaEt+rFKOvsOVfIHB37wIgaDxZafN9RCVokpUb3/V0e+7YY2M4nQVjU6boKyb9Odo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25486},"engines":{"node":">=18"},"gitHead":"772fb7ed4ec2caa33fd546f2293874053d214253","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.10_1781712303162_0.27064579292168767","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"remote-agents","version":"0.1.11","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.11","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"a773a51e8e85f52afb6f5f674a50bcc21e4674c3","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.11.tgz","fileCount":5,"integrity":"sha512-G5T/kks4f7cCW1FmFGkGXGHd56Gj7L3LE5qI1qbv2E8yVFIfrB+jF0lnDDIwZsa/uRCN2mDWiKRXiZrj7ZWY4Q==","signatures":[{"sig":"MEYCIQD0WHHDoamJhtSO3GPy7sylLCZfbZCLN3fl+b9pv0qBqAIhAJCwXaweM7EnvGJFGP48CjGPZM97hAorh6Ywygz5nyTu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25486},"engines":{"node":">=18"},"gitHead":"c723ae340b672d2793b1fabb82cc1a39781b7302","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.11_1781715424566_0.10522524084486018","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"remote-agents","version":"0.1.12","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.12","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"39b986cdd4bf11f3981f8b2b8ab89564b0b641b4","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.12.tgz","fileCount":5,"integrity":"sha512-s2ocp63z0I+fRPPcl8WJVVrWgLyI3hfZg7aELko+r84NuAANaQI3i/w7LUMgX5lUwJNZOm4nhxGPlDcY6CZHcg==","signatures":[{"sig":"MEQCIEC4hcCyJrPXgmpDUwDJhRLmEXkyDOCtH099+uPhwdHXAiBco+2pjqBjKcXMdn29EBCeV8k0e8hNiv44UvqrFrXVlQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28447},"engines":{"node":">=18"},"gitHead":"cec601bc61aa3092fedd747c7217e1f321ea753b","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.12_1781772953569_0.886553446164944","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"remote-agents","version":"0.1.13","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.13","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"f7df9f7aadd741d26ed4a0b5e3632e5ffd7446ef","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.13.tgz","fileCount":5,"integrity":"sha512-i3XfL2iJ5yDWM4aCsyUdZi5ou60ANvd0WuJRHWWrAQJIe9IWkGnJN+iJSMritc9AVR8Iut2n67s3Gws+6hRipg==","signatures":[{"sig":"MEUCIAm2wcTdfVt4CUJlH6aV2tG5kMOMpbOoaYUSwdjFSYTJAiEAjbQyinBI2b3utumtMZ2czmCGoJNH776OFA1GayQdBmI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28447},"engines":{"node":">=18"},"gitHead":"3a35e4a543471b92f0d780d2d839f9484d091b4c","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.13_1781792739518_0.7438764741487711","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"remote-agents","version":"0.1.14","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.14","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"098e60eeab897abfcc0f93144186cf530755f66d","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.14.tgz","fileCount":5,"integrity":"sha512-cFD8xksN5XmP4Yc9eI3TJqolFNAinPULYUOskHJt301py6cR3okrJoPGWTF1aY7NeuydiyIijXiZourt/kInsg==","signatures":[{"sig":"MEUCIQC1W830RSYZBfYmBKxWHsuTLztiChrE7al0MRFABJ5IjwIgd2RheW2zNVpI7mH5N0GJR+1tXegUVJXlANav+zm9848=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28447},"engines":{"node":">=18"},"gitHead":"3f8ff56eafe8c84987d04df5e12471164f11c59b","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.14_1781954144053_0.015439840232797764","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"remote-agents","version":"0.1.15","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.15","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"a92e41d5efa01b29816cdb1c76731302912839d7","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.15.tgz","fileCount":5,"integrity":"sha512-rBvAJVp6jQOt04ATaJUPLnID/Pog95DuvkTPtTand2CvFIHMGc83IzVnrDBFRm7tdngkJ7n3BjOzLFpbpoCcPQ==","signatures":[{"sig":"MEYCIQD+20j7l4HILMl5sRYzSbvZe7m3wAu8I8L6OI/2zhN2zQIhANDAVcPkAsbJjPJS7w5LBf5rEim4jBvnlAkNJMZnmdC2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28447},"engines":{"node":">=18"},"gitHead":"0c2586208b93e06c291ca701f83cc97701e7cf6f","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.15_1781963331757_0.2777937427140036","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"remote-agents","version":"0.1.16","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.16","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"ed132abc9fa163ea2e5a8b654598783311c9d392","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.16.tgz","fileCount":5,"integrity":"sha512-gUo5DkSWybLZL7Qxpn+d7mSgGT8QVHBeB9CRrCKYQjptO8ejcdt0jK1dzljJ4/3iP40YT1utzNhSL544mNmheA==","signatures":[{"sig":"MEUCIQCgmuv1IBpHK8WgnJWFE8hHhFMurXQrg/CRP3QSZQzELgIgYJ9Ez/bAthU69ns0/3xFs7inCCfni6qZRrq/xPozJzw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28447},"engines":{"node":">=18"},"gitHead":"1f7b66b87fb29440054c95b5d8909c698ea6a76f","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.16_1782023397592_0.3978698897700028","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"remote-agents","version":"0.1.17","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.17","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"8aa6bac94bd8226cb34b407d0e8271c419af23f8","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.17.tgz","fileCount":5,"integrity":"sha512-tYYjS2NLBjPtMAJUMIdM7Ki/+hfYxApiMv98SwsNt1CEN6+H9BPAfkrBvZ59jXcRqZ7tvxUmxvzgXv0ptN+GbQ==","signatures":[{"sig":"MEUCIDaCcJ+xRRsSFwkK6Eq1yovwpB2+esdmRk8DQc3vMMQ+AiEA+nkALwTJV8cF1u1T8WBA3hgWj+NhOrud0iKcSLrA+l4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28447},"engines":{"node":">=18"},"gitHead":"f6601178e2136503c98e7478dc40ee37086b4f1f","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.17_1782024106025_0.7639294337374334","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"remote-agents","version":"0.1.18","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.18","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"354e3002dd588e8905b8319f62e4163963dcb4f6","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.18.tgz","fileCount":5,"integrity":"sha512-Ge+JJ4iyt8X/UA+k4ZKfFcazOrRrk3ChBsfGMi5Q5II6a81HxpHKXv+qf3+eklRzHXlrTa4MUgnSRhLIQLUwAg==","signatures":[{"sig":"MEYCIQDXU6aTLLdG07/GE3iNot7FQwHlxAFwEzSTw5iNNF8vBAIhAJMG5IprtHYOMklbNMO2j0/PwSaI297f39lcPKeU1R+e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28447},"engines":{"node":">=18"},"gitHead":"1dae0e196b04812a812cb35f24a26af8b8cbd83d","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.18_1782024882704_0.7205225299117681","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"remote-agents","version":"0.1.19","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.19","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"3ad9f0295cc3e469ce4be600a8ac402cb41d0b09","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.19.tgz","fileCount":5,"integrity":"sha512-qIMwVoJkzHidItF77FtuXrbcfGk5ovcpXPr+BcC23BiZn1rs1obYotRlvfUMdJUw9PpG9WEOgVfXRLNFPQkA3A==","signatures":[{"sig":"MEUCIQDqpoDI2jAPdwdXKyPKFCR93KVEK9vw3fTNpEbE7oZodwIgHjmGEyjJJDu6TsCumc/b4iDsDLdx0mAZaU03b69E5Rw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28447},"engines":{"node":">=18"},"gitHead":"5af955cd23ce80c2bdec2246bf611c5d1dabe459","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.19_1782025482483_0.06701250805375358","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"remote-agents","version":"0.1.20","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.20","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"aafee6a6a2580ce97b755aeaf9a550d3cf968cca","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.20.tgz","fileCount":5,"integrity":"sha512-K+t4QqK+5HW6J41TobKIUyvGpctazZeHObJ12zICzCoxKtsZmNFqt/yZ/K2yFYdxc+xKW3bszW7GodUSUh5oAw==","signatures":[{"sig":"MEYCIQC4xIoU/JHv5pcVThAJ/ZqOuz6NpekQUV5OuR8/MAtT5gIhAIrVqAB6DTYyKp0hljUFE7I3Wlx7jBmjT9seRSfnFeh4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28447},"engines":{"node":">=18"},"gitHead":"d24f9604fc18d5515e9d26440e8d2148a6129ab9","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.20_1782034026071_0.8920228546360836","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"remote-agents","version":"0.1.21","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.21","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"ce54da261f5e1ed5066be6012417a689d3f4e97b","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.21.tgz","fileCount":5,"integrity":"sha512-5VwfxtbyrCKnc/WQHZLedWDqCAUZrujSOoqen5ocDoa6yjR6Fr6Yczqp/I+yPzM8V6pHDLz9yYHZNSVFO3OHqA==","signatures":[{"sig":"MEUCIC6XGekhamNIby7LMJYbxBGkh+f1wXGxsnBRmwTh4erDAiEAy5bMALQ3JOl4qMYYlB2ziCk+rcZmzB34KGebSSVppOE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28447},"engines":{"node":">=18"},"gitHead":"47c2caff7abf9503176e8303a469c21ded588c14","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.21_1782040507110_0.8722410110044927","host":"s3://npm-registry-packages-npm-production"}},"0.1.22":{"name":"remote-agents","version":"0.1.22","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.22","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"d86344b864e4cbcd914beebd07e052cd7433c62d","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.22.tgz","fileCount":5,"integrity":"sha512-7sC5WZil09JyAWNeHS2bgr0Q//Ue1BeTDHV/v56ksyN6SZzcwLDb9ZntNbNzGGY8IXZOhnQ0CUVoGGBF0NjYSA==","signatures":[{"sig":"MEQCIBHW6GfMSzwaCQMBwqzUm5pMfpL+2SFF2D/hIoq3eInGAiAEVMl+tCMswS7KVkcstyVTTC8IgmfG77O7SV7EVR57uw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28447},"engines":{"node":">=18"},"gitHead":"96078d7520191ac229c5be666f268397dba623a9","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.22_1782041071630_0.9925834283075692","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"remote-agents","version":"0.1.23","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.23","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"4296ceef1698038de99cb1ca090c973909268718","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.23.tgz","fileCount":5,"integrity":"sha512-wRh/otWqd45HvK+avBB8yfjlB0Eh8DE/jcYCLAH81rNSve7H3tsowfyvSeu9jXdzKuzpjqBg3MFQw05V+fBZ7Q==","signatures":[{"sig":"MEUCIE2RYZSnIfUd4ecZ7dJhQPw/cMBM+PjuNbuf+a+iRLp3AiEAsqGFWozFSrqeAkFTqTbuRM5fdTInl8RKQGWDfpKyaic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28447},"engines":{"node":">=18"},"gitHead":"a6c444f3424fbae338ad49b53015720a9a1365a9","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.23_1782042239920_0.9621325936918903","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"remote-agents","version":"0.1.24","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.24","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"36f67e16da886c9a58bb7c4c6113cb6a62dfa162","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.24.tgz","fileCount":5,"integrity":"sha512-1MRSJAb0/KMARp1349Qk5GKoupXZp328BIa40ULJjmFOW9Zpe4+B7YrwBwQ+rB0qCafiFRrFJG0pZrQ7EKVaNQ==","signatures":[{"sig":"MEYCIQDM1YITeB5w/ar/xvEFIAcM4OUH/vvOJrUFJN9XZBsKqAIhAJozX8FJFzJ7cvSvxZJIfJlNIajXIZ13dDekOfz0lP6H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28447},"engines":{"node":">=18"},"gitHead":"7c810b5005beaf8d85e7c33996e06820fb5cb5eb","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.24_1782044380541_0.5256236268977055","host":"s3://npm-registry-packages-npm-production"}},"0.1.25":{"name":"remote-agents","version":"0.1.25","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.25","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"d7a52e48ca78da6316787255035c17b39fb22d2c","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.25.tgz","fileCount":5,"integrity":"sha512-Em7F0TNM4r5bjEHCoB71ZV8pT2WqJJ1hyF18lNGDsb5wFpaKVw2wb8jvgqdoMQyMMDAL360AHbjxhMqCHHuDvQ==","signatures":[{"sig":"MEUCIQChaPRvbmTTMo+sb7Ls2P6Rag9wjLU7lChXELukHzkXJQIgMqZbPhWcOADymEsy8dhL3V6mqWVeG0BtDlFLzQv2XHE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28447},"engines":{"node":">=18"},"gitHead":"dc1c4c8f8049495f1562f62fd9ed3da16d48cc73","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.25_1782056640506_0.03323178441979979","host":"s3://npm-registry-packages-npm-production"}},"0.1.26":{"name":"remote-agents","version":"0.1.26","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.26","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"f3921a96d73f13121d0d1819597638d40cc303f4","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.26.tgz","fileCount":5,"integrity":"sha512-4tIGpb5mLNmRzOkudMmE91fH5HzzZbph3fQ9pMHPodes5srlgzCk15jhLboLA1bqIKH7gT7vC1At7gh/5oXCMg==","signatures":[{"sig":"MEUCIQClGkdl6G3VN338Q8viam41iaRH8Zfbl4VLWjZM+dJYYAIgPtAEhASFkp3ep4kFz2Z3XrnWsUtzw03VgSq3up/SczA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28447},"engines":{"node":">=18"},"gitHead":"1eea2b2755ed4b523f7867b07593b4060d3da86f","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.26_1782090596955_0.616360574716587","host":"s3://npm-registry-packages-npm-production"}},"0.1.27":{"name":"remote-agents","version":"0.1.27","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.27","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"0e8b63316cfb05471f228227dfba1fcdc6b94a54","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.27.tgz","fileCount":5,"integrity":"sha512-yJaneuYFoKTGRxcIyvVNN6KLhV3YEaP6VE4W/+zl6vcVlOZ6Ajo8+F7+Lv5jnhmx0/oO1SaAdlbY15HYQ6xxJQ==","signatures":[{"sig":"MEQCIEfHVx4dpoqWS8rJMsbBoL60zh5mq+h7zNT4n/zFznRtAiBFyLHTPczEB0JQ2xkP7OL2XMz7kCkZxIvPLSF678ULNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28447},"engines":{"node":">=18"},"gitHead":"492b973ddc92d08dc7e3d5e41f6ce73064bd9202","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.27_1782093032409_0.0832667759814183","host":"s3://npm-registry-packages-npm-production"}},"0.1.28":{"name":"remote-agents","version":"0.1.28","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.28","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"8b5bcb50f379261772646c8c94d9b04ce584f1d4","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.28.tgz","fileCount":5,"integrity":"sha512-UgaM53MwswrZ48+O03lemmfNUCMAlLIj+IfegG9ZbiwfDGbxepSuBNdob40sIWajkTWlPySSTIOAcx/nw5v8GQ==","signatures":[{"sig":"MEYCIQDj/ttusp3hVBQPlJDh1Uokmk02vMkDv/tGviNZpcYmlwIhAOE6W/L5AfWP0l3vl+FDHsVAvhE2xGXWJ2UmRdLwqibI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28447},"engines":{"node":">=18"},"gitHead":"a133be7152d80a506729196c40cf34741d93bcf6","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.28_1782097078179_0.39226996451993523","host":"s3://npm-registry-packages-npm-production"}},"0.1.29":{"name":"remote-agents","version":"0.1.29","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.29","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"fac6c4e13457576737a02a79e221508afc78ec2e","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.29.tgz","fileCount":5,"integrity":"sha512-sYZizkiMPdsvHImaov1ad8cpuNBtjfkgX36OYJCO/3Ufe159ID0Yvph8VrEbi3zDZzVPUqgMjAIOpcf8ZJ+UpQ==","signatures":[{"sig":"MEYCIQDnz/8rJxYufv59Kni47cNOiLLTHL9UpymLi5VJ8x97XAIhAI5OEqSH9S5evGTET17d5hWTaNouPzOGXE7JcP1M2xki","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28447},"engines":{"node":">=18"},"gitHead":"ad1f87c1ce5ef6759b3139dbde5a4572500b6b5d","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.29_1782110826845_0.6583024394605033","host":"s3://npm-registry-packages-npm-production"}},"0.1.30":{"name":"remote-agents","version":"0.1.30","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.30","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"60ebdb028394ffc935b891d84123caf0a2630e06","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.30.tgz","fileCount":5,"integrity":"sha512-2UlNwK5AmhtHZr6IjphZtTPmGXoEi8pUKv21eo4O4zAFJo1VCnMq+au8CYAHIXJTVMbdGKQ5giwsRaTqoZARKw==","signatures":[{"sig":"MEUCIFfBDcZDuFnXgXxPOxwzRJgncdunS6IZ+mYyyNOuAZc6AiEA6WaY2vNx/NTTrttrN6Y1XUOsnDUYGQ99fbOYG/ZvTWY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30012},"engines":{"node":">=18"},"gitHead":"d51ceec8bdeb58c79f0f43dd9fcc74d5568033c2","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.30_1782130091222_0.4187694590235225","host":"s3://npm-registry-packages-npm-production"}},"0.1.31":{"name":"remote-agents","version":"0.1.31","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.31","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"3c612c8949294307e094f68781c7d50900719d97","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.31.tgz","fileCount":5,"integrity":"sha512-nYpOb0Rcq36qz+99dEXee4/6vdhNnosTkJoyY+TTPCvzAyb5mrsWi/5KetxuHoRp+aGD6a5gaXpuJ98bPFN+cg==","signatures":[{"sig":"MEQCIBx5ZZS8bk0A7APJ0RshmkG2pQjVqpgr4pRt1MUyWqYfAiAQc9S72znHCJkfCWDqM0zBRM5Bc3xDQf+IAUp4sEAl+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30012},"engines":{"node":">=18"},"gitHead":"4a91e532e3957aba2a38ffeea13e7064df226968","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.31_1782244200790_0.6456763579400393","host":"s3://npm-registry-packages-npm-production"}},"0.1.32":{"name":"remote-agents","version":"0.1.32","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.32","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"5b91b92bc476fcfca4f650f194b39a7e352059fb","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.32.tgz","fileCount":5,"integrity":"sha512-bJLwrPvcme2zJxmDgcK+qIdb/RMWRgeYZJ+9ZvVnxGZuhFpiIZsGuCd6qGU1chtygz5X3UPGaM7+57WtgNr+Bg==","signatures":[{"sig":"MEQCIHgtMgO3heOpcMzslm5pRe6+5y+rFrxv2MftPlIUY+zvAiAM8+ydqzy17QWjYtf3QOb4b4pzls7o8ulPrEFd12iCUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30012},"engines":{"node":">=18"},"gitHead":"cb23cfd07fbfcb74cb57e12a778c1fbf8a648781","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.32_1782500242974_0.1588343837398727","host":"s3://npm-registry-packages-npm-production"}},"0.1.33":{"name":"remote-agents","version":"0.1.33","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.33","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"4db30f45a16be99d9b3dd45e8db780dcf9a20192","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.33.tgz","fileCount":5,"integrity":"sha512-bTg23ydnq4wUCSvE/+r6AwGgRQuiQOjm/07ZmQjvlor1blLiVJcbzluOz9/G0L1foYMu0M4Ipgk5ZwbcDznXeg==","signatures":[{"sig":"MEUCIQC8gHWhEwpGAnIcu1YsF77rUMowUFjpC6BhIOneLUEJRQIgJKwPSwdFq7o8fEDEsaIVOND3V8K56ZjyJjMH6RyOlB8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30012},"engines":{"node":">=18"},"gitHead":"c5755c6c50277051f01118be73fb7aba89f1f44b","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.33_1782500684055_0.19031103107247693","host":"s3://npm-registry-packages-npm-production"}},"0.1.34":{"name":"remote-agents","version":"0.1.34","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.34","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"814a1791d9b3fd254d4093994a125a913b7b3351","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.34.tgz","fileCount":5,"integrity":"sha512-Dl0nx/VJDAByP5TVYD2iWJ14Y20w1r40lG5UjHESgi4VqRIZLq0S+M7bmjt0J3m8qdxgHEkG5QMNreeNN2qXQA==","signatures":[{"sig":"MEUCIHqIjkHw+K/PNYr5fCG3OO0nJoteSsUQjQu+I+cjeqz3AiEA00S0Tzib0Bl+7a6rtAbzrJgSdp2JTqlVKY512zOjnmo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30012},"engines":{"node":">=18"},"gitHead":"4ba5d03276ff29f48708eb18ea35873e79ed160e","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.34_1783538489502_0.5771271084730765","host":"s3://npm-registry-packages-npm-production"}},"0.1.35":{"name":"remote-agents","version":"0.1.35","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.35","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"bfc509b0c8d9e4a5dd3e46cb7b6e9db0cece634d","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.35.tgz","fileCount":5,"integrity":"sha512-n9ySd8zlTljB3ABdSLWKl79uTcIQVbbIusmIit0Rg4ay5ZC2LvM3Db6gTbNgFx7hhib0WZ3O9skp2IJvmdktVw==","signatures":[{"sig":"MEQCIHWeKD879m/re3zoV7fEoR6vphkKbrhvnErxBL8/xHjVAiAthv6z7sQ99Ue9bwUVwzUrAU23AP9cWCIAWAbgaIWexQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30012},"engines":{"node":">=18"},"gitHead":"f51f7707033416938f0aa97c0774bf54624d9fe6","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.35_1783544180645_0.7557437079781293","host":"s3://npm-registry-packages-npm-production"}},"0.1.36":{"name":"remote-agents","version":"0.1.36","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.36","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"108a492e9c43666749e3189965d639eeace5cb31","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.36.tgz","fileCount":5,"integrity":"sha512-0lTzQHBS5G2pv84gONUxlmvxvqX3R7PbZQKPXqR21fEy/xkLXAK/k3l6NeeT40t3T6uWYZNLs+HqyvSHvjOtUA==","signatures":[{"sig":"MEUCIB3fqjUP83XG/ucjNBjSNl4sxR8cb18WUoIBLqv/8eXWAiEA0yGyNCjZpFT7IofE7/eoRNIxwlw05Lq3SJ/2zFiqH7A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30012},"engines":{"node":">=18"},"gitHead":"4aaec137bcd3653284d2552b6538e7b9c1ab94ac","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.36_1783854268016_0.23975736117192836","host":"s3://npm-registry-packages-npm-production"}},"0.1.37":{"name":"remote-agents","version":"0.1.37","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.37","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"82d96620928b245c7324bdf103555b5a59443086","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.37.tgz","fileCount":5,"integrity":"sha512-npsJKhE1KubwCeJbnKatY261G5rb2OzMepFwNQ88OF803GcwoEz8LmqixKlmShlfJ63p137qazoRyiBd8eOhcg==","signatures":[{"sig":"MEUCIAc1M/R/LVW2+b/5OrKRa+ApdjBdrMgwbdl+E6aYk4cVAiEA9XSWaHgIi+TX07u+Bo66cD0ilrmfKYC34akzV7uOSS0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30012},"engines":{"node":">=18"},"gitHead":"8598caee0b22324e4dbb61fa4e733dfac105a5a3","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.37_1783855488101_0.3708272410604594","host":"s3://npm-registry-packages-npm-production"}},"0.1.40":{"name":"remote-agents","version":"0.1.40","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.40","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"a53b4f4c2c96b3262e62dcbd3ed6ee03b9c0e1d9","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.40.tgz","fileCount":5,"integrity":"sha512-BSHG2xD+k0AccsLY3vDQuC1DWOwbwbBj0yBChgAkiv6aIGDoCU4uivbMn7FKfNhu5M2Cw1L+nCgx4F23IaxTAA==","signatures":[{"sig":"MEYCIQCdYzA5+dL0QeZvgwgBL/+bdVEfPND+jD5D2YlRbDaCnQIhAJtb3XIYTWRbwEJvG8HiY9GK2f5v2tbdp6HqHnhyTEsL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30269},"engines":{"node":">=18"},"gitHead":"88abe5b03eb76d9ad74e8900c5246dc04c208890","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.40_1787545707075_0.20736342926500506","host":"s3://npm-registry-packages-npm-production"}},"0.1.41":{"name":"remote-agents","version":"0.1.41","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"author":{"name":"47-ron"},"license":"MIT","_id":"remote-agents@0.1.41","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"os":["linux","darwin","win32"],"bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"dist":{"shasum":"1c7cb337bdf92b0a26aa43de0b4d391afc40d4f8","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.41.tgz","fileCount":5,"integrity":"sha512-V4KuY8cloAYSd8kprZAoW4rh+daQYs2CFraX2lP7HdbcvZ3UodkbEQLTLOE4RGNPEfznzNDlWc80JbkimGdOsA==","signatures":[{"sig":"MEYCIQDuzMtQNvN4r9Z/h3BgjYjH2I0TBLyywWqHszwU3qkq/QIhAJTDLQBbUNQhTBCJpp8QDf2S9Eis/aZYZxNN+VKoH6nm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBVTbKamGY1VHCxjwRp85W9eWjNiPrIqe9qBmFTekwviAiBonqtfcHI8E8bg5wmnmTzAr8MiUsh1U0gHUhPRux6OAQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33072},"engines":{"node":">=18"},"gitHead":"c9a8576a53f6c78ce3a9ce96181fe0ae619bd36d","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remote-agents_0.1.41_1790067049386_0.8874091644517541","host":"s3://npm-registry-packages-npm-production"}},"0.1.42":{"os":["linux","darwin","win32"],"_id":"remote-agents@0.1.42","bin":{"remote-agents":"run.js"},"cpu":["x64","arm64"],"bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"dist":{"shasum":"3693c2619bb88eb9cff6a4d89dd0eefff7d1e6f8","tarball":"https://registry.npmjs.org/remote-agents/-/remote-agents-0.1.42.tgz","fileCount":5,"integrity":"sha512-aD69BcHD3j8Ltzp3Rq9bQdKJoR6gmTdOw4hp7MSMsXs5ECHjrz3ny98WLb686ZlKpkSGk2URdzeri3HuKhkHNA==","signatures":[{"sig":"MEUCIQDr+AGqkWFJzhXK2P+24gb8kX4hzxZ8hJyzC/gne/5nbwIgUkaUrTXkZIPMite5Wg+3gWN8SViNP1vGWZluNXr0BkQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCqccSyFO66Akb4PlyRYaea4K9D2igSmC2F0VMmX/s83gIgYIRWdR3yvq/55T2cieH96qutgHO2v+q2yl0MWIyp18c="}],"unpackedSize":34069},"name":"remote-agents","author":{"name":"47-ron"},"engines":{"node":">=18"},"gitHead":"82ae22f0a623643cc4868adc7fdc4f5df9be93c0","license":"MIT","mcpName":"io.github.47-ronn/remote-agents","scripts":{"postinstall":"node install.js"},"version":"0.1.42","_npmUser":{"name":"47-ron","email":"abraham_0x00@proton.me"},"homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"_npmVersion":"10.8.2","description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","directories":{},"maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/remote-agents_0.1.42_1790238699899_0.6143350849514926"}}},"time":{"created":"2026-06-15T15:20:07.558Z","modified":"2026-09-24T08:31:40.320Z","0.1.0":"2026-06-15T15:20:07.872Z","0.1.1":"2026-06-15T15:51:36.702Z","0.1.2":"2026-06-16T09:57:11.022Z","0.1.3":"2026-06-16T11:51:38.888Z","0.1.4":"2026-06-16T13:55:28.628Z","0.1.5":"2026-06-16T15:19:09.839Z","0.1.6":"2026-06-16T19:56:49.529Z","0.1.7":"2026-06-16T20:08:46.022Z","0.1.8":"2026-06-17T09:22:34.282Z","0.1.9":"2026-06-17T13:45:36.565Z","0.1.10":"2026-06-17T16:05:03.306Z","0.1.11":"2026-06-17T16:57:04.710Z","0.1.12":"2026-06-18T08:55:53.706Z","0.1.13":"2026-06-18T14:25:39.679Z","0.1.14":"2026-06-20T11:15:44.214Z","0.1.15":"2026-06-20T13:48:51.902Z","0.1.16":"2026-06-21T06:29:57.745Z","0.1.17":"2026-06-21T06:41:46.188Z","0.1.18":"2026-06-21T06:54:42.846Z","0.1.19":"2026-06-21T07:04:42.628Z","0.1.20":"2026-06-21T09:27:06.216Z","0.1.21":"2026-06-21T11:15:07.248Z","0.1.22":"2026-06-21T11:24:31.795Z","0.1.23":"2026-06-21T11:44:00.187Z","0.1.24":"2026-06-21T12:19:40.683Z","0.1.25":"2026-06-21T15:44:00.662Z","0.1.26":"2026-06-22T01:09:57.085Z","0.1.27":"2026-06-22T01:50:32.546Z","0.1.28":"2026-06-22T02:57:58.319Z","0.1.29":"2026-06-22T06:47:06.988Z","0.1.30":"2026-06-22T12:08:11.377Z","0.1.31":"2026-06-23T19:50:00.929Z","0.1.32":"2026-06-26T18:57:23.117Z","0.1.33":"2026-06-26T19:04:44.287Z","0.1.34":"2026-07-08T19:21:29.645Z","0.1.35":"2026-07-08T20:56:20.795Z","0.1.36":"2026-07-12T11:04:28.183Z","0.1.37":"2026-07-12T11:24:48.243Z","0.1.40":"2026-08-24T04:28:27.223Z","0.1.41":"2026-09-22T08:50:49.467Z","0.1.42":"2026-09-24T08:31:39.986Z"},"bugs":{"url":"https://github.com/47-ronn/tunshell_mcp_agents/issues"},"author":{"name":"47-ron"},"license":"MIT","homepage":"https://github.com/47-ronn/tunshell_mcp_agents#readme","keywords":["mcp","model-context-protocol","remote","agent","fleet","ssh","devops"],"repository":{"url":"git+https://github.com/47-ronn/tunshell_mcp_agents.git","type":"git"},"description":"Unified MCP server for controlling fleets of remote machines through AI agents (Claude, opencode)","maintainers":[{"name":"47-ron","email":"abraham_0x00@proton.me"}],"readme":"# Remote Agents\n\n[![CI](https://github.com/47-ronn/tunshell_mcp_agents/actions/workflows/ci.yml/badge.svg)](https://github.com/47-ronn/tunshell_mcp_agents/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n\nA unified, [MCP](https://modelcontextprotocol.io)-compatible system for\ncontrolling fleets of remote machines through AI agents (Claude, opencode).\nAgents connect outbound to a relay; an MCP server lets the AI run commands,\nmanage files, drive git, schedule tasks, and orchestrate the whole fleet — all\nover end-to-end-encrypted channels.\n\n## Features\n\n- **Single Rust binary** (`remote-agent`) — runs as an agent daemon (`run`), an\n  MCP stdio server (`mcp`), or installs itself as a service (`install`).\n- **End-to-end encryption** (AES-GCM-256) on by default; the relay forwards only\n  ciphertext.\n- **Safety modes** per host — `plan` (read-only), `edit` (writes with backups),\n  `bypass`, `disabled` — with path/command allow- & deny-lists.\n- **Fleet as one computer** — run any operation (`exec`/`read`/`write`/`git`)\n  across all agents, by tags, or by OS family; results aggregated per host.\n- **Distributed MapReduce** — partition data across the fleet, map with a shell\n  command, reduce the outputs, with per-partition retry.\n- **Autonomous mode** — delegate AI tasks to a host that runs them with its own\n  credentials (token-saving orchestration).\n- **Two interchangeable relays** — Cloudflare Workers (Durable Objects) or a\n  self-hosted Rust WebSocket relay; switch by changing `relay_url`.\n- **Direct UDP data channel** (QUIC) with hole-punching and WebSocket fallback.\n- **File & folder transfer** host→host over that channel — single files\n  (`send_file`) or rsync-like directory sync (`sync_dir`), SHA-256 verified.\n- **Fleet-wide AI-chat history search** — every host indexes its provider\n  transcripts locally (Tantivy/BM25): claude, opencode, codex, cursor,\n  cline/roo/kilo, zed, gemini, qwen, goose, continue. `session_search` /\n  `fleet_session_search` return ranked, cited snippets with a jump link to\n  the exact context window — instant recall of past decisions, solutions, and\n  failed approaches across the whole fleet.\n\n## Architecture\n\n```\n┌──────────────────────────────────────────────────────────────┐\n│  Any MCP client — Claude Code / Desktop, Cursor, Cline, Roo,   │\n│  Kilo, Windsurf, Zed, opencode, Continue, Goose                │\n│   remote-agent mcp  (Rust binary, MCP stdio server)            │\n└───────────────────────────────┬──────────────────────────────┘\n                                 │ wss:// (control + UDP signaling)\n                                 ▼\n              ┌───────────────────────────────────┐\n              │   Relay  (rooms route by token)   │\n              │   CF Worker or self-hosted Rust    │\n              └───────────────────────────────────┘\n                 ▲              ▲              ▲\n                 │ wss          │ wss          │ wss\n          ┌──────┴─────┐ ┌──────┴─────┐ ┌──────┴─────┐\n          │   Agent    │ │   Agent    │ │   Agent    │\n          │ (daemon)   │ │ (daemon)   │ │ (daemon)   │\n          └──────┬─────┘ └──────┬─────┘ └──────┬─────┘\n                 └─────────────┐│┌─────────────┘\n                          direct UDP / QUIC data channel\n                  (hole-punched peer-to-peer; bulk file & folder\n                   transfer; automatic relay fallback behind NAT)\n```\n\nTwo planes: **control** (commands + results) and UDP **signaling** always go\nthrough the relay over `wss://` (the relay sees only ciphertext); **bulk data**\n(`send_file` / `sync_dir`) rides a **direct UDP/QUIC channel** hole-punched\nbetween the two peers, falling back to the relay when NAT blocks the punch.\n\n## Workspace layout\n\n| Crate / dir            | Purpose                                                   |\n|------------------------|-----------------------------------------------------------|\n| `crates/shared`        | Wire protocol, AES-GCM crypto, UDP channel types          |\n| `crates/mcp-server`    | The `remote-agent` binary: agent, MCP server, executors   |\n| `crates/relay`         | Self-hosted Rust WebSocket relay (`remote-agents-relay`)  |\n| `worker/`              | Cloudflare Worker relay (Durable Objects)                 |\n\n## Install\n\n```bash\n# Via npm (downloads the prebuilt binary for your platform)\nnpm install -g remote-agents        # then: remote-agents --help\n# or run on demand:\nnpx remote-agents mcp --help\n```\n\n```bash\n# From source\ncargo build --release --workspace\ncargo install --path crates/mcp-server   # → ~/.cargo/bin/remote-agent\n```\n\nPrebuilt binaries for macOS / Linux / Windows are also attached to each GitHub\nrelease.\n\n## Running: one binary, two ways\n\n`remote-agents` is **one binary** that behaves the same whether you launch it\ndirectly with flags or an AI host (opencode / Claude) starts it as an MCP\nserver. Connection settings resolve identically in both cases:\n**CLI flag > `REMOTE_AGENTS_*` env var > `config.toml` > default**.\n\nIt is a flat **peer network** — there are no controller/agent roles. Every node\njoins a relay room as an equal peer: visible to all, able to dispatch work, and\n(unless `--no-agent`) able to execute commands from others.\n\n| Mode | Command | The node… |\n|------|---------|-----------|\n| `run` | `remote-agents run …` | is a headless full peer (executes + dispatches), no local AI |\n| `mcp` | `remote-agents mcp …` | is a full peer **plus** an MCP server for a local AI (opencode / Claude) |\n| `hybrid` | `remote-agents hybrid …` | alias for `mcp` (kept for compatibility) |\n\nEvery mode is a **full peer that accepts commands by default**. Add `--no-agent`\nto make a node **send-only** (stays visible and dispatches work, but never runs\nothers' commands — for prod controllers or browser dashboards). `--no-agent`\nalso works in an MCP `env` block as `REMOTE_AGENTS_*` config.\n\nCommon flags: `--relay <wss://host>` `--room <name>` `--token <secret>`\n`--name <id>` `--tags a,b` `--no-agent`.\n\n### Keeping a host always online\n\nA `mcp` node lives only as long as the AI host (opencode / Claude) keeps it\nrunning — close the session and the node leaves the room. For a host that should\nstay in the fleet **24/7, independent of any AI session**, install it as a\nbackground service running `run`:\n\n```bash\nremote-agents install --room dev --token <secret> --relay wss://<your-relay-host>\n# systemd user service (Linux) / launchd LaunchAgent (macOS); auto-starts,\n# survives logout/reboot, auto-restarts. Remove with: remote-agents uninstall\n```\n\nA machine has **one persistent identity** (`agent-id`), and the relay keys peers\nby id, so don't run both a `run` service and an `mcp` session on the same machine\nwith the same id — they'd evict each other. Typical topology: target hosts run\nthe `run` service (always online); the workstation that drives the fleet runs\n`mcp` per session.\n\n## Quick start\n\n### 1. Run an agent on a remote host (with flags)\n\n```bash\n# Install once (downloads the prebuilt binary for your platform):\nnpm install -g remote-agents\n\n# Run as a peer agent:\nremote-agents run --relay wss://<your-relay-host> --room dev --token <secret> \\\n  --name web-1 --tags backend\n\n# ...or install it as an auto-starting user service (systemd / launchd):\nremote-agents install --room dev --token <secret> --relay wss://<your-relay-host>\n```\n\n### 2. Choose a relay\n\n**Public relay (no setup):**\n\nA free public relay is available at `wss://relay.claude-code.ink/` — use it to\nget started instantly without deploying your own infrastructure:\n\n```bash\nremote-agents run --relay wss://relay.claude-code.ink/ --room myroom --token <secret>\n```\n\n**Self-hosted (Rust):**\n\n```bash\nremote-agents-relay --bind 0.0.0.0:8080\n# agents/MCP then use relay_url = ws://<host>:8080\n# optional: --token <secret> to enforce ONE server-wide token (mismatch → loud\n#           auth_failed at join, and the /api monitoring endpoints require it);\n#           --idle-timeout-secs <n> to reap silently-dead sockets (default 90, 0 disables)\n# monitoring: GET /health, /api/rooms (all active rooms + counts),\n#             /api/room/:room?token=… (one room's agents — the room token is\n#             required; it addresses the token-keyed room, so a wrong token\n#             yields only its own token group, never the real roster)\n```\n\n**Room security model.** Rooms are addressed by `sha256(room + token)`: the\ntoken is the room's gate, and a host with a wrong (but self-consistent) token\nlands in its own *empty* room — it cannot see another token group's roster, no\nrelay-side secret or registry required. Clients always send `room` + `token`\ntogether, so nothing changes for them. Strong tokens are the only gate in this\nmode; with `--token` (Rust) / `AUTH_TOKEN` (worker) the relay additionally\nenforces a single server-wide secret and rejects mismatches with a loud\n`auth_failed`.\n\n**Cloudflare Worker:**\n\n```bash\ncd worker\nnpm install\nCLOUDFLARE_API_TOKEN=<token> npx wrangler deploy\n# → wss://<your-worker-subdomain>.workers.dev\n# optional (parity with the Rust relay's --token): one server-wide token that\n# gates every connection + the /api/room endpoint:\n#   npx wrangler secret put AUTH_TOKEN\n```\n\n### 3. Install as an MCP server (Claude, Cursor, Cline, Zed, opencode, …)\n\nAfter `npm install -g remote-agents`, point your AI host at the same binary in\n`mcp` mode (stdio). The machine joins the room as a full peer (executes commands\nfrom others) — add `\"--no-agent\"` to the args if it should be a send-only\ncontroller instead:\n\n```json\n{\n  \"mcpServers\": {\n    \"remote-agents\": {\n      \"command\": \"remote-agents\",\n      \"args\": [\n        \"mcp\",\n        \"--relay\", \"wss://<your-relay-host>\",\n        \"--room\", \"myroom\",\n        \"--token\", \"<secret>\"\n      ]\n    }\n  }\n}\n```\n\n(opencode uses the same shape under its own `mcp` config key — see\n`~/.config/opencode/opencode.json`.)\n\nConnection settings are resolved as **CLI flag > env var > `config.toml` >\ndefault**, so you can instead supply them via `env` in the MCP config:\n\n```json\n{\n  \"mcpServers\": {\n    \"remote-agents\": {\n      \"command\": \"remote-agents\",\n      \"args\": [\"mcp\"],\n      \"env\": {\n        \"REMOTE_AGENTS_RELAY\": \"wss://<your-relay-host>\",\n        \"REMOTE_AGENTS_ROOM\": \"myroom\",\n        \"REMOTE_AGENTS_TOKEN\": \"<secret>\"\n      }\n    }\n  }\n}\n```\n\nThe relay defaults to the public `wss://relay.claude-code.ink/`; only room and\ntoken are required to get started.\n\n### One-command client registration\n\nInstead of hand-editing each agent's config, let the binary write it. The\nconnection flags are baked into the registered server's args:\n\n```bash\nremote-agents install-mcp --client cursor \\\n  --relay wss://<your-relay-host> --room myroom --token <secret>\n# ✓ Registered MCP server 'remote-agents' for Cursor (created ~/.cursor/mcp.json)\n\nremote-agents install-mcp            # no --client: list supported clients\n```\n\nSupported: `claude-desktop`, `claude-code`, `cursor`, `cline`, `roo`, `kilo`,\n`windsurf`, `zed`, `opencode` (config merged in place, preserving any servers\nyou already have) and `continue`, `goose` (YAML — a ready-to-paste snippet is\nprinted). Add `--server-name`, `--name`, `--tags`, or `--no-agent` to customize\nthe registered entry.\n\n## MCP tools\n\n| Tool | Description |\n|------|-------------|\n| `exec` | Run a shell command (locally or on a remote agent via `agent_id`) |\n| `read_file` / `write_file` / `list_dir` | File operations (write requires Edit/Bypass) |\n| `get_info` / `set_mode` | Inspect / change an agent's mode at runtime |\n| `git_status` / `git_pull` / `git_commit` / `git_push` | Git operations |\n| `schedule_add` / `schedule_remove` / `schedule_list` | Cron-style tasks on a host |\n| `task_dispatch` / `task_get` / `task_list` / `task_wait` | Autonomous AI tasks run with the host's own credentials |\n| `session_list` / `session_get` | Browse the host's AI-chat history (claude / opencode / codex / cline / roo / kilo / zed / cursor / gemini / qwen / goose / continue); `session_get` fetches a transcript or a window around one message |\n| `session_search` | Full-text search over the host's AI-chat history — a local Tantivy (BM25) index of every provider transcript, returning ranked cited snippets with `session_id` + message position (follow up with `session_get { around_seq }` for the context) |\n| `list_agents` | List agents connected to the relay room |\n| `fleet_exec` / `fleet_read` / `fleet_write` / `fleet_git` / `fleet_search` | Run an operation across the fleet — `target = all \\| tag1,tag2 \\| os:<family>` |\n| `fleet_session_search` | Search the AI-chat history across the whole fleet: every matched host queries its local index, hits merge by score with host labels |\n| `file_search` / `file_stat` / `send_file` / `transfer_get` | Find files on a host, and move a file host→host (UDP, SHA-256 verified) |\n| `sync_dir` | Sync a directory tree host→host (rsync-like): only changed/new files are sent, with optional `delete`, `checksum`, and `dry_run` |\n| `tunnel_start` / `tunnel_list` / `tunnel_stop` | Expose a host's local port at a public `*.trycloudflare.com` URL via a Cloudflare quick tunnel (`cloudflared` auto-downloaded; Edit/Bypass) |\n| `mapreduce` | Distributed map/reduce over the fleet (shell map/reduce functions) |\n\nEach agent advertises platform metadata (OS family, distro, kernel, shell) and\nis aware of its peers, so the orchestrator can target hosts by OS and tailor\ncommands per platform.\n\n## File search, download & transfer\n\nFind and move files across the fleet — over the same end-to-end-encrypted\nchannel:\n\n- **Search** a host's files by name, content, or images-only (`file_search`,\n  with sensible default roots: home + Pictures/Documents/Downloads/Desktop). When\n  a deterministic search comes up empty, the host's AI can locate the file.\n- **Preview & download** to the browser: images get a host-generated thumbnail;\n  any file downloads via a **binary-safe, chunked pull** through the relay (each\n  chunk is its own request, staying under the relay's frame limit — no UDP needed\n  in the browser).\n- **Host↔host transfer**: `send_file` streams a file from one host to another\n  over the **direct UDP data channel** (a channel is opened on demand, with\n  automatic relay fallback), verified end-to-end with SHA-256. Receiving writes\n  to disk and requires Edit/Bypass mode on the destination.\n- **Folder sync** (rsync-like): `sync_dir` mirrors a directory tree host→host,\n  transferring **only changed or new files** (size+mtime quick check, or\n  `checksum` for SHA-256 comparison) over the same channel — unchanged files are\n  never re-read or re-sent. Additive by default; pass `delete` to also remove\n  destination files absent from the source, or `dry_run` to preview the plan.\n  Progress (`files_done`/`files_total`) is polled with `transfer_get`. Requires\n  Edit/Bypass on the destination.\n\nThe browser panel (`fleet-chat`) exposes all of this: a 📁 Files view to search,\npreview photos in chat, download, and move files between hosts with live\nprogress.\n\nIt also surfaces each host's **local AI-chat history**, labelled by host and\nprovider. Resumable providers (`claude`, `opencode`, `codex`) can be continued from\nthe panel (`claude -p --resume`, `opencode run -s`, `codex exec resume`);\nthe VS Code agents (`cline`, `roo`, `kilo`), `zed`, `cursor`'s agent\ntranscripts, `gemini`/`qwen` recordings, and `goose`/`continue` stores are\nimported read-only — shown for browsing, no headless resume.\n\n## Chat-history search (ctx-style)\n\nEvery host keeps a **local full-text index** of its imported AI-chat history\n(`~/.local/share/remote-agents/sessions-index/`, [Tantivy](https://github.com/quickwit-oss/tantivy)\n— one document per message) across all imported providers: claude, opencode,\ncodex, cline, roo, kilo, zed, cursor, gemini, qwen, goose, continue. `session_search` (and the fleet-wide\n`fleet_session_search`) return **ranked, cited snippets** — provider, session\nid, message position, score — instead of whole transcripts, which makes them\nan order of magnitude more token-efficient for an AI to consume than pulling\ntranscripts. Follow up with `session_get { provider, id, around_seq }` to open\njust the context window around a hit.\n\n- **Incremental**: a sidecar manifest fingerprints each session (its `updated`\n  value); only changed sessions are re-parsed, removed ones deleted. A refresh\n  is one atomic writer commit — searchers never see a partial generation.\n- **Budgeted**: a refresh has a soft 90 s budget; a huge first-time history\n  converges over a few searches instead of blocking one.\n- **Freshness**: the index refreshes before answering when stale (TTL 60 s) and\n  is marked dirty whenever an autonomous task finishes (a chat turn just\n  extended/created a provider session).\n- **Tunable**: `REMOTE_AGENTS_SESSION_INDEX_MAX` caps sessions indexed per\n  provider (default 2000).\n\nThe browser panel has the same search in the dialog sidebar: it fans the query\nout to every host, merges hits by score, and a click jumps straight to the\ncited context window.\n\n## Security modes\n\n| Mode | Behavior |\n|------|----------|\n| `plan` | Read-only (read, ls, git status, safe exec) |\n| `edit` | Writes allowed, with automatic backups |\n| `bypass` | Unrestricted |\n| `disabled` | Agent rejects all operations |\n\nCommand payloads are encrypted end-to-end (AES-GCM-256) with a key derived from\nthe room token (or an explicit `encryption_key`); the relay only ever sees\nciphertext. A hard deny-list applies even in `bypass` mode.\n\n## Development\n\n```bash\ncargo test --workspace                          # unit + integration tests\ncargo clippy --workspace --all-targets -- -D warnings\ncargo run --release -p remote-agents-relay -- --bind 127.0.0.1:8080\n(cd worker && npx tsc --noEmit -p .)            # worker typecheck\n\n# Fuzzing (nightly + cargo-fuzz)\ncargo +nightly fuzz run <target> --fuzz-dir crates/mcp-server/fuzz\n```\n\nCI (`.github/workflows/ci.yml`) runs the test suite, Clippy (deny-warnings), and\nthe worker typecheck on every push and pull request.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}