{"_id":"@agent-sh/computer-use-linux","_rev":"25-4383c02ff582471ce8388372bf9c5e04","name":"@agent-sh/computer-use-linux","dist-tags":{"latest":"0.7.0"},"versions":{"0.2.1":{"name":"@agent-sh/computer-use-linux","version":"0.2.1","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.2.1","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/avifenesh/computer-use-linux#readme","bugs":{"url":"https://github.com/avifenesh/computer-use-linux/issues"},"os":["linux"],"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"909a292f621ae7d570154d27272695c07f09ec2c","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.2.1.tgz","fileCount":6,"integrity":"sha512-oABcsRvSuEMPk3+Vor0m3Xiaalt2hTY3xcKH9PECgWVDIUlLTG2XMAJ3ug7E4ve7Nv0VECP0FnRs0y68KE9DHQ==","signatures":[{"sig":"MEQCID94mNfHSq2/BpL0m+8bspTMWkd97qUg+CwiDCYdjdvoAiBXlhkdNMuUzKmpIAn3ppmPpvk0K+5EniVGxcMIJP9UWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32543},"type":"commonjs","engines":{"node":">=18"},"gitHead":"7b435e781e0269bfd933b0eaf2578015135b94c9","scripts":{"pack:check":"npm pack --dry-run","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/avifenesh/computer-use-linux.git","type":"git"},"_npmVersion":"10.8.2","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.2.1_1778784465129_0.862216443997391","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@agent-sh/computer-use-linux","version":"0.2.2","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.2.2","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"43e848299c37b8743812b5d203bf3984062f811c","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.2.2.tgz","fileCount":7,"integrity":"sha512-kvXMldNcTS89U1APhrwEsuE1I0BDjUzDBoUfIQ47r9tyNmecY67ZivuEj9oudPWd7ohUvcArUYz800DLg+XfQg==","signatures":[{"sig":"MEYCIQDRSn+N1w0lzPSIOpc9gqqtgmaJxpkZnTKySjXBpzOsAwIhANoQhowico+a2n0CX/m5qQ2/xd8e9p8TgZkEkIyZ9O4e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39431},"type":"commonjs","engines":{"node":">=18"},"gitHead":"034ca0ace32f22432234bc702510a8a419d32558","scripts":{"pack:check":"npm pack --dry-run","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"10.8.2","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.2.2_1779349082611_0.8473536575398741","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@agent-sh/computer-use-linux","version":"0.2.3","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.2.3","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"c960490b3ceac8fc466821a931a429e202de1629","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.2.3.tgz","fileCount":7,"integrity":"sha512-0eerNl8HRrkOqbwZLr27vZk0cI8NQEL8nAySosBmZp1YkKtmE6OY5yrMS+cMvnCW28YiwBJ1j4F3XvJ/Mj0wFw==","signatures":[{"sig":"MEUCIHrDxZwZ18Dt+RbUl8wQrgdcHKBpliPXC+36d54WSOdTAiEAg4n1Q/XheLAUSfrDmq+etJpzUFjVi3OIf/P27bo0pzE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39431},"type":"commonjs","engines":{"node":">=18"},"gitHead":"ee094aa251ff24f9fb048bcdea56bb83ef48f023","scripts":{"pack:check":"npm pack --dry-run","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"10.8.2","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.2.3_1779430419350_0.6189746122968927","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@agent-sh/computer-use-linux","version":"0.2.4","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.2.4","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"93e542f3a77d1806848cb6b699c210ac4be141a6","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.2.4.tgz","fileCount":7,"integrity":"sha512-0SCel4enScFGcRFBg1H2IbfbRRB9mnfOc9reqtnN8QDynSGwdNfr/9MATYRc+fwSFpSCDXIGd91Kp4C0lKLVIA==","signatures":[{"sig":"MEYCIQD59ka8yEoYNU74MnFMGgSnajucKaW8nmZ3zNW4IKAD+gIhAKh9GNsDa48qH95GPmLucXmJIAiP8A+AXuPlOduNLMLp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41669},"type":"commonjs","engines":{"node":">=18"},"gitHead":"6f3bfa1d7fbeb04706ac8dec943c6916856b2a98","scripts":{"pack:check":"npm pack --dry-run","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"10.8.2","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.2.4_1779704469263_0.5544797189981361","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@agent-sh/computer-use-linux","version":"0.2.5","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.2.5","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"be69032f31dc5a5df1deb605ef56360bc748207b","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.2.5.tgz","fileCount":7,"integrity":"sha512-lmDfAsTBn+C7IcVSmZe2gTd7COd3TqzAFm+rcm6jQKIwGNydQWLTG2zabikdoLGx1bJJ6cHgBJUCEMXFyEUFSg==","signatures":[{"sig":"MEYCIQDzPCLxbykhTC1XXlefVBJImzRZsaebpgnmult45VLSTwIhAKskvygrKr9Y4yp8iOKhCGpTgFuWxUmdWYU4t7T9suPM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43424},"type":"commonjs","engines":{"node":">=18"},"gitHead":"726e6a725d056d1d280372ff0fb36c1e4014a8c9","scripts":{"pack:check":"npm pack --dry-run","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"10.8.2","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.2.5_1780675163933_0.17331754137206068","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@agent-sh/computer-use-linux","version":"0.2.6","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.2.6","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"4ccf9e9808d5044bd5da3638212b7b981813d36b","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.2.6.tgz","fileCount":7,"integrity":"sha512-x+JSZar1eG3yt8L6D2QSCGIuWyqBXEvwQ+yWQ0BSxjt7RmE8wEL9qm+F9TNC0+Eof6dhOnWV/6ELK+BZRR81Ag==","signatures":[{"sig":"MEUCIA9Led4+N+jCcYagCwOnPDi0gJQIkSFyn8o6pxaCOySyAiEAjTiXqaCLhYHQOmbFTBl5JwiztMSBwJ/WIbvAJdDwEE0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43809},"type":"commonjs","engines":{"node":">=18"},"gitHead":"4b4753f71276ae5fb07c5f341ce154e9195f2ec3","scripts":{"pack:check":"npm pack --dry-run","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"11.13.0","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.2.6_1780755985107_0.9420691214728971","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@agent-sh/computer-use-linux","version":"0.2.7","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.2.7","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"1d2dfe4fb8ca258540bf8a6411138ec8247bfb40","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.2.7.tgz","fileCount":7,"integrity":"sha512-IvYiKf5bqzfwkPZ7bhYotUj6g/C1dWstUBYoFM7BQGPWNcdQHDgg2o3XmugXt/GruUXXmO0WESoXhQ8WIzlY7g==","signatures":[{"sig":"MEUCIQD6CqiDQCBwWtuJcNO3V85UAlvhdIG+k6bsvVYacedqcgIgG36T95D/x7QDDd75SX4Pss4GhSRPVrs/nzO8CF4aS10=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43475},"type":"commonjs","engines":{"node":">=18"},"gitHead":"6e0376a880dd034c05c9d29f700213c82f772d11","scripts":{"pack:check":"npm pack --dry-run","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"11.13.0","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.2.7_1781561987077_0.9442646672199817","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@agent-sh/computer-use-linux","version":"0.2.8","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.2.8","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"03f1c211487d8d4fa92455089f09362bfeb7cc33","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.2.8.tgz","fileCount":7,"integrity":"sha512-oW03t30Z71A2tPdfXE2lE7pWSF1HvJobYSOU9AN7wngOiVCO00OI6ihkXzDuBl/afLR0Dk50PM/ZHp2zws2TtQ==","signatures":[{"sig":"MEUCIQDiIOAUoKzgVbvRsooNtZ99b9clJoKomeaCzuYxH0A9fgIgWWktVOP7xS9jfJUUse7ljZEbSiSLqOwi/xZt+ulJLIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43475},"type":"commonjs","engines":{"node":">=18"},"gitHead":"f5c0951bc4500cd4f84fb8031cc773ab9ebc6adf","scripts":{"pack:check":"npm pack --dry-run","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"11.13.0","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.2.8_1781645674220_0.24800436638028356","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@agent-sh/computer-use-linux","version":"0.2.9","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.2.9","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"2b50d2ffd334ba663b93c67bca64cebd1abade2c","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.2.9.tgz","fileCount":7,"integrity":"sha512-H3idg7FXex5t3YOc6ZEmbt7WJNV/xiMPnR595BixMwvLfNeSdf3DzTtxZqGEeXhmX5dB2S1B+99+SitqdLW4Vw==","signatures":[{"sig":"MEUCIB4UZZVKY74tk6oUmyiJSMMTupmdwctGkc9RNJwUoXbNAiEAgZLIvkN6qihylG/UPoJjW27PkoKBf4zjnV4G66mc8Ao=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43475},"type":"commonjs","engines":{"node":">=18"},"gitHead":"7500f375f3a7f115c8820917be8271b48abb2563","scripts":{"pack:check":"npm pack --dry-run","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"11.13.0","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.2.9_1782082646151_0.16553294896444104","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@agent-sh/computer-use-linux","version":"0.3.0","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.3.0","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"832b5d7a1511a63df34a7f56949169e9de83c065","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.3.0.tgz","fileCount":7,"integrity":"sha512-+/ulPUYAO5VhFosQ/Hll3i+vJkYQiLhlPa99r0MrEvuUuV1BdSUi9LJ3rOF7Geio9O4cuDoaxdHFGFtriAbKCQ==","signatures":[{"sig":"MEUCIQD51j2gzn2Z/z1bycLLOsVQ4WhjAVgIj1OWF/Zb2rqW9AIgB13cF6yI2K6JuikKsYWmKDiYvc9HkeFTf4V91xfMvLA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44077},"type":"commonjs","engines":{"node":">=18"},"gitHead":"298c4c4abb8394ff5c866f119e15a4e29771f7c9","scripts":{"pack:check":"npm pack --dry-run","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"11.16.0","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.3.0_1783098981230_0.8567943861962293","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@agent-sh/computer-use-linux","version":"0.3.1","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.3.1","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"b8445c10a7939d000c9290a4d427e0ed12b3a005","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.3.1.tgz","fileCount":7,"integrity":"sha512-6SsHrfQazLY75RJEeiiW/FruhdU9kLbYNkhK4roTB3nlATpDVufpgHDdSUcqE7aGC/vE18peGWon5zk4vKEKxQ==","signatures":[{"sig":"MEUCIQDPwgs2kn0Ja5LfQmw/mh2EvVwww7IFOPo1qry85adJzAIgLUNQhce1J0biIZvmLK/NBsHj5sauj2lMiFpVkF+zids=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44077},"type":"commonjs","engines":{"node":">=18"},"gitHead":"57093a1931728e2012b0bff0480a3a1ae4fc5f38","scripts":{"pack:check":"npm pack --dry-run","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"11.16.0","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.3.1_1783103312886_0.02483636876686446","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@agent-sh/computer-use-linux","version":"0.4.0","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex","pi-package"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.4.0","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"pi":{"skills":["./skills/computer-use-linux/SKILL.md"],"extensions":["./pi/extension/index.ts"]},"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"5714f03d49c67058de2c6ea257344418f70544c5","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.4.0.tgz","fileCount":10,"integrity":"sha512-Jbyyp90UcJ3sn1hhq4gQ5DnXelJRip1zdvoGgaXou5Zz8M/4xdFSGuqLOXvOnf4pOOmAhHOqbnROIS+lWYxnhw==","signatures":[{"sig":"MEYCIQDgIc+nHiazrJPPEPE2vcz4FupnQ31TDI1gQM9PIO+hvwIhAONhkD4FaUwfTXF5IZ5oTLHpB5nIuiRgAOoI020AdOPV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54173},"type":"commonjs","engines":{"node":">=18"},"gitHead":"510a49a458dca550318bb7f6220163e0bd66c29b","scripts":{"pack:check":"npm pack --dry-run","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"11.16.0","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.4.0_1784069697142_0.6895316216010647","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@agent-sh/computer-use-linux","version":"0.4.1","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex","pi-package"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.4.1","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"pi":{"skills":["./skills/computer-use-linux/SKILL.md"],"extensions":["./pi/extension/index.ts"]},"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"77db5bbd2205abd2d36189a86f6618e21251dcd6","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.4.1.tgz","fileCount":10,"integrity":"sha512-cnngpf8ma7SP+/EvDymS7MEp06N0t8jTPs7ZL/egoBUW8CI9mLAqmlH0NxPBUSdpcirSrPxMuLmSmfgHF1z3xA==","signatures":[{"sig":"MEYCIQD/h1c13gljmr939fIXYPhsVCN5WTXg4dQPrH9W9BRRxAIhAJSgZd7wzPxoBBx3TWTYHv17nTpsDpTLvdqIqXMvIpj5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54173},"type":"commonjs","engines":{"node":">=18"},"gitHead":"c278cde7f644550ca7a1ade165e393844a321364","scripts":{"pack:check":"npm pack --dry-run","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"11.16.0","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.4.1_1784096874560_0.2988914498702251","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@agent-sh/computer-use-linux","version":"0.4.2","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex","pi-package"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.4.2","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"pi":{"skills":["./skills/computer-use-linux/SKILL.md"],"extensions":["./pi/extension/index.ts"]},"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"1491d0e0a7e8278e194b999ccc62e9be9830546c","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.4.2.tgz","fileCount":10,"integrity":"sha512-QIC/ppRyqKzxNQhj6mrdm1jtQjfDvQ2XlCC4qGIqEg6Ctp1R0VA+As0PwLfE2lUJym5ThAaCvjXgrkXTVg+LXg==","signatures":[{"sig":"MEYCIQCpsQ/psv/PzZPPdTUbTQpJJLflK2HrnuQCbOnfxAxbUgIhAMhnuytjm7WD0xuJFjD7/sR/kDvsyg+Pa1kuzJLjxq1t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54173},"type":"commonjs","engines":{"node":">=18"},"gitHead":"8cc1fafb78d9df047ca89a1974735c1a2bbc5060","scripts":{"pack:check":"npm pack --dry-run","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"11.16.0","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.4.2_1784942430372_0.10790624352330402","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@agent-sh/computer-use-linux","version":"0.4.3","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex","pi-package"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.4.3","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"pi":{"skills":["./skills/computer-use-linux/SKILL.md"],"extensions":["./pi/extension/index.ts"]},"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"000f5d30558481b73fdab6df5b79ef1ea4583008","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.4.3.tgz","fileCount":10,"integrity":"sha512-jO9zplL9L7yuCKTNXzoFD4lmvgCeE3HXmfak79pC8p6SNj4XwA6nLYYyU4Q46gtTGw+DWw4TIggA3rgXnDcVQA==","signatures":[{"sig":"MEUCIC5kioVPjHPwez5pLC4897vkShk76ewZoUv4+pwFQcn4AiEA0nc6QDp+aQFq69WPbfiPJReHWTWCjw0P3MaPUIIBX/s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54173},"type":"commonjs","engines":{"node":">=18"},"gitHead":"feb461c0bcd6e5f1ef4732a697be20a6b1a9aad2","scripts":{"pack:check":"npm pack --dry-run","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"11.16.0","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.4.3_1785455130826_0.16723598216064817","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@agent-sh/computer-use-linux","version":"0.4.4","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex","pi-package"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.4.4","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"pi":{"skills":["./skills/computer-use-linux/SKILL.md"],"extensions":["./pi/extension/index.ts"]},"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"f80fa0915f33494c0bce554bdaed7f8b8067f7d2","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.4.4.tgz","fileCount":10,"integrity":"sha512-JM2VFGWjWBTBtfMfNx+DLH4LIXXnxQWlMAmL/p+iefnvlrtIoNlqAzWFP+V0uk2qT+v5PIKC0pSIOnsbysxdDw==","signatures":[{"sig":"MEYCIQC2I/8sRHe8Q+MHsKV2eE7VxDd6Zh6iiKu8jI5SNkH7YwIhAIaJpLSf5SN09I3ixfcQA1noL0Uj6qoAeAO7DmjQZhEP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55391},"type":"commonjs","engines":{"node":">=18"},"gitHead":"3557cc5dead1d37126a7a38cffc7503e87b1dca2","scripts":{"pack:check":"npm pack --dry-run","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"11.16.0","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.4.4_1785524825038_0.3170361141007776","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@agent-sh/computer-use-linux","version":"0.4.5","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex","pi-package"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.4.5","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"pi":{"skills":["./skills/computer-use-linux/SKILL.md"],"extensions":["./pi/extension/index.ts"]},"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"5035af82c72c28fc692e373c4b30b9d638ece980","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.4.5.tgz","fileCount":10,"integrity":"sha512-KV1FfZnR4Av1yILpwMWPLAz66A+j05+NYVA5g3pI2zmQVPxaSmL3M7pqFqs928uE8ORYrWLtgyUMQBT4EA+LzA==","signatures":[{"sig":"MEYCIQCXMlCAO27i+R+8OqBaRvyPWnXu6FQev5EDMQh/yfKgngIhAOuX3gd78dTppwKtqqJGL1R7uKqUaaB2VuWiZC3WdrrS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55391},"type":"commonjs","engines":{"node":">=18"},"gitHead":"4b4126c3033811ee80d4ccea292a96046ab3142c","scripts":{"pack:check":"npm pack --dry-run","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"11.16.0","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.4.5_1785567188509_0.7357323919236298","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"@agent-sh/computer-use-linux","version":"0.4.6","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex","pi-package"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.4.6","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"pi":{"skills":["./skills/computer-use-linux/SKILL.md"],"extensions":["./pi/extension/index.ts"]},"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"5690eac15af3b3c62d1ced38ff21a8bad076c3a8","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.4.6.tgz","fileCount":10,"integrity":"sha512-YffnVuOtODjrQiWjq0kuILkv6DH/IbhLilLsQiUC2L9mpIQrLc3Ad5OyB/eAWajNi5ganpvI5hE4e9AS6bFSVg==","signatures":[{"sig":"MEUCIDJLefMPdEi6atMiaShgzFOF/O9YGR2vwivG3VfV6qcUAiEAvxrPioAFi3yYap8ynL3VBozVpR1w2k6ziFENqVWJUU8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55840},"type":"commonjs","engines":{"node":">=18"},"gitHead":"4a98c152b6b8b6d088aa28feb218d751e47acc16","scripts":{"pack:check":"npm pack --dry-run","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"11.16.0","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.4.6_1785886073917_0.5486224669422302","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"@agent-sh/computer-use-linux","version":"0.4.7","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex","pi-package"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.4.7","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"pi":{"skills":["./skills/computer-use-linux/SKILL.md"],"extensions":["./pi/extension/index.ts"]},"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"27a0cdb543cd3b8c3742450a4b7c903521f044b6","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.4.7.tgz","fileCount":10,"integrity":"sha512-kw1UPOSsfn9i018yYgmTjgsIl/XC2uhtU3hGJLa7rxuFDnRdoX+LWTuo2dqXIm+oc/2o73O+jLbQ2Zvy2vHq5A==","signatures":[{"sig":"MEUCIQDt8DiMbFt/IIewMJoJomWaZhRFP8zGwwqd3M4kDeNDcwIgQzrKqRiT2CX7uAXgiARZV40SZizMD2lLiCPL03LRLEA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56856},"type":"commonjs","engines":{"node":">=18"},"gitHead":"8cfbd6505d278a28c09cf037d11b31e9f318faf0","scripts":{"pack:check":"npm pack --dry-run","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"11.16.0","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.4.7_1786275341393_0.06389680655854568","host":"s3://npm-registry-packages-npm-production"}},"0.4.8":{"name":"@agent-sh/computer-use-linux","version":"0.4.8","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex","pi-package"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.4.8","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"pi":{"skills":["./skills/computer-use-linux/SKILL.md"],"extensions":["./pi/extension/index.ts"]},"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"78885b69dc2f375d79dc74eae242b4c5c5c0f5f8","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.4.8.tgz","fileCount":10,"integrity":"sha512-pSF77rMEBLYSBbmDeDTYSQqMBDvHNth4DKLxWDY992wfOcBoG31WwiNVdBTncrLdEj+1Fq1iCIrQ9FOMY1gKTw==","signatures":[{"sig":"MEUCIQCuuP0vhckfkZiAy2/iIcb1/pDS5XFQEU9dxvfVv6dTfQIgcm2ys/pxc+kwpxsZWPqWnl6670qaGumtuvPc+zdB1CA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56856},"type":"commonjs","engines":{"node":">=18"},"gitHead":"443833724137850499f798300e82f1e9e0da380b","scripts":{"pack:check":"npm pack --dry-run","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"11.17.0","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.4.8_1786484496601_0.8759136030351471","host":"s3://npm-registry-packages-npm-production"}},"0.4.9":{"name":"@agent-sh/computer-use-linux","version":"0.4.9","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex","pi-package"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.4.9","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"pi":{"skills":["./skills/computer-use-linux/SKILL.md"],"extensions":["./pi/extension/index.ts"]},"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"232215df305b5ca11c5c3b3f07d5f0c9a0e3590c","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.4.9.tgz","fileCount":10,"integrity":"sha512-UQmaG75t2eZMPNc3uFnMCDI2MEJ1uLVsIiTtx+Pg62c06/8G92MQws9CYfC/cx94UUWbVULvhwtWYQ8C7GxvYA==","signatures":[{"sig":"MEUCIQDz/Uw4LbJDADZgtLAwVT1mroURBlQ6hHp5pmEuIbfEkwIgNTCjMnhxV30u3UeLItXMKF9/b9W6f5O0ToNGtjXKcAg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56856},"type":"commonjs","engines":{"node":">=18"},"gitHead":"c60d5ae7d8d94b1712c25c776b2025024377c60b","scripts":{"pack:check":"npm pack --dry-run","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"11.17.0","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.4.9_1786487985706_0.2787682124458142","host":"s3://npm-registry-packages-npm-production"}},"0.4.10":{"name":"@agent-sh/computer-use-linux","version":"0.4.10","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex","pi-package"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.4.10","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"pi":{"skills":["./skills/computer-use-linux/SKILL.md"],"extensions":["./pi/extension/index.ts"]},"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"17a4b8871a3ddbd741dcbd16c52b0993e95f3179","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.4.10.tgz","fileCount":10,"integrity":"sha512-2nAy4TzshMH9NURnvf7yZCtHJzohW7hRke9UMs+GdPKaQsWdHgFnPLG3SvFG0wZEfxSJmUuQZ5uLyUiqXwEl2g==","signatures":[{"sig":"MEUCIQCDNZXpx96CIpNgmV6feTIWopdhkPx2xigB20fjk/SZzAIgM/E2j2VDafUBX2mbGmFrG66JomOyQHnI2YcUzCHNdRM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59136},"type":"commonjs","engines":{"node":">=18"},"gitHead":"21f224df2aeba3bd2629a1f1c39a0ecc9f7354ef","scripts":{"pack:check":"npm pack --dry-run","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"11.17.0","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.4.10_1787958159950_0.4805958458037294","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@agent-sh/computer-use-linux","version":"0.5.0","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex","pi-package"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.5.0","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"pi":{"skills":["./skills/computer-use-linux/SKILL.md"],"extensions":["./pi/extension/index.ts"]},"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"d88f49de178836aefddd5977247091a758976a91","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.5.0.tgz","fileCount":13,"integrity":"sha512-jAKA3BuAoozy5zGUfaD8Zx4TyDiB0RV4gp17vjyYgZIRehS+woEyFUxPhmt1oqEngXvlUs8ZlhgMEzmb92+0Aw==","signatures":[{"sig":"MEQCICG4qL0p3FuhqOFSTo5BWkgYI2sri6iKWz1pESeXVCa1AiBH9Tj2CvOM8Xr/AcoRH6CieJxuAufKYAxMZI6WFs8ojQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":564876},"type":"commonjs","engines":{"node":">=18"},"gitHead":"d6f05716f6e6a960fd2f22ffa5a9d4ec87630a56","scripts":{"test:pi":"npm test --prefix pi","build:pi":"npm run build --prefix pi","pack:check":"node scripts/check_npm_package.mjs","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help","typecheck:pi":"npm run typecheck --prefix pi","check:pi-bundle":"npm run build:check --prefix pi"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"11.17.0","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.5.0_1788185364606_0.9395130294627774","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@agent-sh/computer-use-linux","version":"0.6.0","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex","pi-package"],"license":"MIT","_id":"@agent-sh/computer-use-linux@0.6.0","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"homepage":"https://github.com/agent-sh/computer-use-linux#readme","bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"os":["linux"],"pi":{"skills":["./skills/computer-use-linux/SKILL.md"],"extensions":["./pi/extension/index.ts"]},"bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"dist":{"shasum":"89ef8cc028e27c2ff037c64e51f73d1b0c7b9496","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.6.0.tgz","fileCount":13,"integrity":"sha512-j8FkxSIKAoAJk3rNf5jK5hSgDTJlpamqedmCSei3peT9ZbAth3hUlCboeR+K49PZwtWaCm2xRnHvxIP/h+j6Lw==","signatures":[{"sig":"MEUCIQDF39/1pI/5of21424pe0gpnJuTWcUehl1HivZGR04vegIgc5wT7cydqgCYh66l6eyhmrZijNAGgTd/kxhOLueT/kc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIF8pVL/inp84Mz8IoUuAFwPPI22QKwQR0r6IunSlS7gzAiA8MmtQG1bQpNrewW9A3mYo+12Ub5D3S/W8mHhaF7i+Xg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":575213},"type":"commonjs","engines":{"node":">=18"},"gitHead":"eadc5f113bdbad7615614a8dc204b7d54411e7e8","scripts":{"test:pi":"npm test --prefix pi","build:pi":"npm run build --prefix pi","pack:check":"node scripts/check_npm_package.mjs","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help","typecheck:pi":"npm run typecheck --prefix pi","check:pi-bundle":"npm run build:check --prefix pi"},"_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"11.19.0","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/computer-use-linux_0.6.0_1789421044772_0.2139474089350617","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"os":["linux"],"pi":{"skills":["./skills/computer-use-linux/SKILL.md"],"extensions":["./pi/extension/index.ts"]},"_id":"@agent-sh/computer-use-linux@0.7.0","bin":{"computer-use-linux":"npm/bin/computer-use-linux.js"},"cpu":["x64","arm64"],"bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"dist":{"shasum":"5765fdc1dcea40cd0738f1a4914e1973f45941aa","tarball":"https://registry.npmjs.org/@agent-sh/computer-use-linux/-/computer-use-linux-0.7.0.tgz","fileCount":13,"integrity":"sha512-DEvMv61+Cti41pNhCx3achjKP7coAs5XwfusDdzYsfCiDo/kUouVr+w2KT6UIABAn9N3XfqvkiQPj9GNerQoUA==","signatures":[{"sig":"MEYCIQDzLzhH5wZAAqg+9jnomql3vrRTkh7Mh/5EGUJyAKnBHwIhAKagJ9ZziW5+XzKW85RTzaWxFSyoaoTvt6E7pa4gI8RA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCoPNqT8MREIhDHLcUQ3hjdSmjRmdTVLiX5xrd9x5XjfgIhAKcpFG6TaZuI85ZGBLg/H7tWgVylOZgvf01YpqjCrKL5"}],"unpackedSize":578763},"name":"@agent-sh/computer-use-linux","type":"commonjs","engines":{"node":">=18"},"gitHead":"97aea88136cae80ab5b2706208aaa7bcc4a30a0e","license":"MIT","scripts":{"test:pi":"npm test --prefix pi","build:pi":"npm run build --prefix pi","pack:check":"node scripts/check_npm_package.mjs","postinstall":"node npm/install.js","test:wrapper":"node npm/bin/computer-use-linux.js --help","typecheck:pi":"npm run typecheck --prefix pi","check:pi-bundle":"npm run build:check --prefix pi"},"version":"0.7.0","_npmUser":{"name":"avifenesh","email":"aviarchi1994@gmail.com"},"homepage":"https://github.com/agent-sh/computer-use-linux#readme","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex","pi-package"],"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"_npmVersion":"11.19.0","description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","directories":{},"maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/computer-use-linux_0.7.0_1789546785686_0.6417265206086182"}}},"time":{"created":"2026-05-14T18:47:44.996Z","modified":"2026-09-16T08:19:45.958Z","0.2.1":"2026-05-14T18:47:45.274Z","0.2.2":"2026-05-21T07:38:02.776Z","0.2.3":"2026-05-22T06:13:39.487Z","0.2.4":"2026-05-25T10:21:09.406Z","0.2.5":"2026-06-05T15:59:24.090Z","0.2.6":"2026-06-06T14:26:25.251Z","0.2.7":"2026-06-15T22:19:47.214Z","0.2.8":"2026-06-16T21:34:34.418Z","0.2.9":"2026-06-21T22:57:26.307Z","0.3.0":"2026-07-03T17:16:21.365Z","0.3.1":"2026-07-03T18:28:33.066Z","0.4.0":"2026-07-14T22:54:57.274Z","0.4.1":"2026-07-15T06:27:54.736Z","0.4.2":"2026-07-25T01:20:30.539Z","0.4.3":"2026-07-30T23:45:30.983Z","0.4.4":"2026-07-31T19:07:05.183Z","0.4.5":"2026-08-01T06:53:08.646Z","0.4.6":"2026-08-04T23:27:54.117Z","0.4.7":"2026-08-09T11:35:41.530Z","0.4.8":"2026-08-11T21:41:36.786Z","0.4.9":"2026-08-11T22:39:45.839Z","0.4.10":"2026-08-28T23:02:40.100Z","0.5.0":"2026-08-31T14:09:24.767Z","0.6.0":"2026-09-14T21:24:04.874Z","0.7.0":"2026-09-16T08:19:45.771Z"},"bugs":{"url":"https://github.com/agent-sh/computer-use-linux/issues"},"license":"MIT","homepage":"https://github.com/agent-sh/computer-use-linux#readme","keywords":["mcp","computer-use","linux","wayland","accessibility","hermes-agent","codex","pi-package"],"repository":{"url":"git+https://github.com/agent-sh/computer-use-linux.git","type":"git"},"description":"Linux desktop-control MCP server: AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.","maintainers":[{"name":"avifenesh","email":"aviarchi1994@gmail.com"}],"readme":"<div align=\"center\">\n  <h1>computer-use-linux</h1>\n  <p><strong>Control a real Linux desktop from any MCP host.</strong></p>\n  <p>\n    <a href=\"https://github.com/agent-sh/computer-use-linux/actions/workflows/ci.yml\"><img src=\"https://github.com/agent-sh/computer-use-linux/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"></a>\n    <a href=\"https://crates.io/crates/computer-use-linux\"><img src=\"https://img.shields.io/crates/v/computer-use-linux.svg\" alt=\"crates.io\"></a>\n    <a href=\"https://www.npmjs.com/package/@agent-sh/computer-use-linux\"><img src=\"https://img.shields.io/npm/v/@agent-sh/computer-use-linux.svg\" alt=\"npm\"></a>\n    <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" alt=\"License: MIT\"></a>\n  </p>\n</div>\n\n> ⚡ Running this agent 24/7? [**tiyuvta inference**](https://inference.tiyuvta.ai) — hosted LLM inference built for always-on agents, OpenAI/Anthropic-compatible APIs.\n\n`computer-use-linux` reads accessibility trees, takes screenshots, and drives clicks, scrolls, and keystrokes across GNOME, KDE/KWin, Hyprland, i3, and COSMIC — Wayland-first, X11 best-effort.\n\n```bash\nnpm install -g @agent-sh/computer-use-linux\ncomputer-use-linux doctor | jq .readiness\n```\n\nThe Rust crate is published as [`computer-use-linux`](https://crates.io/crates/computer-use-linux) and the npm wrapper as [`@agent-sh/computer-use-linux`](https://www.npmjs.com/package/@agent-sh/computer-use-linux). Prebuilt binaries ship with the [latest release](https://github.com/agent-sh/computer-use-linux/releases/latest).\n\n## What this is\n\n`computer-use-linux` is a Rust MCP server and CLI for Linux desktop control. The crate ships the main `computer-use-linux` binary plus a small `computer-use-linux-cosmic` helper used only for COSMIC Wayland window management. Any MCP host — Codex Desktop's Linux build, Claude Desktop, [Hermes Agent](https://github.com/NousResearch/hermes-agent), or your own client — can spawn it and gain full control of the local Linux desktop: read accessibility trees, list and focus windows, take screenshots, click, drag, scroll, type, and invoke semantic accessibility actions.\n\nMost computer-use MCP servers are macOS-only (they lean on AppKit, AXUIElement, CGEvent). The few that target Linux either drive `xdotool` against an X11 root window or shell out to OCR over screenshots. Four things set this one apart:\n\n- **Wayland actually works.** Pointer actions can use the `org.freedesktop.portal.RemoteDesktop` interface on Wayland, with `ydotool` / `ydotoold` (uinput) as the deterministic fallback. Literal text prefers `wtype` on compatible Wayland compositors when portal keyboard input is unavailable, preserving Unicode and the active layout before falling back to ydotool. Screenshots use the GNOME Shell DBus screenshot method when present, `org.freedesktop.portal.Screenshot` otherwise, and fall back to spawning `gnome-screenshot` for background/systemd contexts where both DBus paths are denied.\n- **Window targeting is compositor-aware.** The window registry tries GNOME Shell extension, GNOME Shell Introspect, COSMIC Wayland helper, KWin DBus scripting, Hyprland `hyprctl`, i3 IPC, and generic X11/EWMH in order, then reports exactly which backend won or why each backend failed.\n- **Semantic selectors, not pixel coordinates.** Tools like `click`, `perform_action`, and `set_value` accept `role` / `name` / `text` / `states` selectors backed by AT-SPI. Pixel coordinates remain available as a fallback for rendering-only surfaces (canvas, games, X clients without ATK).\n- **One JSON readiness report.** `computer-use-linux doctor` returns a structured document covering platform, portals, AT-SPI, windowing, input, and a `readiness` summary with explicit blockers and a recommended next step. MCP hosts can render or surface that to the user without parsing prose.\n\nThe crate was extracted from [`codex-desktop-linux`](https://github.com/avifenesh/codex-desktop-linux) (the Linux distribution of Codex Desktop), which still bundles this binary as a built-in plugin. This standalone repo is the upstream.\n\n## Features\n\nMCP tools exposed by the server:\n\n**Diagnostics**\n\n- `doctor` — single-shot JSON readiness report (platform, portals, accessibility, windowing, input, readiness summary, and a capability map of available backends)\n- `setup_accessibility` — enables GNOME's `org.gnome.desktop.interface toolkit-accessibility` setting so toolkit apps expose AT-SPI trees\n- `setup_window_targeting` — installs and enables the bundled GNOME Shell extension when `org.gnome.Shell.Introspect` is locked down\n\n**Discovery**\n\n- `list_apps` — running desktop apps visible to the AT-SPI registry\n- `list_windows` — compositor windows with title, app id, wm_class, focus state, client type (Wayland/X11), and bounds\n- `focused_window` — the window currently holding keyboard focus\n- `get_app_state` — combined screenshot + accessibility tree for a chosen app, with element indices that the input tools accept. Scope it with `app_name_or_bundle_identifier` or a window target; an unscoped call returns the whole desktop tree, reports `tree_scoped: false`, and warns\n- `screenshot` — capture the screen as a bounded PNG or JPEG image; can target a window, which is raised to the front and cropped to just that window\n\nScreenshot payloads are size-bounded by default before they are returned to the MCP host: max 1920 px width/height and 2 MiB image bytes, with hard caps even when callers request more. Agents that need more detail can pass `max_width`, `max_height`, `max_bytes`, `scale`, `format: \"jpeg\"`, or `quality`, preferably with a window target or crop. PNG remains the default; JPEG lets callers trade lossless pixels for a smaller payload before the byte cap forces further resizing. Returned screenshot metadata includes `coordinate_width`, `coordinate_height`, `scale`, `format`, and `quality` so callers can convert from a downscaled preview to desktop coordinate pixels.\n\n**Input**\n\n- `click` — by element index, semantic selector, or desktop coordinate pixels\n- `drag` — desktop coordinate drag (start / end)\n- `scroll` — page-based scroll on an element or at a pixel location\n- `press_key` — keys / chords; can focus a window or terminal first\n- `type_text` — literal text input, optionally targeted at a window or terminal\n\nFor a plain left `click` by element index or selector, a recognized native\nAT-SPI `click`, `press`, or `toggle` action takes precedence\nover bounds. Entry `activate` and slider `jump` must be requested explicitly\nwith `perform_action`; they are never a substitute for a pointer click, even\nwhen bounds are missing.\nThis avoids pointer conversion for GTK3 HiDPI\nextents and GTK4 zero-origin bounds when the element exposes such an action.\nThe preference does not substitute an arbitrary action name for a coordinate\nclick. Explicit `x`/`y`, right clicks, and double/multiple clicks retain pointer\nsemantics. Re-check application state after either kind of activation.\n\nFor coordinate `click` or `scroll` with `relative: true`, select a target window\nand measure from its clipped screenshot crop origin. Divide preview `x` and\n`y` by the returned screenshot `scale` before passing them. These are not raw\nGDK surface or widget-local coordinates; decorations and clipping can change\nthe origin. A missing window target is rejected.\n\nTargeted `press_key`/`type_text` results append focused-element feedback from AT-SPI (role, name, editable) and warn when no editable element holds focus. Click/screenshot/input results warn when the target window or coordinate is partially or fully off-screen. `get_app_state` returns a compact readiness block by default; pass `verbose: true` for the full diagnostics report. It also reports `tree_scoped` (false when no app target narrowed the AT-SPI tree, with a warning in `message`) and `accessibility_tree_truncated` (true when the node, depth, or read budget stopped traversal with unread elements left).\n\n**Semantic actions**\n\n- `perform_action` — invoke any AT-SPI action exposed by an element (`Press`, `Activate`, `Toggle`, …); defaults to the primary action\n- `set_value` — write to a settable accessibility element (text fields, sliders, spinners)\n\n**Navigation**\n\n- `activate_window` — focus a window by `window_id`, `pid`, `app_id`, `wm_class`, `title`, or terminal selectors\n- `move_window` / `resize_window` — reposition or resize a window in desktop coordinates (GNOME Shell extension backend); useful to recover windows that are partially off-screen\n\n**Conditional host execution**\n\n- `complete_interaction` - optional desktop completion notification, registered only with `COMPUTER_USE_LINUX_NOTIFY_ON_COMPLETE=1`. Repeated calls can create repeated notifications; it does not provide desktop exclusivity.\n\n- `run_shell` — same-user `/bin/sh -c` execution without login-profile loading, registered only when the server operator starts the MCP process with `COMPUTER_USE_LINUX_ENABLE_SHELL=1`. It is deliberately absent by default and is not a sandbox.\n\n### MCP safety contract\n\n`computer-use-linux` is not a read-only data source. It can observe the local desktop and, when a mutating tool is called, can change real application state. The `tools/list` response includes MCP `ToolAnnotations` so hosts can surface this distinction before invocation:\n\n| Class | Tools | Contract |\n| --- | --- | --- |\n| Read-only observation | `doctor`, `list_apps`, `list_windows`, `focused_window`, `get_app_state` | `readOnlyHint=true`; may reveal app, window, accessibility, and screenshot contents. `get_app_state` may trigger the desktop screenshot portal prompt. |\n| Local setup mutators | `setup_accessibility`, `setup_window_targeting` | `readOnlyHint=false`, `destructiveHint=false`, `idempotentHint=true`; modifies user desktop configuration by enabling accessibility or installing/enabling the GNOME window-targeting extension. |\n| UI state mutators | `activate_window`, `move_window`, `resize_window`, `scroll`, `screenshot` | `readOnlyHint=false`, `destructiveHint=false`; changes focus, geometry, or scroll position in the live desktop, or raises a window to capture it. |\n| Desktop action mutators | `click`, `drag`, `press_key`, `type_text`, `perform_action`, `set_value` | `readOnlyHint=false`, `destructiveHint=true`, `openWorldHint=true`; can trigger arbitrary actions in whatever local application is targeted. |\n| Conditional host-code execution | `run_shell` | Absent unless `COMPUTER_USE_LINUX_ENABLE_SHELL=1`; when enabled, `readOnlyHint=false`, `destructiveHint=true`, `idempotentHint=false`, `openWorldHint=true`. Runs with the MCP server user's host permissions. |\n\nAnnotations are safety hints, not an authorization system. MCP hosts should still ask the user before calls that could submit, delete, send, purchase, overwrite, or otherwise commit state.\n\n`run_shell` is an explicit trust-boundary opt-in, not a restricted command runner. Enabling it grants an approved MCP call the same file and network authority as the user running the server. The tool clears the ambient environment and inherits only a small desktop/runtime allowlist (`PATH`, home/user/locale fields, display/session-bus fields); additional variables must be supplied in the visible call payload. Commands use a fixed non-login `/bin/sh`, an existing canonical working directory, a 30-second default / 120-second hard timeout, process-group cleanup, and stderr audit records keyed by the command SHA-256 rather than command text. Collected streams up to 8 MiB are returned with a 512 KiB per-stream response cap and truncation flag; exceeding 8 MiB on either stream fails the call without partial output. These controls bound accidental leakage and runaway work; they do not make arbitrary shell code safe.\n\nThe binary also exposes the same capabilities from the CLI for scripting and debugging:\n\n```\ncomputer-use-linux mcp                                  # stdio MCP server\ncomputer-use-linux doctor                               # JSON readiness report\ncomputer-use-linux setup                                # enable AT-SPI\ncomputer-use-linux guard-accessibility                  # explicit foreground GNOME accessibility guard\ncomputer-use-linux setup-window-targeting               # install GNOME Shell extension\ncomputer-use-linux apps\ncomputer-use-linux state [APP_NAME]\ncomputer-use-linux screenshot                           # JSON screenshot summary\ncomputer-use-linux windows\n```\n\n## Support matrix\n\nValidated manually on Ubuntu 25.10 (GNOME Shell 50.1, Wayland). Other compositor backends are implemented and covered by parser / contract tests, but real desktop behavior still depends on each session exposing its expected control API.\n\n| Desktop/session | Window backend | Notes |\n| --- | --- | --- |\n| GNOME Wayland | GNOME Shell extension first, `org.gnome.Shell.Introspect` fallback | Full target. The extension provides exact window activation when GNOME blocks native introspection; Introspect can list windows and focus apps by `app_id` when allowed. |\n| GNOME X11 | `org.gnome.Shell.Introspect`, then generic X11/EWMH | AT-SPI works; keyboard input prefers `xdotool`/XTEST so the live XKB layout resolves keys correctly. |\n| KDE Plasma / KWin | temporary KWin DBus scripting | Lists and focuses windows through Plasma 5 or 6 `org.kde.KWin` scripting APIs when the session bus exposes them. |\n| Hyprland | `hyprctl clients -j` and `hyprctl dispatch focuswindow` | Requires `hyprctl` in the desktop session. |\n| i3 | `i3-msg`; optional `xprop` for PID hydration | Lists and focuses i3 windows over the active i3 IPC socket. |\n| COSMIC Wayland | `computer-use-linux-cosmic` helper | Installed automatically by `./install.sh`, `cargo install`, and npm. For custom/manual layouts, put the helper next to the main binary, on `PATH`, or point `COMPUTER_USE_LINUX_COSMIC_HELPER` at it. |\n| Sway / generic wlroots | no dedicated backend yet | AT-SPI, screenshots, and global `ydotool` input can still work; exact window list/focus is currently unavailable unless another backend applies. |\n| Generic X11 / XFCE / other EWMH WMs | `wmctrl` plus `xprop` | Lists, focuses, moves, and resizes windows; keyboard input prefers `xdotool`/XTEST. |\n\nIf you run on a desktop not covered above, or a covered backend does not come up cleanly, please open an issue with the output of `computer-use-linux doctor` so we can extend the matrix honestly.\n\n## Install\n\nCOSMIC users do not need a second package or a separate helper install when using `./install.sh`, `cargo install`, or the npm wrapper. Those paths install `computer-use-linux-cosmic` alongside the main binary automatically. Only manual prebuilt-binary installs need you to copy both release assets.\n\n### Option A — `./install.sh` from a clone\n\nInstalls system packages on Debian/Ubuntu, Fedora/RHEL-like, Arch-like, or Artix systems; installs Rust if needed; builds both release binaries; installs them to `~/.local/bin`; configures `ydotoold` as a systemd user service when available; enables GNOME AT-SPI settings when running under GNOME; and installs the bundled GNOME Shell extension on GNOME Wayland.\n\n```bash\ngit clone https://github.com/agent-sh/computer-use-linux\ncd computer-use-linux\n./install.sh\n# log out and back in if the GNOME extension was newly installed\ncomputer-use-linux doctor | jq .readiness\n```\n\n`ydotool` is an optional fallback. On X11, the installer includes `xdotool` as the required keyboard backend. If ydotool is unavailable from the configured repositories, the installer continues, but `doctor` still requires a keyboard-capable RemoteDesktop portal on Wayland or xdotool on X11; direct uinput provides absolute pointer input only. On non-systemd hosts, automatic `ydotoold` service setup is skipped and the installer prints a command suitable for a per-user supervisor. For an unrecognized distro, pass `--package-manager apt|dnf|pacman`; `--force-unknown-distro` auto-selects only when exactly one of those managers is available.\n\n### Option B — `cargo install` (Rust binaries, no system setup)\n\nInstalls the Rust binaries from crates.io. You still handle the system-level pieces yourself: AT-SPI, desktop portals, the optional `ydotoold` fallback, and the GNOME extension if you need the GNOME Wayland exact-focus backend.\n\n```bash\ncargo install computer-use-linux\ncomputer-use-linux doctor\n```\n\nFor unreleased changes from `main`, install directly from Git:\n\n```bash\ncargo install --git https://github.com/agent-sh/computer-use-linux\n```\n\nThen, as needed:\n\n```bash\nsudo apt install ydotool at-spi2-core         # ydotool 1.0.3+ when using this fallback\nsudo apt install wtype                        # optional Unicode typing on wlroots/Hyprland Wayland\nsystemctl --user enable --now ydotoold         # only when doctor selects ydotool\ncomputer-use-linux setup                      # gsettings AT-SPI bridge\ncomputer-use-linux setup-window-targeting     # GNOME Shell extension\n```\n\n### Option C — npm wrapper (binary download)\n\nGood for users who already have Node.js and want a no-Rust install. The npm package downloads and verifies the matching main and COSMIC helper binaries during install, then the wrapper sets `COMPUTER_USE_LINUX_COSMIC_HELPER` to the bundled helper automatically.\n\n```bash\nnpm install -g @agent-sh/computer-use-linux\ncomputer-use-linux doctor\n```\n\nYou will still need AT-SPI enabled (`computer-use-linux setup`) and one input backend reported ready by `doctor`. Start `ydotoold` only when using the ydotool fallback.\n\n### Option D — prebuilt binaries\n\nLinux x86_64 / aarch64 builds are published with each tag. Each binary ships a `.sha256` next to it.\n\n- Latest release: <https://github.com/agent-sh/computer-use-linux/releases/latest>\n\n```bash\ntarget=x86_64-unknown-linux-gnu\nbase=https://github.com/agent-sh/computer-use-linux/releases/latest/download\nfor binary in computer-use-linux computer-use-linux-cosmic; do\n  asset=\"$binary-$target\"\n  curl -L -O \"$base/$asset\"\n  curl -L -O \"$base/$asset.sha256\"\n  sha256sum -c \"$asset.sha256\"\n  install -m 0755 \"$asset\" \"$HOME/.local/bin/$binary\"\ndone\n```\n\nYou will still need `ydotoold` running and AT-SPI enabled (run `computer-use-linux setup` and the systemd commands above).\n\n## Wire it into your MCP host\n\nThe binary speaks the `rmcp` 2024-11-05 stdio protocol. Pass `mcp` as the only argument; everything else is configured through MCP tool calls.\n\n### Codex Desktop (Linux build)\n\nThe Linux build of Codex Desktop already bundles this binary as a plugin. You don't need to wire it up manually — the plugin definition lives in [`codex-desktop-linux`](https://github.com/avifenesh/codex-desktop-linux) under its `plugins/` directory and is enabled by default. To upgrade the plugin in place, replace the binary it ships with the one from this repo's release assets.\n\n### Claude Code (CLI)\n\nUse the `claude mcp add` command to register the binary as a stdio MCP server. Pick a scope:\n\n- `--scope user` — available across all projects for your user.\n- `--scope project` — written to `.mcp.json` at the project root for team sharing.\n- `--scope local` (default) — only the current project, stored in `~/.claude.json`.\n\n```bash\n# User-wide install (recommended for desktop control)\nclaude mcp add --scope user computer-use-linux -- computer-use-linux mcp\n\n# Verify the server is registered and reachable\nclaude mcp list\n```\n\nIf `computer-use-linux` is not on `PATH`, pass the absolute path (e.g. `~/.local/bin/computer-use-linux`). Inside a Claude Code session, run `/mcp` to confirm the tools are loaded.\n\n### Claude Desktop\n\nEdit `~/.config/Claude/claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"computer-use-linux\": {\n      \"command\": \"computer-use-linux\",\n      \"args\": [\"mcp\"]\n    }\n  }\n}\n```\n\nRestart Claude Desktop. The tools should appear in the tools list.\n\n### Pi Coding Agent\n\n```bash\npi install npm:@agent-sh/computer-use-linux\n```\n\nRestart Pi or run `/reload`. The package exposes one small loader initially;\nthe real tools keep their upstream schemas and are enabled only when Computer\nUse is needed:\n\nNative tools require Pi 0.84.4 or newer (Node.js 22.19 or newer). The\nstandalone npm CLI wrapper continues to support Node.js 18 or newer.\n\n```\ncomputer_use_linux_tools({ tools: [\"doctor\", \"list_windows\"] })\ncomputer_use_linux_doctor({})\ncomputer_use_linux_list_windows({})\n```\n\nYou can also search by capability:\n\n```\ncomputer_use_linux_tools({ query: \"observe a window and click a control\" })\n```\n\nNo separate MCP adapter or manual MCP configuration is required. Pi starts one\ncomputer-use-linux process lazily on the first real tool call, reuses it for the\nsession so accessibility snapshots remain valid, serializes desktop actions,\nand closes it on reload, session switch, or exit. See the\n[Pi setup guide](skills/computer-use-linux/references/pi-setup.md) for migration\nfrom older adapter-based installs.\n\n### Hermes Agent\n\nInstall the companion Hermes skill so Hermes has the desktop-specific runbook:\n\n```bash\nhermes skills tap add agent-sh/computer-use-linux\nhermes skills install agent-sh/computer-use-linux/computer-use-linux\n```\n\nThe skill is optional but recommended for Hermes users. It teaches Hermes how to install, configure, verify, and call the Linux desktop MCP safely. It follows the same `skills/<name>/SKILL.md` tap layout used by Hermes community skills.\n\nThen add the stdio MCP server:\n\n```bash\nhermes mcp add computer-use-linux --command computer-use-linux --args mcp\nhermes mcp test computer-use-linux\nhermes mcp configure computer-use-linux\n```\n\n`configure` opens Hermes' tool-selection UI for the server. The generated config should look like this:\n\n```yaml\nmcp_servers:\n  computer-use-linux:\n    command: computer-use-linux\n    args: [\"mcp\"]\n    timeout: 120\n    connect_timeout: 30\n\n# Optional: expose the tools to subagents as well.\ninherit_mcp_toolsets: true\n```\n\nIf you installed the binary somewhere that is not on `PATH`, pass the absolute path as `--command`.\n\nRestart Hermes after editing the config. Hermes registers the tools as `mcp_computer_use_linux_<tool>` and creates the `mcp-computer-use-linux` runtime toolset.\n\nYou can verify both sides before asking Hermes to use the desktop:\n\n```bash\ncomputer-use-linux doctor | jq .readiness\nhermes skills inspect agent-sh/computer-use-linux/computer-use-linux\nhermes chat --toolsets mcp-computer-use-linux -q \"List the current desktop windows.\"\n```\n\nFor one-off installs without adding the tap first, Hermes also accepts `hermes skills install agent-sh/computer-use-linux/skills/computer-use-linux`.\n\n### Generic MCP client\n\nSpawn the binary with `[\"mcp\"]` as the argv tail. It speaks JSON-RPC over stdio per the rmcp 2024-11-05 protocol; capability discovery happens through `tools/list` and the `doctor` tool. The server normally needs no MCP-specific configuration, but desktop runtime environment still matters (`DBUS_SESSION_BUS_ADDRESS`, `XDG_RUNTIME_DIR`, portals, AT-SPI, `ydotoold`, and optionally `COMPUTER_USE_LINUX_COSMIC_HELPER`).\n\n## First-run checklist\n\n1. **Run `doctor`.**\n\n   ```bash\n   computer-use-linux doctor | jq .readiness\n   ```\n\n   Aim for `can_register_mcp_tools`, `can_build_accessibility_tree`, `can_send_development_input`, and `can_query_windows` all `true`. The `blockers` array should be empty.\n\n2. **If `accessibility.at_spi_bus.ok = false`** — run `computer-use-linux setup` (or call the `setup_accessibility` MCP tool). This sets:\n   - `org.gnome.desktop.interface toolkit-accessibility true`\n\n   You may need to restart toolkit-using apps for the change to take effect.\n\n3. **If `windowing.can_list_windows = false`** — inspect `doctor.windowing.backends`. On GNOME Wayland, run `computer-use-linux setup-window-targeting` (or call `setup_window_targeting`) to install the bundled `computer-use-linux@avifenesh.dev` Shell extension, then log out and back in so GNOME Shell loads it. On KDE, Hyprland, i3, COSMIC, or generic X11, install or expose the matching compositor tool/helper shown in the backend details.\n\n4. **Grant the screencast portal on first screenshot.** The first time `get_app_state` or any screenshot subcommand runs, GNOME will pop a portal dialog asking to share the screen. Accept once and tick \"remember\" to make it sticky for the session.\n\n5. **Confirm compatible ydotool 1.0.3+ and `ydotoold` are available.**\n\n   ```bash\n   systemctl --user status ydotoold\n   ```\n\n   Its socket should appear at `/run/user/$UID/.ydotool_socket`.\n\n## Environment variables\n\nMost setups need none of these — `doctor` and the installers pick sensible defaults. They exist for overriding auto-detected paths and input backends.\n\n**Server runtime** (set in the MCP host's environment):\n\n| Variable | Effect |\n| --- | --- |\n| `COMPUTER_USE_LINUX_NOTIFY_ON_COMPLETE` | Set exactly to `1` to expose the optional `complete_interaction` notification tool. Requires `notify-send` and a desktop notification service; disabled by default. |\n| `COMPUTER_USE_LINUX_COSMIC_HELPER` | Path to the `computer-use-linux-cosmic` helper when it isn't next to the binary or on `PATH`. |\n| `CU_DISABLE_ABS_POINTER` | Disable the uinput absolute pointer and click through `ydotool` instead for setups where the abs-pointer device misbehaves. |\n| `COMPUTER_USE_LINUX_FORCE_PORTAL_POINTER` / `…_KEYBOARD` | Always route pointer / keyboard through the RemoteDesktop portal on Wayland, skipping auto-detection. |\n| `COMPUTER_USE_LINUX_FORCE_YDOTOOL_POINTER` / `…_KEYBOARD` | Always route pointer / keyboard through `ydotool`, skipping the portal and KDE clipboard paths; pointer forcing also skips native-X11 `xdotool` coordinate clicks. |\n| `COMPUTER_USE_LINUX_FORCE_XDOTOOL_KEYBOARD` | Prefer `xdotool`/XTEST keyboard input when `DISPLAY` is available. `COMPUTER_USE_LINUX_FORCE_YDOTOOL_KEYBOARD=1` takes precedence. |\n| `COMPUTER_USE_LINUX_SCREENSHOT_BACKEND` | Force a single screenshot backend, skipping the fallback chain. Accepts `gnome-shell`, `portal`, or `gnome-screenshot`. Pin `gnome-screenshot` for background/systemd contexts where the GNOME Shell and portal DBus paths are denied. |\n| `COMPUTER_USE_LINUX_ENABLE_SHELL` | Set exactly to `1` before starting the MCP server to register the destructive `run_shell` tool. Unset by default. Do not enable for untrusted or unattended MCP hosts. |\n\n**Build-time identity overrides** (set while compiling a downstream embedded\nbundle): `CUL_GNOME_EXTENSION_UUID`, `CUL_DBUS_SERVICE`, and\n`CUL_DBUS_OBJECT_PATH` replace the default standalone GNOME Shell extension\nUUID and DBus endpoint in both the Rust probes and the generated extension\nfiles.\n\n**npm wrapper** (set during `npm install`, or before running):\n\n| Variable | Effect |\n| --- | --- |\n| `COMPUTER_USE_LINUX_BIN` | Run this binary instead of the one bundled by the npm package. |\n| `COMPUTER_USE_LINUX_DOWNLOAD_BASE` | Override the GitHub release base URL the installer downloads from (mirrors, air-gapped hosts). |\n| `COMPUTER_USE_LINUX_SKIP_DOWNLOAD=1` | Skip the post-install binary download entirely. |\n| `COMPUTER_USE_LINUX_LOCAL_BINARY` / `…_LOCAL_COSMIC_HELPER` | Install from a local build instead of downloading (used by CI and local testing). |\n\n## Architecture\n\n- **Accessibility tree** — [`atspi`](https://crates.io/crates/atspi) crate (tokio backend) talks to the AT-SPI registry on the user session bus. The tree is flattened to `(role, name, text, states, bounds)` tuples and indexed; element indices are stable for the duration of a `get_app_state` snapshot.\n- **DBus where desktops expose it** — [`zbus`](https://crates.io/crates/zbus) for portal calls (`org.freedesktop.portal.Screenshot`, `…RemoteDesktop`, `…ScreenCast`), GNOME Shell screenshots (`org.gnome.Shell.Screenshot`), the bundled GNOME extension's `dev.avifenesh.ComputerUseLinux.WindowControl` service, and temporary KWin scripting.\n- **MCP transport** — [`rmcp`](https://crates.io/crates/rmcp) with the `transport-io` feature; stdio framing, no network.\n- **Input fallback** — on X11, keyboard input prefers `xdotool`/XTEST and falls back only when xdotool cannot launch. On Wayland, literal text uses `wtype` when installed and the remote-desktop portal is unavailable; `wtype` supports Unicode through the virtual-keyboard protocol on compatible compositors such as Hyprland/wlroots. If wtype is unavailable, the binary falls back to a compatible ydotool 1.0.3+ CLI and `ydotoold` socket. A launched wtype failure is returned without replaying the text. `install.sh` can configure `ydotoold`; the `setup` command only enables the GNOME AT-SPI bridge.\n- **Native X11 coordinate clicks** — eligible native X11 sessions use one supervised `xdotool mousemove -- X Y click --repeat N BUTTON` command for left, middle, and right clicks; ydotool is used only when xdotool cannot launch, while a launched nonzero xdotool command is reported as an error without replay. `COMPUTER_USE_LINUX_FORCE_YDOTOOL_POINTER=1` skips this xdotool path.\n- **Window registry** — `list_windows`, `focused_window`, `activate_window`, `press_key`, and `type_text` share a backend registry. It tries GNOME extension, GNOME Introspect, COSMIC helper, KWin scripting, Hyprland `hyprctl`, i3 IPC, and generic X11/EWMH in that order, skipping empty or failed backends so another compositor backend can answer.\n- **GNOME extension fallback** — recent GNOME builds deny `org.gnome.Shell.Introspect.GetWindows` to non-blessed clients. The bundled Shell extension exposes window data and exact activation under `dev.avifenesh.ComputerUseLinux.WindowControl`.\n- **COSMIC helper** — `computer-use-linux-cosmic` talks to COSMIC toplevel protocols and is resolved from `COMPUTER_USE_LINUX_COSMIC_HELPER`, next to the running binary, or from `PATH`.\n- **Terminal enrichment** — `list_windows` cross-references each terminal window with its controlling TTY and the foreground process on that TTY, so `type_text` / `press_key` can target \"the terminal where `pytest` is running\" without the host ever knowing the window id.\n\n## Security\n\nComputer-use tooling is, by definition, a privilege-escalation surface. The threat model:\n\n- **`ydotoold` runs as a per-user service** with read/write access to `/dev/uinput`. `install.sh` automates this for systemd user sessions and prints manual supervisor guidance elsewhere. Any process that can connect to its socket (`/run/user/$UID/.ydotool_socket`, mode `0600` by default) can synthesize arbitrary input — keypresses, clicks, anything. Keep the socket in the user runtime dir (the default), not in `/tmp` or any world-readable location. Do not run `ydotoold` as root or as a system service.\n- **The screencast portal asks for permission once per session.** Granting it lets the calling MCP host capture the screen for the rest of the session. If you don't want that, decline the portal dialog and use `get_app_state` with `include_screenshot: false`.\n- **AT-SPI exposes window contents to any client on your session bus.** Enabling the AT-SPI bridge (`setup_accessibility`) is a prerequisite for this binary; it's also what screen readers use, and it shares the same trust boundary.\n- **The GNOME Shell extension** is loaded only into your user's GNOME Shell, runs in the Shell's JS sandbox, and exposes a single DBus interface on the user session bus. It does not request any extra permissions.\n- **No network.** This binary opens no TCP/UDP listener, makes no outbound Internet connections, and ships no telemetry. It does use local session transports such as DBus and the per-user `ydotoold` Unix socket.\n- **Mutating tools are explicit.** The MCP tool list annotates read-only versus mutating tools, and CI fails if the published tool annotations drift from the table above. Treat those annotations as hints; the host is still responsible for user approval and policy.\n\nIf you're running this on a shared workstation, set `ydotoold`'s socket permissions to `0600` (the default) and audit which processes on your user can `connect()` to it.\n\n## Troubleshooting\n\nTo receive an explicit completion cue, start the MCP server with\n`COMPUTER_USE_LINUX_NOTIFY_ON_COMPLETE=1`. This exposes `complete_interaction`,\na parameter-free tool the agent calls once after finishing its desktop work.\nIt submits a notification through `notify-send` with a two-second execution\nlimit and bounded process cleanup. Missing services, errors, or timeouts return\n`cue: \"skipped\"`; notification settings may suppress a submitted cue. This does\nnot reserve the desktop or prove that other clients have stopped sending input.\nNo sound or additional desktop settings are enabled by this option.\nThis option currently applies only to directly spawned MCP hosts. The native Pi\nextension does not forward the flag or include this optional tool in its catalog.\n\n`setup` and `setup_accessibility` write and read back GNOME's\n`org.gnome.desktop.interface toolkit-accessibility` setting, even if AT-SPI\nis already enabled at runtime. A runtime-only success is reported as a warning:\nnewly launched GTK apps may still have no tree. Enabling the saved key may\nrequire restarting target apps. Other accessibility tools can change that key\nlater; setup does not continuously override user settings.\n\nFor an explicit foreground guard while using desktop automation, run:\n\n```bash\ncomputer-use-linux guard-accessibility\n```\n\nThe guard registers a passive AT-SPI window-activation listener and watches\nGNOME's saved `toolkit-accessibility` key. It re-enables the key after a reset\nand verifies it by readback, with periodic checks as well as change monitoring.\nThis affects all applications using the current user's GNOME setting, not just\nthe target app. It does not start a screen reader or change focus.\n\n`mcp`, `setup`, `setup_accessibility`, and `get_app_state` never start this guard.\nStop it with Ctrl-C or SIGTERM **before** intentionally disabling accessibility.\nStopping ends setting writes and removes its listener without disabling other\naccessibility clients or restoring an old saved value. A reset and reassertion\nare not atomic: an app launched in that interval may still need restarting.\nThis is an opt-in mitigation, not a guarantee that every GNOME toggle sequence\npreserves application accessibility trees.\n\n`computer-use-linux doctor` is the source of truth. Common failure modes and fixes:\n\n- **`accessibility.at_spi_bus.ok = false`** — AT-SPI registry isn't running or the toolkit bridge is off. Fix: `computer-use-linux setup` (or call the `setup_accessibility` MCP tool). Restart the apps you want to drive.\n- **`windowing.gnome_shell_introspect.ok = false` and `gnome_shell_extension_dbus.ok = false`** — GNOME blocks introspection and the extension isn't installed. Fix: `computer-use-linux setup-window-targeting`, then log out and log back in.\n- **`input.ydotool_socket.ok = false` while ydotool is the selected fallback** — daemon isn't running. On systemd, run `systemctl --user enable --now ydotoold`. On other init systems, rerun `./install.sh` and configure your per-user supervisor with the command it prints. If `ydotool` is not packaged for your distro, use another input backend or install a compatible ydotool release manually.\n- **`input.ydotool.ok = false` with an unsupported CLI message** — install ydotool 1.0.3 or newer. A running daemon or socket alone is not enough; `doctor` verifies the raw key, wheel, stdin typing, and absolute-movement command family before advertising the backend.\n- **`input.uinput.ok = false`** — `/dev/uinput` isn't accessible to your user. Fix: add yourself to the `input` group (`sudo usermod -aG input $USER`) and re-login. On distros that ship `uinput` as a kernel module without auto-loading it, add `uinput` to `/etc/modules-load.d/`. Direct uinput supplies absolute pointer input only, so `doctor` also requires a keyboard-capable portal, xdotool, or ydotool backend.\n- **Portal calls hang or time out** — `xdg-desktop-portal` or its backend (`-gnome`, `-gtk`, `-kde`, `-wlr`) crashed. Fix: check `journalctl --user -u xdg-desktop-portal -u xdg-desktop-portal-gnome --since '5 min ago'` and restart the relevant unit.\n- **KWin / Hyprland / i3 / COSMIC / X11 windowing is unavailable** — check `doctor.windowing.backends`. KWin needs session-bus scripting; Hyprland needs `hyprctl`; i3 needs `i3-msg` and its IPC socket; generic X11 needs `wmctrl` and `xprop`. COSMIC needs `computer-use-linux-cosmic`, which the standard installers provide automatically; if you copied binaries by hand, copy the helper too or set `COMPUTER_USE_LINUX_COSMIC_HELPER`.\n- **Screenshots return black frames on multi-monitor setups** — known portal / compositor edge case. Use `get_app_state` with `include_screenshot: false` and rely on AT-SPI until the portal backend is healthy.\n- **`type_text` types into the wrong window** — pass an explicit target (`window_id`, `pid`, `wm_class`, `title`, or for terminals `tty` / `terminal_pid` / `terminal_command` / `terminal_cwd`). Without a target, input goes to whatever window currently has compositor focus.\n- **Wayland pointer actions miss an unfocused window** — injected pointer input is subject to the compositor's input-focus rules. Call `activate_window` for the target before `click`, `drag`, or coordinate `scroll`; a pointer can land at the requested coordinate without the unfocused surface receiving the action.\n\nIf `doctor` is green and a specific tool still misbehaves, file an issue with the JSON output of `doctor` and the failing tool's request payload.\n\nFor coordinate calibration, launch [the GTK4 probe](examples/coordinate_probe.py)\nin your test desktop and take a targeted screenshot. Choose the center of its\ngreen 10x10 square from that screenshot, convert by `scale`, and click relative\nto the same target window. The probe's delivered-event `hit: true` is the\nacceptance condition. Do not pass its widget-local `(85, 85)` directly as a\nwindow-relative click: margins and decorations belong to different spaces.\n\n[The semantic-click regression](scripts/semantic_click_test.py) runs against a\nbuilt binary in an isolated graphical display and checks actual GTK3 button\nactivation through MCP at scales 1 and 2. This does not establish correctness\nof Mutter 46 EWMH move/resize, all mixed-output layouts, or GNOME 50.4 pointer\nclicks.\n\nNative Wayland qualification on GNOME 50.1 at 133.3% display scale used the\nsame green target for both modes: crop-relative `(122, 145)` and desktop\n`(2140, 193)` both delivered widget coordinates approximately `(84.81, 84.78)`\nwith `hit: true` through uinput. These are one capture's measured coordinates,\nnot reusable offsets. Raw surface coordinates must still be transformed before\ncomparing them with a widget-local target.\n\n## Related\n\n- [agent-workspace-linux](https://github.com/agent-sh/agent-workspace-linux) — the sibling MCP that gives an agent its **own** isolated Linux desktop (a hidden Xvfb display with its own apps and browser) instead of driving yours. It is the inverse of this project: `computer-use-linux` automates the desktop you are already on; `agent-workspace-linux` sandboxes the agent in a separate one. Use them together.\n\n## Contributing\n\nContributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for the local development workflow, CI gates, and PR expectations. Report security vulnerabilities through [SECURITY.md](SECURITY.md), not public issues.\n\n## Credits\n\nExtracted from [`codex-desktop-linux`](https://github.com/avifenesh/codex-desktop-linux), the Linux distribution of Codex Desktop, which continues to ship this same binary as a bundled plugin. Maintained by [Avi Fenesh](https://github.com/avifenesh).\n\nBuilt on top of:\n\n- [`atspi`](https://crates.io/crates/atspi) — AT-SPI bindings\n- [`zbus`](https://crates.io/crates/zbus) — async DBus\n- [`rmcp`](https://crates.io/crates/rmcp) — MCP runtime\n- [`ydotool`](https://github.com/ReimuNotMoe/ydotool) — Wayland-friendly uinput driver\n- [`cosmic-protocols`](https://crates.io/crates/cosmic-protocols) — COSMIC Wayland toplevel protocol bindings\n\n## Publishing\n\nPublishing is tag-driven from GitHub Actions. The repository needs these Actions secrets:\n\n```bash\ngh secret set CARGO_REGISTRY_TOKEN -R agent-sh/computer-use-linux\ngh secret set NPM_TOKEN -R agent-sh/computer-use-linux\n```\n\nThen bump `Cargo.toml` and `package.json` together, update `CHANGELOG.md`, and push a `vX.Y.Z` tag. CI runs the full Rust and MCP safety gates, builds release assets for both architectures, publishes `computer-use-linux` to crates.io, and publishes the npm wrapper after the GitHub release binaries are available.\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n","readmeFilename":"README.md"}