Your mower's own app, from anywhere.
Open your MowgliNext robot's web interface from your phone or computer when you are away from home. No VPN, no port forwarding, no new app. Free.
Prototype, invite-only for now. Read the status before you install it.
How it works
Three steps, once. After that, your robot is a bookmark.
-
Install the agent
One small container runs next to MowgliNext on the robot. The installer asks for a name and whether to allow the remote joystick, then prints a three-word pairing code. MowgliNext itself is not changed.
-
Pair it with your account
Sign in at connect.bronc.app with GitHub and enter the code. The robot gets its own address, such as
hedgehog.bronc.app, and is linked to you. -
Open your robot
Press Open. You are signed in to the robot's own interface: the same dashboard, map and settings you use at home.
Install
The agent runs as its own Compose project in ~/mowgli-connect, so MowgliNext updates do not touch it. You need:
- a MowgliNext robot with Docker and Docker Compose v2
- internet access from the robot
- an amd64 or arm64 CPU
- a GitHub account that has been invited
Run it yourself
-
Run the installer on the robot
Open a shell on the robot, for example over SSH, and run the command below. It downloads the script and shows it to you in
lessfirst (pressqto continue) before it runs. The installer asks for a robot name, whether to allow the remote joystick (default no, recommended) and whether to install updates automatically (default yes), starts the container and prints a pairing code.curl -fsSL https://bronc.app/install.sh -o install.sh && less install.sh && sh install.sh -
Pair the robot
Go to connect.bronc.app, sign in with GitHub (invite-only for now) and enter the pairing code. The robot gets its own address, such as
https://hedgehog.bronc.app. -
Open it
Press Open next to your robot. You are signed in to its own interface, from anywhere.
Let an AI agent install it
Using Claude Code, Codex or another coding agent that can reach your robot over SSH? Copy this, replace the SSH line with how you reach your robot, and paste it to the agent. It follows a written guide, asks you for a name and about the joystick, and hands you the pairing code. Pairing itself stays with you.
Install Mowgli Connect on my MowgliNext robot so I can open its web interface from anywhere.
Robot: ssh user@my-robot.local
Follow the guide at https://bronc.app/agents.md step by step. Ask me before you change anything outside ~/mowgli-connect, ask me whether to allow the remote joystick, and give me the pairing code when you are done.
- It checks Docker, the robot's web interface and the internet connection first.
- It keeps the joystick off unless you say yes.
- It does not touch MowgliNext, your router or your firewall.
Read exactly what the agent is told: agents.md. When it is done, sign in at connect.bronc.app and enter the code, as in step 2 of the other tab.
- Update
cd ~/mowgli-connect && docker compose pull && docker compose up -d- Uninstall
cd ~/mowgli-connect && docker compose down -v, then unlink the robot on connect.bronc.app.- Pairing code again
docker logs mowgli-connect
Details, the joystick choice and troubleshooting are in the install guide. To run your own relay instead, see relay/README.md.
Where your data goes
Live data takes the short way: from your browser through Cloudflare's network straight to the agent on your robot.
- Your browserphone or computer
- Cloudflare Tunnelencrypted, no open ports at home
- Agent on the robotchecks every request, then forwards it to the MowgliNext interface
The login service stays out of the way. It is a Cloudflare Worker that only handles sign-in, pairing and a 60-second pass to open a robot. Maps, commands and live data travel between your browser and your mower through the tunnel and never pass through it.
Built to be safe
The mower keeps control of itself. Remote access is a checked, revocable door into its interface, nothing more.
- Every request is checked on the robot.Including live WebSocket data. The agent verifies each one before it reaches the mower's software.
- Each robot stands alone.It has its own Ed25519 key and its own tunnel. Access to one robot does not give access to another.
- Remote joystick is off by default.It can only be turned on on the robot itself, when you install. The login service cannot enable it.
- Safety stays on the mower.Emergency stop, collision handling and the firmware watchdog run on the robot and work without internet.
- The container locks its own network.Even someone who took over the Cloudflare account could not use the tunnel to reach your home network, the robot's other services or its operating system. They could still use the mower's interface as the owner.
- Sign-out reaches the robot within minutes.If the robot loses contact with the login service, remote access stops instead of staying open.
- Light on mobile data.Live data is compressed and heavy map layers are sent less often. On a real mower the map page dropped from about 357 KB/s to about 7 KB/s through the tunnel.
- Source available and reviewed.Several independent reviews by AI models are in the repository, and their findings were verified and fixed or documented. See docs/research.
Privacy
Signing in with GitHub gives the login service your GitHub user id, username and display name. It stores those, which robots you have paired, and short-lived sign-in records (hashed). It does not store your mower's data, maps, GPS position or telemetry, and that data does not pass through it.
Your traffic does go through Cloudflare. Cloudflare ends the encrypted connection (TLS) at its edge and forwards it through the tunnel, so Cloudflare can technically see it. The login service also runs on Cloudflare.
Questions or removal requests: open an issue on GitHub.
Why I made this
I wanted to check on my own mower from wherever I happened to be, without opening ports on my home network, setting up a VPN or paying for a service. So I built this for my own mower.
It is a side project and still early. If something breaks or looks wrong, open an issue and I will take a look.
Bruno
liltaket on GitHub
Still a prototype
Sign-in is invite-only while it is being tested.
- Tested end to end through real Cloudflare with the real MowgliNext interface and a simulated robot, from a phone on 5G.
Details in the test report. - Installed, paired and opened on one real mower so far: a lab mower on a Raspberry Pi, using the published image.
- The agent image is
ghcr.io/liltaket/mowgli-connect-agent, for linux/amd64 and linux/arm64. - Not yet tested: the remote joystick over a real connection, and longer everyday use.