---
title: "Reactor: a fleet of Claude Code agents that runs without you · Selan"
description: "Reactor starts your company's Claude Code agents on a schedule, a webhook, a Slack reply or each other, in the cloud or on your own machines. What it does today, and where it is going."
url: https://selan.ai/blog/2026-10-16-reactor
updated: 2026-10-16T11:24:22+03:00
---

[← All posts](https://selan.ai/blog)

Blog

# Reactor: a fleet of Claude Code agents that runs without you

Reactor starts your company's Claude Code agents on a schedule, a webhook, a Slack reply or each other, in the cloud or on your own machines. What it does today, and where it is going.

16 October 2026FeatureIn the docs: [Selan MCP](https://selan.ai/docs/mcp)[Self-hosted runners](https://selan.ai/docs/runners)

A lot of engineering work has to happen when nobody is at the keyboard: checking an environment after a deploy, triaging what came in overnight, answering an event as it arrives. A Claude Code session on a laptop stops when the laptop does, and an agent nobody is watching cannot stop halfway to ask a question.

Reactor is where Selan runs that work. It holds your company's remote agents, each a Claude Code session with its own system prompt, model and effort, and starts them by itself: on a schedule, when an outside event arrives, when someone replies in Slack, or when another agent asks. You open it at reactor.selan.ai.

![The Reactor canvas: five agents, among them Nightly triage, Dead code, Log watch and Dependency sweep, each with its schedule on its left and the status line its last run left](https://selan.ai/img/blog/2026-10-16-reactor/canvas.webp)

The canvas: each agent with its triggers on its left, coloured by how its last run ended.

## Why it matters

Work that runs on a trigger gets done whether or not anyone remembers to start it. People decide what each agent is for and review what it hands back, a merge request or a one-line status, instead of doing the routine part themselves. Every run records its cost and tokens, so you can see what that work costs.

## The canvas

Each agent is a card. Its triggers sit to its left, and the card shows its model, how its last run ended and the line it left behind. The top bar counts the runs going and the week's spend. The canvas pans and zooms, and a trigger's play button fires it now without changing its schedule.

Agents are grouped into workspaces, each with a canvas of its own. An agent lives in one workspace and can only start agents in it, and a workspace can have rules: one text that every run in it reads before its own prompt.

## What starts an agent

A schedule is the simplest, and the canvas reads it back in words, such as weekdays at 09:00. For outside events, your company gets one webhook address that GitLab and GitHub send to. An event trigger is a sentence in plain words: a model reads each event against it, and a match starts the agent. In Slack, a reply under an agent's post wakes the agent that wrote it, as the [Slack post](https://selan.ai/blog/2026-10-15-slack-bot-and-personal) describes.

Agents can start each other too. Each agent lists who may start it, and a running agent can start one that lists it and wait for its answer. Reactor refuses a start from an agent that is not on the list, and one that would loop back to an agent already in the chain.

## Watching a run

A run's dialog shows what it was asked and its transcript as the steps arrive: each command, tool call and note, with how long each took. From Claude Code, you can send a message to a run that is still going, and the agent reads it while it works.

![A Dependency sweep run in progress: npm outdated, npm install and npm test done, and a GitLab merge request being opened](https://selan.ai/img/blog/2026-10-16-reactor/run.webp)

A dependency sweep part way through: the tests have passed, and it is opening the merge request.

A run can take up to four hours, with Docker, Chromium and PostgreSQL 18 installed. Agents also keep a memory between runs: files they write and read back the next time, which you can open in the agent's settings.

## A supervisor for the workspace

A workspace can have one supervisor, an agent whose prompt is its mission. It reads the runs in its workspace, and it can change the other agents' prompts, models and schedules, start and message them, and create or delete agents. It acts as the person who turned it on, and any change that person makes takes control back. Its default mission is to make the workspace cheaper without doing less, one agent at a time.

![A workspace supervisor on Claude Sonnet 5 that supervises the Default workspace and acts as the owner, with its mission to make the workspace cheaper without doing less](https://selan.ai/img/blog/2026-10-16-reactor/supervisor.webp)

A supervisor tries a cheaper setting on one agent and keeps it only if the work still gets done.

Every change to an agent or a schedule, made by a person or by the supervisor, is kept as a version. History lists them, and Revert puts an earlier one back.

## Where the runs happen

By default each run gets a fresh VM that is thrown away afterwards. An agent can also run on your own machines: a Linux server or an Apple Silicon Mac that your company keeps on, installed from one pasted line, where a run starts in seconds. A Mac can be opted in for Xcode builds. An agent can list several places, and each run takes the first one with room. The [runners docs](https://selan.ai/docs/runners) cover the setup.

You can also do all of this from Claude Code through [Selan MCP](https://selan.ai/docs/mcp): create an agent, give it a trigger and read its runs.

## Where Reactor is going

Today a person writes each agent and decides what starts it, and a supervisor tunes the agents of one workspace. What we are building towards is macro agents: fleets that maintain a company's codebases on their own and keep them current and working, while people set the direction and review what lands. Triggers, memory, workspaces and supervisors are the parts of that we have built so far.

Reactor is switched on for each company by Selan. If you would like it for yours, [get in touch](https://selan.ai/contact).

**How it works today.** A post says what changed on its day; the docs say how Selan works now.

[Selan MCP](https://selan.ai/docs/mcp)[Self-hosted runners](https://selan.ai/docs/runners)
