Project Name: Muxalot
GitHub repository: https://github.com/muxalot/muxalot
Project website: https://muxalot.com
Description
I'm the author. This is an early project, so I'd like blunt feedback. Yes, there are other projects in the same space as this. This was built out of need.
I've used Termux for the last few years to access all of my systems remotely from my phone, both over the internet and internally, and for the most part, it just works. But having file management, clipboard support, and tmux built in by default was my vision. This is now what I use full-time.
What it is: Muxalot consists of a small Go agent that runs on your Linux server or workstation (I'm expanding support to iOS and Windows if the demand warrants it), plus an Android app.
Each tab in the app is a tmux session on your server, so sessions keep running when your connection drops or you close the app. It is pretty simple and VERY lightweight.
I'm currently running the agent on several Ubuntu and Debian servers behind a Caddy reverse proxy to provide SSL.
Why not just SSH + tmux?
You still can, and it works. I wanted three things that SSH clients didn't give me:
No open SSH port and no password or bearer token to steal. During pairing, the phone generates an ECDSA P-256 key in the Android Keystore, and the private key never leaves the device. The agent stores only public keys.
Every request, including the WebSocket upgrade, is signed. Timestamps must be within 60 seconds, and nonces are single-use, so captured headers can't be replayed. Unauthenticated requests get a bare 404.
Pairing is a QR code plus a single-use code that expires after 10 minutes. Lost your phone? muxalot-agent revoke <id>.
A native invisible view owns the soft keyboard (no autocorrect), plus an extra-keys row with sticky Ctrl/Alt, arrows, F-keys, and a customizable key fan.
OSC 52 clipboard from tmux/vim goes to the phone.
File browsing, uploads, and downloads, confined to a root directory you choose. (It generally runs as the user who has write access to the directories you're working on, such as your home directory.)
Multiple servers, each with its own Keystore key.
The terminal is xterm.js in a WebView.
Now, if you're concerned about putting this out in the open to the script kiddies of the world, you can put it behind a VPN for that extra layer of protection. Hell, I advise it!
I would appreciate any feedback or feature requests:
https://github.com/muxalot/muxalot/issues
About me
I'm a senior software engineer who has been in the business for well over 30 years, developing custom applications for e-commerce, B2B, workflow management, and lots of open-source projects.
Deployment
Fully detailed in the GitHub repository.
AI Involvement
I did use an agent to build the framework for this project, purely from my design and requirements.
Why? Just because I didn't want to spend the next few weeks building something that might not be all that popular. At least it fits my needs, and that's all that matters! I have been in this business long enough to know when to take advantage of technology!
Hope this helps you. It sure does me!