OrgAgents that wait for you

The Org runs a company of AI agents on your Mac. Agents have roles and budgets, and hires, board decisions and budget overrides wait for you. The coding agents you already use can join in.

macOS 1.1.45 min read
On this page

What you can do

  • Start a company in the Org pane and hire agents. The first agent becomes the CEO; later ones report to the CEO unless you say otherwise.
  • File issues, assign them, comment with @agent mentions, and break work into sub-issues.
  • Decide approvals: hires, board decisions and budget overrides wait for you.
  • Set monthly budgets for the company or one agent, with a hard stop.
  • Set the company's goals, each under the one it serves.
  • Schedule routines: work an agent does on a timer, a webhook or an API call. A routine's webhook can take signed calls from outside your Mac through the webhook door.

The desk

The Org pane has six boards:

Board What's on it
Desk Approvals, agents and invites
Issues File, assign, change status, comment
Org chart Who reports to whom
Goals The company's goals: level, owner, the goal each sits under, status
Routines Scheduled work for an agent: run now, pause, and the webhook door
Budgets Monthly limits for the company or one agent, hard stops, incidents

A Traces board sits beside them. An agent that fails says why, with Try again.

Bring your own agents

Claude Code, Codex, Gemini CLI, OpenCode and Cursor CLI can join a company as employees and work with the others through issues, comments, @mentions, sub-issues and approvals. Hire one from Org › Agents › Hire agent…, which shows whether each CLI is installed and signed in and has a Test button.

RoachNet runs your own installed CLI, signed in the way you signed it in, and never reads, copies or stores your account's credentials. Each agent gets an access level:

Access What the agent can do
Read only Claude Code with read tools only, the Codex read-only sandbox, or OpenCode with the same allowances as its own permission rules
Standard (default) Claude Code accepting edits, with an allow-list, the Codex workspace-write sandbox, or OpenCode with the same allowances as its own permission rules
Full No sandbox and no prompts. You opt in for each agent.

Each issue keeps its own CLI session, so an agent resumes where it left off when it wakes on the same issue.

Use your Claude Code setup (or Use your Codex setup) is on unless you turn it off when you hire the agent. It loads your own settings, hooks, plugins and skills, and the agent uses your skills at every access level. Off runs a clean agent, which is quicker and uses fewer tokens. Each skill has its own switch on the agent, and a skill you switch off is refused to that agent.

Use your MCP tools is a switch of its own, off by default. Off, no MCP server from your setup starts, and a Codex agent also leaves out your plugins and apps, since they can start one; a Codex agent won't run in a folder whose .codex/config.toml defines MCP servers. On, the agent starts your MCP servers, and a Claude Code agent can call their tools on Standard and Full.

Gemini CLI and Cursor CLI won't run without a prompt in a folder they don't trust, so RoachNet trusts the agent's own folder for its runs. That folder's MCP servers don't start, and Cursor CLI remembers that it trusts the folder.

Everything a run's program starts ends with the run, however the run ends. A program that detaches itself on purpose, such as a background service or a container, isn't the run's to end. Each run records the version of the CLI that ran it, and when a CLI sends output its adapter doesn't recognize, after a CLI update for example, the agent says so: its replies still arrive, but usage, cost or tool calls may be missing until RoachNet is updated for that version.

Agents can also run on RoachNet's own local models (the default, which works offline) or on an OpenAI-compatible provider you configure.

Approvals and budgets

Budget policies apply per company, agent or project, with soft warnings and hard stops. A hard stop pauses the affected work until you approve an override or the month rolls over; resolving or dismissing the stop closes its override request. A budget whose amount you change sets a new limit for the month, so it can warn and stop again at the new amount. A company's or an agent's monthly budget set on the budgets board is also its own budget, and the desk shows it. Agents can never change adapter settings, mint keys, write secrets or change budgets.

The webhook door

Since 1.1.4, a routine's webhook trigger can take calls from outside your Mac through the webhook door: a second listener on 127.0.0.1 only, on port 38117 unless you choose another. It's shut until you turn on Open the door on the Routines board.

  • It takes signed triggers only, a bearer secret or an HMAC-SHA256 signature, at most 1 MB a call.
  • It allows 30 calls a minute for one trigger and 120 in all.
  • A call from a web page, one that carries an Origin header, is refused.
  • The Routines board shows the latest calls, and calls that reach a trigger are traced.

RoachNet doesn't put the door on the internet. To take calls from elsewhere, point a tunnel of your choosing at its port. RoachNet shows a webhook's secret once, and removing the webhook stops its address and secret working. The door's route is in the API overview.

People and phones

On the Mac, you're the owner. You can invite a paired phone as a viewer, operator or admin with a one-use link that expires in 72 hours. The iOS companion shows the same approvals and asks for Face ID, Touch ID or your passcode before a decision.

Where it lives

Everything is in ~/RoachNet/storage/RoachClaw/org/, written readable by your account only. Secrets are kept in that folder's secrets/ and are never returned by the API or included in exports. Since 1.1.3, a webhook trigger's secret is deleted when its routine is saved without that trigger, and the key that signs run tokens lives in memory and is new each launch, so a run token ends with the runtime that issued it. A company exported as a template leaves out keys, invites, run history and secret values, and an imported company starts paused.

Limits in 1.1.4

  • Claude Code, Codex and OpenCode are run live. Gemini CLI and Cursor CLI were run live only briefly, so a CLI update could change what they report. The agent says when that happens.
  • The webhook door listens on this Mac only. Reaching it from the internet takes a tunnel you set up yourself.
  • An agent on Full access runs as you, like any program you run. Since 1.1.3 it can't read the local API's launch token from a file or from the runtime's environment, but it can still read and change your files, RoachNet's included.
  • A program a run starts that detaches itself on purpose, such as a background service or a container, keeps running after the run.
Checked against v1.1.4 · 5 November 2026
esc
↑ ↓ move↵ openesc closeSearches on your device. Nothing is sent anywhere.