Your workbench for AI coding · macOS · Linux · Windows

Not another agent.
A workbench for your agents.

Keep the agent you already use, and give it somewhere to work. Your stack, your services and your repos come from one file, on your own machine, in its own container.

Open source · your own Docker · no cloud, no account, no rental

container-configs/acme.yml
name: acme

languages:
  - node:22

services:
  - name: postgres
    image: postgres:18

features:
  - ref: ghcr.io/getmonoceros/monoceros-features/claude-code:1
  - ref: ghcr.io/getmonoceros/monoceros-features/claude-code-roles:1
  - ref: ghcr.io/getmonoceros/monoceros-features/github-cli:1
  - ref: ghcr.io/getmonoceros/monoceros-features/atlassian:1

mcpServers:
  - name: figma

repos:
  - url: https://github.com/acme/hosts-guestbook.git
The whole workbench, in one file (excerpt).
What you can do with it

Three things your agent gets here.

Hand over a ticket and go for lunch.

It opens ACME-126 itself, reads it, gathers what it needs and implements it. Then it opens a pull request. You come back to an app that already runs.

See all features →

One plans, one builds, one reviews.

Three roles come with the workbench. One writes the plan, one builds exactly that, and one checks the result before it reaches you.

How the roles work →

Built for this project, nothing else.

A workbench holds exactly what its project needs and nothing more. The versions, the services and the access are already there when the agent starts.

Adding components →

A ticket number is the whole prompt.

The agent starts signed in and briefed. It reads the ticket itself, writes the code, and checks the result against the app running next to it in the workbench.

Claude Code, OpenCode and Rovo Dev. Jira, GitHub, Notion, Figma.

What the agents get →
Claude Code in the acme workbench: the prompt says only "Take a look at ACME-126 and implement it", and the run summarises the ticket, writes rate-limit.js, updates server.js and reports nine minutes of work

You work in it too, not just the agent.

Attach VS Code, VS Codium, JetBrains or the Claude app over SSH. There is nothing to set up. It is the same box the agent works in, so you see what it sees.

Open it in your IDE →
VS Codium attached to the acme workbench over SSH: the window title and the status bar both read SSH: monoceros-acme, and the built-in terminal sits in /workspaces/acme/projects/guestbook

Still running when you are done.

The app keeps running after the session ends, at an address you can type. One command puts it on your network over HTTPS, so what you just built opens on your phone.

The guest book here is our example app for Airbnb hosts, built in the acme workbench.

Open it on any device →
The guest book app from the acme workbench, open side by side on a phone and a desktop screen
Workflow

Four commands, from start to finish.

Describe the workbench, build it, let the agent run, reset to clean. That's the whole loop.

01

Describe

Say what goes in: your stack, your repo, the AI tool. It is one YAML file, and you can edit it.

› monoceros init acme \
    --with-languages=node \
    --with-services=postgres \
    --with-features=claude,claude-code-roles,github,atlassian/twg \
    --with-mcp-servers=figma \
    --with-repos=https://github.com/acme/hosts-guestbook.git
02

Build

You get a real container with your stack, up in minutes. That is the box your agent works in.

› monoceros apply acme

  ▸ pulling image, installing features...
  ✓ workbench ready
03

Let it run

Hand over a ticket number and let it run. It opens ACME-126 itself, reads the comments, and works with the stack it was briefed on. On its own, in its own container.

› monoceros run acme --in projects/hosts-guestbook -- claude "Implement Story ACME-126"

  ▸ reading ACME-126 from Jira...
  ▸ agent working in acme...
04

Reset

Made a mess? Reset to clean in minutes. Or keep the workbench for next time.

› monoceros remove acme

  ▸ snapshot saved
  ✓ host clean

The loop starts at a ticket. If you don't have one yet, you say what you want to build, answer the questions that come up, and get back a backlog the agent can work from. From an idea to a Jira backlog

Comparison

There are other ways to run an agent.
Each one has a catch.

You can get most of this without us. The question is what it costs you, on every project and every time.

Everything on your own machine
One machine for every project.

The languages, the databases and the tools all sit on the same laptop. The version one project needs is the version the next one gets. An agent working there can reach all of it.

Monoceros
One workbench per project.

Each project gets its own container, with its own versions and its own services. The agent works inside it, and one command removes the whole thing when the project is over.

Cloud dev environments
Someone else holds your project.

Your code and your data live on a vendor's servers, and you pay for every hour they run. Many contracts do not allow that. And nothing works when you are offline.

Monoceros
The same isolation, on your machine.

The workbench runs on your own Docker. There is no account to create, nothing to rent and no hourly bill. It keeps working when the network does not.

Roll your own container
You can build it, and then you maintain it.

You write a Dockerfile for the project, connect each tool by hand, and keep the agent roles up to date with them. Then you do all of it again for the next project.

Monoceros
The box is the product.

One file describes the workbench and one command builds it. You never maintain the box yourself, and every project gets its own version of it.

Get started

Run your first agent.

It is open source and it runs on your machine. Install it on macOS, Linux or Windows, then build a workbench with one command.

macOS / Linux
› curl -fsSL https://raw.githubusercontent.com/getmonoceros/workbench/main/installer/install.sh | bash
Windows (PowerShell)
› irm https://raw.githubusercontent.com/getmonoceros/workbench/main/installer/install.ps1 | iex
Questions

Before you install it.

Do I need Docker?

Yes, and it is the only thing you install on your own machine. We build and test against Docker Desktop. On Windows you need it, because the installer connects the managed Linux distribution to it.

Installation →
Does it run on Windows?

Yes, on WSL2. The installer sets up a managed Linux distribution for you, and the commands are the same ones you would run on macOS or Linux.

Windows setup →
Can I bring my own agent?

Yes. Claude Code, OpenCode and Rovo Dev are in the catalog, and you add one of them with a single line in your file. An agent the catalog does not have goes into the same file, either as a dev-container feature or as an apt package. Do not install it by hand inside the container. That only lasts until the next apply, because Monoceros builds the container from that file again.

How the file works →
Does anything leave my machine?

Only what you send on purpose. There is no account, no telemetry and no Monoceros service in between. The images come from a registry, and your agent talks to the provider you signed it in to.

What Monoceros is →
What does it cost?

Nothing. Monoceros is open source under Apache-2.0 and runs on hardware you already own. There is no paid tier waiting behind the free one.

The repository →
How is this different from a devcontainer?

Underneath it is one, generated from your file. The difference you feel every day: nothing is lost when you rebuild. The container keeps a persistent home, so your agent stays signed in, your tool settings and editor extensions stay, and your repos keep their branches. On top of that come the services, the repos and the agents, and one command that builds or resets the whole thing.

The concept →