selan.ai Gateway Reactor Browser

← All posts

Blog

Remote agents you install with one line in Claude Code

Fifteen complete Reactor agents, one Markdown file each on GitHub. Paste one line into Claude Code, answer what is yours, and the agent is on your canvas.

FeatureIn the docs: Agents for ReactorSelan MCP

You probably know which chores you would hand to an agent that runs every morning: the test that fails now and then, the Sentry issues nobody has picked up, the dependencies falling behind. Writing that agent is the slow part, because a prompt that works while you watch can still go wrong when it runs alone with nobody to ask.

An agent on its own has to know what to look at, when to stop, what it must never do and when its news is worth a message. Leave one of those out and you find out from its runs: a flaky test "fixed" with a retry, a merge request nobody asked for, or a Slack post every morning to say that nothing happened. Each of those is a rule somebody has to think of, usually after a run that went wrong.

Selan now publishes complete remote agents you can install. A remote agent is a Claude Code session that Reactor starts on a machine nobody owns, woken by a schedule, an event sentence or another agent, and shut down once it has reported. The agents are in a public repository, github.com/selan-ai/selan-remote-agents, in its agents/ folder. There are 15 today, free to use and to change.

The agents on selan.ai/reactor/agents: a chip for each of the six categories, then Keep the code healthy with the AGENTS.md Updater, CSS Cleaner, Dead Code Cleaner, Dependency Updater and MR Watcher, each with what it does, when it runs and its model
The agents on selan.ai, sorted by what they are for.

What there is

Each agent's first tag is its category, and there are six:

Each one is a single Markdown file. Its frontmatter holds its settings: name, description, model, effort, the MCP servers it needs, its tags and the prompt its schedule sends. The body is its prompt, which opens with a ## Setup section saying in words what differs from one company to the next. This is the top of the Flake Hunter:

---
name: flake-hunter
description: Finds the flakiest test in a repository's CI history and fixes why it is flaky, never with a retry.
model: claude-opus-5-5
effort: high
mcpServers: [slack-bot]
tags: [tester, tests, ci, flaky]
initialPrompt: Find the flakiest test and fix its cause.
---
## Setup
- Repository: the one repository whose tests you keep stable, on GitHub or GitLab
- Summary channel: the Slack channel your run summary goes to
- Schedule: every morning

Install one

Connect Selan MCP to Claude Code and paste one line:

Install https://github.com/selan-ai/selan-remote-agents/blob/main/agents/flake-hunter.md

Claude reads the file as it is on GitHub, names the commit it read, and shows you the whole of it. Then it asks for what is yours: the workspace, the repository, the Slack channel and when it should run, which it turns into a schedule for you to confirm. Last, it shows you the agent it will create and asks once more. Nothing exists until you say yes, and then Claude makes the agent and its schedule.

If a connection the agent needs, such as GitLab or Slack, has no sign-in yet, Claude creates the schedule paused. It gives you the sign-in links, or uses a connection your company already shares, and switches the schedule on once that is done. From then on it is an agent like any other on your canvas, and its prompt is yours to change.

Installing needs the edit role in the workspace; without it, Claude tells you your role cannot create agents and stops. The file's text becomes the agent's prompt, and Claude never follows it as instructions of its own. Claude will install a file from anywhere else too, but it tells you that Selan has not reviewed it.

Every agent has a page under Agents for Reactor with its line to copy, what Claude will ask you and its whole prompt. Inside Reactor, the Marketplace lists the same agents, each with the same line.

The Flake Hunter's page on selan.ai: tester, Write and fix tests, its description, and chips for every morning, Opus 5.5 at high effort, GitHub or GitLab and Slack. Beside them, its schedule and its card as the canvas will draw them. Below, a Claude Code box, with Selan MCP connected, holding the install line and three steps: open Claude Code, paste this line, answer its questions and say yes
Each agent's page has the line to paste and the steps after it.

How they are built

Every file follows the same practices, which the repository's README sets out:

The same repository is a Claude Code plugin. Its skill designs new agents in this shape, and audits the agents you already have through Selan MCP without changing any of them:

/plugin marketplace add selan-ai/selan-remote-agents
/plugin install selan-remote-agents@selan-remote-agents

One of them: the Flake Hunter

Its schedule wakes it every morning with one sentence: find the flakiest test and fix its cause. First it follows up its own open merge request, answering every comment and fixing a pipeline its change turned red. While that merge request is open it starts nothing new, and if no test job has finished since the last one it read, it stops there.

Otherwise it reads the test jobs of the last 30 pipelines on the default branch and of the merge requests from the last 14 days. A test counts as flaky when it failed and then passed on a retry, or failed and passed on the same commit. Of the tests flaky in at least two jobs, it takes the one with the highest flaky rate, one test per run. It runs that test 20 times with retries off, then serially, then under CPU load, and names the cause at a file and line. The fix is the smallest change that removes the cause. As proof, the same command fails before the fix and passes 40 times after, and the agent opens a merge request with the rate, the cause, the fix and both runs.

It never fixes a flaky test with a retry, a skip, a sleep or a longer timeout, never deletes a test and never merges. A test it cannot make fail in 40 runs it sets aside, with a note of what it tried. Its memory keeps one line per flaky test, and when a reviewer asks for a change or closes its merge request, it writes down what to do differently next time.

It posts to Slack only when it opened a merge request or set a test aside, in at most three lines with links. On a morning with nothing to fix, nobody hears from it.

Share one of yours

Ask Claude in Claude Code to write one of your agents to a file. It reads the agent, its first schedule and its connections, turns your company's own values into Setup lines for you to confirm, and writes the file on your machine, without reading its environment variables, memory or secrets. To share it, open a pull request adding that file to agents/.

Once you have a few agents, groups sort them on the canvas by the job they do, and an agent stuck on something only a person can fix can ask you. Reactor is in early access, switched on one company at a time; get in touch if you would like it for yours.

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

Agents for ReactorSelan MCP