JSystems

How Claude Opus 5.5 one-shotted most of JAgents, an AI agent manager

Short answer

JAgents is an agent manager and the next JSystems app. Claude Opus 5.5 produced a working app with about 90% of the core features in one shot, including the MCP server, by reusing the Agent Client Protocol (ACP) code and chat interface from two of my apps that are still in development, Plugin App and Cutline desktop. Agents run in threads or terminals, and a built-in MCP server lets them talk to each other, so Claude 1 can message Claude 2. Other parts took more rounds of refinement. JAgents is out now in beta for Windows, free, with its source on GitHub.

JAgents is an agent manager for Windows, for people who run more than one AI coding agent at a time. You run Claude Code, Codex, Devin, Cursor, and others in a terminal or a chat, side by side in one window, and they can talk to each other. Plugins let you shape the app the way you want it. It is out now in beta, free, and its source is on GitHub. This is a building in public post about how it got built.

Mostly one-shotted with Claude Opus 5.5

I asked Claude Opus 5.5 for an agent manager. Its first try was a working app with about 90% of the core features. A lot of it worked on the first try, including the MCP server that lets agents talk to each other.

It was not all one shot, though. Other parts took more rounds of fixes and refinement, and the app is still being refined during the beta.

The most useful part of the request was not to start from scratch. I already had working agent code in two other apps I am building. Neither one is released yet:

  • Plugin App (coming soon), which talks to coding agents over the Agent Client Protocol (ACP).
  • Cutline desktop (in development, not released), another app of mine that drives ACP agents.

I told Opus 5.5 to reuse those parts, including the interface, and it did. Then it added the new parts on top.

What came from my unreleased apps

Part of JAgentsWhere it came from
Starting and talking to ACP agents, resuming a chat after a restartPlugin App
Finding each agent's program on Windows (Cursor, npm installs)Plugin App
Switching agents in the middle of a chat and passing the conversation alongPlugin App and Cutline desktop
Answering an agent's permission requestsCutline desktop
Saving chats and settings in one local SQLite filePlugin App
The chat composer: Agent and Model pickers, Enter to send, StopPlugin App
Colors, fonts, and the picker menusPlugin App, with menu styles from Cutline desktop

Because this code already worked in those apps on my own machine, the agents in JAgents behave the way they do in Plugin App, and the chats look the same. Opus 5.5 turned Plugin App's chat screen into a piece that can appear many times, so JAgents can show several chats at once.

What is new in JAgents

Threads or terminals

Every agent runs one of two ways:

  • In a terminal: Claude Code, Codex, Cursor Agent, the Devin CLI, or a plain shell, in a real terminal.
  • In a thread: a chat with Devin, Cursor, Claude Code, Codex, Gemini CLI, OpenCode, GitHub Copilot CLI, or Kimi CLI.

Code mode splits the window between terminals and threads as a grid, in columns, or in rows. Thread mode lists every thread and opens one at full width. Every agent gets a short name like claude-1 or devin-2.

Claude 1 can talk to Claude 2

This is the main idea. JAgents has its own MCP server. Every chat agent is connected to it, and so are Claude Code and Codex when they run in a terminal. Through it an agent can:

  • See who else is running, with each agent's name and folder.
  • Send a message to another agent. A terminal agent gets it typed into its prompt. A chat agent gets it as its next message, queued if it is busy.
  • Read another agent's work: the last lines of a terminal, or a chat's messages and tool calls.
  • Start a subagent on a task, using any installed chat agent, and wait for its answer. The subagent shows up as its own chat and reports back.
  • Wait for an agent to finish, or stop one.
  • Hand off its work to another agent, new or already running, so it can keep going where the first one stopped.

So if you open Claude Code twice, claude-1 can send claude-2 a task, wait for the answer, and keep working. The same goes across agents: Claude Code can ask Devin to review a change. Nobody has to copy text between windows.

You can also install the same MCP server into the settings of Claude Code, Codex, Cursor, and Gemini CLI from the app, so those agents can reach it even when you start them outside JAgents. Nothing is installed until you press Install.

Make the app your own with plugins

JAgents also has plugins, an idea from Plugin App. You don't have to wait for me to add a feature: ask an agent for it. It writes a plugin that adds a button, a sidebar section, a new kind of pane, or a new MCP tool. The app reloads it right away, tells you which agent changed it, and keeps the old version so you can undo it.

Free, with the source on GitHub

Paid agent workspaces cost money every month. JAgents is free, and its code is public at github.com/Josephivgi/JAgents, with every release and installer there too.

Out now in beta

JAgents is out in beta for Windows 10 and 11. Get it from the JAgents page by running JAgents-Setup.exe. It needs no admin rights, and new versions install from the Updates box in the app. Some parts will still change, so if you hit a bug, report it on Discord. For what changed since launch, see how JAgents keeps agents running through a restart.

Common questions

What is JAgents?

An agent manager for Windows and the next JSystems app. It runs AI coding agents such as Claude Code, Codex, Devin, and Cursor in threads or terminals, with a built-in MCP server that lets them message each other.

How was JAgents built?

Claude Opus 5.5 built a working app with about 90% of the core features in one shot, including the MCP server. Other parts took more refinement during the beta. It reused the ACP agent code, chat interface, and storage from two of my apps still in development, Plugin App and Cutline desktop, and added the MCP server and split terminals on top. Neither of those apps is released yet.

Can agents in JAgents talk to each other?

Yes. Through the built-in MCP server, any agent can list the others, send them messages, read their work, start subagents, and hand off its work. Two Claude Code agents can talk to each other, and so can different agents.

Which agents does JAgents work with?

Terminals run Claude Code, Codex, Cursor Agent, the Devin CLI, or a shell. Chats run Devin, Cursor, Claude Code, Codex, Gemini CLI, OpenCode, GitHub Copilot CLI, and Kimi CLI.

Can I download JAgents?

Yes. JAgents is out in beta for Windows 10 and 11. Download it free from jsystems.app/jagents.

Is JAgents open source?

Its source code is public on GitHub at github.com/Josephivgi/JAgents, and it is free to download and use.

Can I customize JAgents?

Yes. Ask any agent in JAgents for a change and it can write a plugin that adds a button, a sidebar section, a pane, or an MCP tool. Every plugin change can be undone.