RAgents

Tailored AI Workspaces for your teams or your clients.

Tailor a workspace for a task

The script builds the workspace, so the agents start with everything in place.

  • A setup script creates agents, scripts and mini-apps
  • Start it again with one click
  • Add a setup to a run that is already running
  • Ask for inputs before the run starts

How it works A setup is a tested TypeScript package that appears as a start card. Its script starts agents, TypeScript programs and mini-apps through the same functions the AI uses. A setup dialog can ask for values, such as a repository or a topic, before the run starts. A setup marked as embeddable also joins a running run, from the run's Run script button, the command line or the coordinator, and reports its result back.

Everyone talks to everyone

Agents write plain text to each other, addressed by handle, such as @agent1.

  • Agents hand work to each other
  • Agents talk to scripts, scripts answer
  • People talk to agents and mini-apps
  • Mini-apps talk to people and agents
  • ... you get the idea :)

How it works Each agent has its own model, prompt, history and handle. A coordinator takes the task and hands out work. A helper starts with no tools, a picked list, or all tools. When an agent asks you something, the choices appear in the chat and your answer goes back to that agent. You can attach images in the browser and VS Code for models that support them.

Agents with their own UI

People are used to working with interfaces. A UI shows what the agent is doing, and you step in with a click.

  • The AI builds a UI while it works
  • Extensions ship UIs ready to use
  • You and the agent use the same UI and state
  • Your click goes straight to the agent
  • A new UI goes live after its tests pass

How it works A mini-app is a React view on the state of an agent or a TypeScript program. Its buttons call the program's typed functions directly. The AI type-checks and tests a new view before it goes live; if a rebuild fails, the old version stays active. Activated mini-apps appear beside Chat in wide browser windows and as tabs in narrow ones; arrange Chat, apps, and inspection windows in browser docking areas; in VS Code, each app opens in its own editor tab.

Tools are TypeScript functions

  • Register a typed function once, from your own plugin
  • Agents get it as a tool
  • AI-written code calls it, type-checked first
  • A button calls it without a model
  • Programs call it when events arrive

How it works A snippet runs once and returns its result to the model. A program keeps its state and reacts to later messages. A setup starts agents, programs and UIs. All of them call the same typed functions, with the same permission checks.

Event-driven journal

Every step of a run is an event in the journal. Agents and programs subscribe to the events they care about.

  • An agent starts when another one finishes
  • Replies arrive later as new input, nobody waits
  • A watcher without a model wakes an agent that hangs
  • Agents read the run's journal
  • Fork an agent with its memory

How it works A subscription turns matching events, such as another agent's finished turn, into new input. A watcher is a TypeScript condition without a model, for example no progress for 120 seconds. Agents query the journal themselves.

AI or deterministic workflows

Some work needs judgment, some needs the same steps every time. One run holds both.

  • Let an agent choose the next step
  • Or write the steps in TypeScript, the same every time
  • Mix both in one run: code keeps the order, models do the thinking
  • Code steps cost no tokens
  • Wait for a person when a decision is due

How it works A setup or an actor program in TypeScript creates the participants and controls the handoffs. Agents fill in the parts that need a model. In the word game, code runs the rounds while four models supply the words.

Distributed across server and laptop

Coordinate centrally, and let the tools run where the files are.

  • Runs, agents and models live on the server
  • Laptops and browsers connect to a run
  • Messages flow both ways, live
  • Tools run on the machine that has the files
  • One server, many clients

Runs, models and tools do not have to live on the same machine. Coordinate centrally, let the tools run where the files are, and choose the split per team and per run.

Use RAgents in your application

RAgents is a server with one JSON-RPC API. The web interface and VS Code use it, and your product can too.

  • Start the host beside your app, on a private port or over stdio
  • Call the same JSON-RPC 2.0 API as the UI
  • Follow runs live over Server-Sent Events
  • Typed contracts as OpenRPC and TypeScript declarations
  • Use mini-apps to build user-facing UIs
  • Tailor agents, tools and setups with your own profile and plugins
  • Hide the technical views, keep chat and UI

Plugins and profiles

  • A plugin adds tools, skills, prompts and UIs
  • Write your own plugins in TypeScript
  • A profile picks the plugins, models and users
  • A server hands its profile to every laptop

Drive RAgents from outside

  • Start runs from the command line
  • Let coding agents like Claude Code drive RAgents
  • Send tasks, read the journal, pause or stop a run
  • Scripts get the same JSON-RPC API as the UI

The same run in the browser and in VS Code

  • No install in the browser
  • Open a mini-app in an editor tab
  • Offer your open folder to a server

Follow startup progress in the shared chat area.

What runs where

Four setups, one host. Only the location of each part changes.

On your laptopOn the serverServer plus laptopConnected laptop
Runs, agents, journallaptopserverserverlaptop
Files, shell, Gitlaptopserverisolated per runlaptoponly you see themlaptop
Models and keyslaptopyour own keyserverserverservervia relay, keys stay hidden
Profile and pluginslaptopserverserverserverfetched once, cached
InterfaceVS Code or browserany browserVS Code or browserVS Code or browser
InstallStandalone, npm or VS CodenothingStandalone, npm or VS CodeStandalone, npm or VS Code

Extensions

Bundled plugins. Add your own the same way.

Build your own plugin
  • Files and shell

    Read, edit and run commands in the project

    ragents.workspace
  • Browser

    Open pages, click, fill in forms, take screenshots

    ragents.browser
  • C#
    C# language server

    Compiler errors from Roslyn while the agent edits

    ragents.lsp-roslyn
  • F#
    F# language server

    F# diagnostics through FsAutoComplete

    ragents.lsp-fsharp
  • TS
    TypeScript language server

    Type errors without running the build

    ragents.lsp-typescript
  • Mini-apps

    Actor programs with functions, state and a UI

    ragents.actor-programs
  • Documents

    Agents file reports you can open and read

    ragents.documents
  • To-dos

    A to-do list the agent keeps current

    ragents.todo
  • Ask the user

    The agent stops and asks you a question

    ragents.ask
  • Watchers

    Wake an agent when a check turns true, no model needed

    ragents.watch
  • Processes

    See and stop what a run has started

    ragents.processes
  • Global coordinator

    One chat across all your runs

    ragents.overseer
  • Model relay

    Use another server's models without their keys

    ragents.model-relay
  • Profile distribution

    A server hands its profile and plugins to clients

    ragents.profile-distribution

Get RAgents

Open in Marketplace

Local workspaces need Node.js 22.19+.

Start a run

Built with RAgents?

Tell us on GitHub

Current status and limits

RAgents is under active development. Actor programs, their functions, state, and mini-apps belong to one run. Events and time-based triggers need an agent or TypeScript actor. Schedules and a user-management interface are not available yet. With sign-in, a run can be shared with other users for reading or working along, from the run list or the run itself, in the browser and in VS Code. Profiles may require sign-in or run without it. General user permissions can limit new runs to approved setups and hide settings, models, and technical views while keeping chats and mini-apps usable.