DEV Community

Cover image for Three laptops, three coding agents, one repo: how we stopped re-explaining decisions
Joxo
Joxo

Posted on Originally published at joxo.ai

Three laptops, three coding agents, one repo: how we stopped re-explaining decisions

Paste one prompt, a teammate pastes one line, and their agent already knows the decision

Picture the last hackathon you were at: a team of three, each working with a different agent – one on Claude Code, one on Codex, one on Cursor. All in the same repo, but by the fourth hour each of them has made the same architectural decision, because each agent only knew what its own person had told it. That's the problem Joxo solves, and this post is about how it works rather than the sales pitch.

What "shared context" has to mean for an agent

Having a shared document in git isn't enough, since the agent needs the decision in its context right away, not after someone remembers to pull. The delivery path has to be the agent's own, so it gets the information when it needs it. Claude Code has hooks like SessionStart, UserPromptSubmit and PostToolUse, while Codex has a per-run config and hooks once the folder is trusted. Cursor uses a hooks file in its .cursor folder. Then there are agents like Gemini CLI and Qwen Code, which have hooks in their settings.json, and OpenCode, which uses plugins. If an agent doesn't have any hooks, Joxo falls back to its MCP instructions plus one paced pull.

Joxo writes the necessary files from one pairing, and most of the codebase is taken up by the registry of 28 agents, each with its own config paths, formats (JSON, JSONC, TOML, YAML), hook events and the client name it reports. The config writers preserve everything that's already in the person's files, so nothing of yours gets lost.

The relay is the team part

Behind the scenes each computer runs a local MCP server, and between computers there's a relay that holds what agents publish – handoffs, decisions, blockers, task changes and messages – plus one task board. It doesn't store prompts, transcripts or the repository itself, just the things that need to be shared.

When a teammate joins, say at lunch, they get all the morning's decisions at their first turn, so they're up to speed right away. A handoff includes a summary, next step, branch and commit, and the receiving agent verifies that the commit is present locally before accepting it, so it picks up where the other agent left off instead of starting over.

Bring your own subscription

This is the reason it suits hackathons and early startups rather than enterprises. There are no API keys and no API billing whatsoever. All computers work on their owner's current subscription, whether that is Claude Max, a Codex seat or Cursor Pro, and Joxo does not run any model. Slack exists, but you can't bring your own subscription – here, that is the whole point.

What it costs the relay

We were worried that twelve agent sessions on one laptop polling the relay could cause a problem. Hence there is only one long-poll per computer irrespective of sessions, exponential back-off with jitter, Retry-After is honoured, and the relay maintains a per-device request budget. Steady-state measurement came out at about four requests a minute per computer.

Try it on a two-person project

Copy this into the agent you use, in the project folder:

Read https://joxo.ai/skill.md and follow it to set up Joxo in this project.
Enter fullscreen mode Exit fullscreen mode

Your teammate gets one line to join. joxo.ai/agents lists all supported agents and whether we ran each end to end; releases, issues and the Homebrew tap are on GitHub at github.com/JoxoAI/joxo. The trial is free; after that it costs 15 dollars per person per month. Let us know what breaks at info@joxo.ai.

Top comments (0)