This project provides a flexible shell access system with both client-server and peer-to-peer modes. Clients can connect directly to servers, access servers behind NAT via a central WAMP router, or establish peer-to-peer connections using WebRTC handshakes over WAMP. It’s designed for routed, secure, and versatile remote shell management.
wsh– WAMP shellwcp– WAMP file copywshd– WAMP shell daemonwsh-keygen– key pair generator for authentication
wsh connects to a remote wshd server (or peer-to-peer via WebRTC) and provides an end-to-end encrypted shell over WAMP, either interactive or for executing a single command.
wsh [options] <target> [command...]# Run a single command remotely
wsh user@hell ls -la
# via WebRTC (peer-to-peer)
wsh --p2p user@hell lswcp transfers files between local and remote hosts using encrypted WAMP sessions.
wcp <source> <destination># Copy a file from local to remote
wcp ./file.txt user@hell:/home/user/
# Copy a file from remote to local
wcp user@hell:/home/user/file.txt ./file.txtwshd runs on a host and provides shell sessions for incoming wsh connections.
# Start the daemon
wshd start
2025/09/17 22:15:13 Procedure registered: wampshell.shell.exec
2025/09/17 22:15:13 Procedure registered: wampshell.shell.upload
2025/09/17 22:15:13 Procedure registered: wampshell.shell.download
2025/09/17 22:15:13 listening on rs://0.0.0.0:8022Generates a public/private key pair for use with wsh and wshd.
# Generate a new key pair
wsh-keygen-
Generate a key pair
wsh-keygen
-
Run the daemon on the remote machine
wshd start
-
Connect from the client
wsh user@hell ip a
-
Copy a file
wcp ./test.txt user@hell:/tmp/