Launching today

Harness by Autonomous
Every coding agent, every machine, one command center.
403 followers
Every coding agent, every machine, one command center.
403 followers
Harness is the open-source command center for coding agents. Claude Code at work, Codex at home, Hermes in the cloud: every agent on every machine, side by side. Use the native desktop app, hn in your terminal, or the iOS and Android app to answer agents by voice. End-to-end encrypted. Then go beyond code with 49 harnesses for CAD, circuits, robots, games and music. Free on Mac and Linux.








I was confused at first but I extracted this "onboarding" from the main page without adding the harness and my agent almost bought a key (cute)
@christianruink Thanks, Christian, and sorry for the confusion. That's on us, not you. Love that your agent almost bought a key though 😄.
Quick version:
Harness runs the agents you already have, with your own accounts. So install the agent CLI first (Claude Code, Codex…).
⌘N, pick your agent and a folder, type the task, hit New Harness.
The pane opens with that agent running. If it isn't signed in yet, it shows the agent's own login right there.
Sign in once and you're set.
Where did it first feel confusing? We're fixing onboarding this week and your answer helps a lot.
this looks pretty interesting! I have a question pls, does it work good with agents running on remote devices?
@sig_eternal Yes, that's the main use case. Install Harness on the remote machine and sign in, and its agents show up next to your local ones. No SSH keys or VPN to set up. Harness connects your machines directly over WebRTC when it can, so typing in a remote pane feels local, and everything is end-to-end encrypted.
@sig_eternal One more detail: on the remote machine, run the 4 lines from our README (install, harness login, harness remote-password set, harness start), then go to Machines → Link Machine in the app.
github.com/autonomous-ai/openharness
Congrats, team! 🙌🏻 How does the end-to-end encryption work when agents are running across different machines? Is all communication encrypted by default?
@kate_ramakaieva Thanks Kate! Yes, it's on by default, nothing to turn on. Every path between your machines and devices is sealed end to end: each connection gets fresh X25519 session keys, every frame is encrypted with ChaCha20-Poly1305, and each machine has a pinned Ed25519 identity.
Your code, keys and keystrokes are sealed on your machine, and when traffic goes through our relay, it only forwards bytes it can't read. The crypto core is open source if you want to dig in: github.com/autonomous-ai/openharness
the agents asking something and just sitting there is the real pain, i lose more time to that than to bad code. how do you handle priority when 3 agents on diff machines all block at once? and is there a way to mark some actions as needs a human no matter what, like pushing to main or touching prod config
@hitensethiya Exactly the pain we built it for. When several agents block at once, the ones that need you jump to the top, the longest-waiting first, across every machine. You can answer from your desktop, terminal, or phone.
For "always needs a human" actions: new harnesses start in each agent's own auto mode, not a skip-every-check mode. For anything sensitive like pushing to main or prod config, pick a stricter mode under New Harness ▸ Advanced (Claude Code and Codex both have "ask"), and Harness brings every approval to whichever screen you're on.
Agents carrying on after the desktop app closes is a useful detail. I'd want to check in from the phone without worrying about keeping a window open on another machine.
@oleksii_sekundant Exactly that. Close the app and your agents keep working on their own machines. The iOS and Android app shows the same agents, so you can check in, answer with a tap, or say the next task, with no window left open anywhere.
Congrats to the Autonomous team on open-sourcing Harness. The coding-agent panes are clear; the CAD, circuits, and robots harnesses with a live viewer are the part I am still mapping. For something like MuJoCo or CircuitJS, what does a blocked "needs human" look like compared to a coding agent asking to push, and can you clear those from the phone the same way?
@genedai Thanks Gene! Under the hood, every domain harness is a regular agent paired with a live viewer. So a blocked MuJoCo or CircuitJS harness looks exactly like a coding agent asking to push: the same question in its pane, the same spot in the "waiting" list, and yes, you clear it from your phone the same way. The difference is what you check before answering: a simulation run or a scope trace in the viewer instead of a diff. Which harness are you most curious to try?