A cross-platform desktop client for remotely accessing Shells™ virtual desktop instances.
A Shells™ account is required to use this application. You can create an account at shells.com.
- Remote desktop access to your Shells™ virtual machines
- Cross-platform support (Linux, macOS, Windows)
- SPICE protocol for high-performance display, keyboard, and mouse input
- Audio support via PortAudio and Opus codec
- Clipboard sharing between local and remote systems
- OAuth2 authentication with QR code support for thin clients
- Go 1.24 or later
- CGO enabled (required for audio and graphics dependencies)
Install the required development packages:
# Debian/Ubuntu
sudo apt-get install libgl1-mesa-dev libxcursor-dev libxrandr-dev \
libxinerama-dev libxi-dev libxxf86vm-dev libasound2-dev pkg-config
# Fedora
sudo dnf install mesa-libGL-devel libXcursor-devel libXrandr-devel \
libXinerama-devel libXi-devel libXxf86vm-devel alsa-lib-devel pkgconfigXcode command line tools are required:
xcode-select --installMSYS2 with MinGW64 toolchain is recommended for building on Windows.
go build -v .For producing portable binaries with statically linked audio libraries, add the following to go.mod:
replace github.com/gordonklaus/portaudio => github.com/KarpelesLab/static-portaudio v0.6.190600
replace github.com/hraban/opus => github.com/KarpelesLab/static-opus v0.9.152
SHELLS_FULLSCREEN=WIDTHxHEIGHT- Start in fullscreen mode with specified resolution (e.g.,1920x1080)SHELLS_LOGIN=thin- Use QR code login flow for thin client deployments
The client includes an integration with Claude Computer Use, exposing the remote desktop to Claude over a local HTTP API. This lets Claude see the screen and drive mouse/keyboard input on the remote machine.
- Claude can see the remote desktop screen via screenshots
- Claude can control mouse movement and clicks
- Claude can send keyboard input
- Simple HTTP API for Claude to interact with the remote desktop
- Toggle to enable/disable Claude Computer Use
GET /api/v1/status- Get the current status of Claude Computer UseGET /api/v1/screenshot- Get a screenshot of the current desktopPOST /api/v1/control- Send control commands to the remote desktop
The API binds to 127.0.0.1:8080 by default.
This software is proprietary to Shells™. See shells.com for terms of service.