{"slug": "mjolnir-web-remote-agentic-coding-with-tailscale-integration", "title": "Mjolnir Web: Remote Agentic Coding with Tailscale Integration", "summary": "Mjolnir Web, a new remote agentic coding tool from Brokk AI, lets developers spawn and monitor coding sessions from a phone or browser with one command, 'mj server', and includes Tailscale integration for secure access. It syncs existing Mjolnir sessions bidirectionally, supports worktrees, and features an adversarial review pipeline that runs in the browser, addressing limitations the author found in Claude and Codex remote-control options.", "body_md": "# Mjolnir Web: Remote Agentic Coding with Tailscale Integration\n\nOne of the great promises of agentic coding is that we can spawn a bunch of sessions and tasks and just monitor them. We don’t even technically need to be at our computers — most of this is plain English, and then I just need to do code reviews for sanity checks and some manual testing. You think to yourself, “I can probably do 80% of my job from my phone instead of spending all day staring at my desktop.”\n\nI thought that too. I bit into it hard and used everything Claude and Codex have to offer, and while I’m appreciative of their efforts, I was honestly underwhelmed.\n\n**Claude remote-control**\n\nWhich one? The one you use with the desktop app (Dispatch, I think) that gives you an uber-thread and sort of launches child sessions? Or claude remote-control, which lets you launch up to 32 headless sessions in a given directory — so you’re spawning a bunch of these across your various projects before you go out to lunch? Or the one that, once you enable it, ships your sessions up to the cloud so you can drive an open terminal session remotely? Is there a single command you run to get all of that? Is any of this coherent? Did anyone reading this even know about all of those options?\n\n**Codex remote-control**\n\nYou have to do some complicated login-code thing with the app, and then it eats battery pretty badly. OK, but it’s still really useful, right? And not nearly as complex to set up as Claude. Oh — it only works with the desktop app? What if you use the TUI? Oh, there’s this handy codex remote-control command. Experimental, though. And your existing sessions aren’t automatically mirrored in both directions between the TUI and the remote.\n\n## Introducing Mjolnir Web\n\nSo after some very, very frustrating months with both, I wrote [Mjolnir Web](https://mjolnir.brokk.ai/remote/?ref=blog.brokk.ai). With one simple command, mj server, you get the following:\n\n- Web sessions not connected to a Mjolnir TUI, so I can spawn new work from wherever I am\n- Existing Mjolnir sessions immediately sync in both directions\n- Worktrees built in for parallel workflows, so agents don’t smash into one another\n- The ability to resume existing closed sessions and pick up old work\n- A PWA that just works on a phone — drop-dead simple setup\n- Secure: pinned TLS certificates so your client knows it’s really your server, plus token pairing and signed session cookies so your server knows it’s really you\n- It doesn’t kill your battery\n- A nice desktop alternative to the TUI, if that’s your preference\n- A UI that mirrors the Mjolnir TUI as much as possible, for a familiar experience and limited context switching\n- Access from anywhere if you have Tailscale set up (it is automatically detected if active)\n\nHere’s what that actually looks like. Reviewing a diff from my phone:\n\nStarting fresh work is one dialog — pick a folder, tick the worktree box, go:\n\nAnd the full session view on a desktop, if you want the bigger picture — live diffs, terminal output, and per-seat token usage, mirroring the TUI:\n\nLook closely at that screenshot and you’ll notice something else that neither Claude nor Codex gives you: __Mjolnir’s adversarial review__ ran right there in the browser. What is an adversarial review you may be asking? Every set of changes gets challenged by an independent reviewer before I ever look at it, so the code review I do from my phone is a second pass, not the first line of defense. That pipeline deserves its own write-up: [Mjolnir’s Automated Cross-Vendor Adversarial Review](https://blog.brokk.ai/mjolnir-automated-cross-vendor-adversarial-review/).\n\n## Security\n\nA quick word on security, since you’re about to point your phone at the machine you get paid to work on.\n\nEverything rides on TLS. On a Tailscale node with MagicDNS and HTTPS certificates enabled, `mj server`\n\nfetches a real certificate for your machine’s `ts.net`\n\nname and renews it — no warnings, no “accept the risk” buttons. Everywhere else it generates its own certificate and clients pin it, so your phone knows it’s really your server and not something in the middle. Without Tailscale or an explicit `--hostname`\n\n, the server doesn’t expose anything at all: it binds loopback only and doesn’t even print a QR code.\n\nThe QR is a pairing shortcut, not a password. It carries a login token; once a device signs in, it holds a signed session cookie instead — 30 days by default, tunable with `--session-ttl-days`\n\n, or `0`\n\nfor a session that dies when the browser closes. On the machine itself, the six-digit viewer code does the same job. And if a phone walks off into the world, `mj server --logout-all`\n\nrotates the cookie signing key and signs every device out, while pairing keeps working for the devices you actually own.\n\n## Conclusion\n\nWith Mjolnir Web I can do everything I need to get my job done no matter where I am, and setup takes seconds instead of minutes. Unlike with Claude, I don’t have to run claude remote-control in every project I might want to touch before I go out. Unlike with codex remote-control, I don’t have to try to remember what I typed in the remote UI when I get back to my TUI. And of course neither of those lets you manage the others’ sessions, or even easily switch between personal and work subscriptions for the same service.\n\nWe’ve built a no-compromises experience with Mjolnir Web. And because Mjolnir itself is a frontend for Codex and Claude Code (thanks to the [ Agent Client Protocol](https://agentclientprotocol.com/get-started/introduction?ref=blog.brokk.ai)), you keep your existing subscription and models — you just get way more productive when you’re away from your desk, and, more importantly, spend less time setting it all up.\n\nHead over to\n\n[https://mjolnir.brokk.ai/](https://mjolnir.brokk.ai/?ref=blog.brokk.ai)to get started — or just run\n\n`npx -y @brokkai/mjolnir server`\n\n.", "url": "https://wpnews.pro/news/mjolnir-web-remote-agentic-coding-with-tailscale-integration", "canonical_source": "https://blog.brokk.ai/mjolnir-web-thsolution-for-remote-agentic-ai/", "published_at": "2026-08-24 12:36:52+00:00", "updated_at": "2026-08-24 12:45:15.751378+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "ai-agents"], "entities": ["Mjolnir Web", "Brokk AI", "Tailscale", "Claude", "Codex"], "alternates": {"html": "https://wpnews.pro/news/mjolnir-web-remote-agentic-coding-with-tailscale-integration", "markdown": "https://wpnews.pro/news/mjolnir-web-remote-agentic-coding-with-tailscale-integration.md", "text": "https://wpnews.pro/news/mjolnir-web-remote-agentic-coding-with-tailscale-integration.txt", "jsonld": "https://wpnews.pro/news/mjolnir-web-remote-agentic-coding-with-tailscale-integration.jsonld"}}