Skip to content

Search is only available in production builds. Try building and previewing the site to test it out locally.

Reactor Studio

Reactor Studio is a desktop application (Tauri + React) that becomes the developer’s home for any project built on Reactor. It combines a Cursor-like chat interface, a Rust agent harness with full filesystem and shell access, a six-phase task workflow, and first-class Reactor Cloud integration.

Building on Reactor today means jumping between an editor, a browser tab for reactor.cloud, terminals for reactor-cli, and ad-hoc AI chats with no project memory. Studio unifies this into a single environment where an AI agent can read your schema, write migrations, run tests, and deploy — all with persistent context.


┌──────────────────────────────────────────────────────────────────┐
│ React Renderer (WebView) │
│ Chat, tabs, file tree, task pipeline, cloud dashboard │
└────────────────────────────┬─────────────────────────────────────┘
│ Tauri IPC (commands + events)
┌──────────────────────────────────────────────────────────────────┐
│ Tauri Main Process (Rust) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │
│ │ studio-agent│ │ studio-task │ │ studio-cloud │ │
│ │ agent loop │ │ 6-phase FSM │ │ reactor.cloud client │ │
│ └──────┬──────┘ └─────────────┘ └─────────────────────────┘ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────┐│
│ │ studio-tools: fs, shell, browser, lsp, mcp, reactor_cli ││
│ └─────────────────────────────────────────────────────────────┘│
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────┐│
│ │ studio-storage → <project>/.reactor/ ││
│ └─────────────────────────────────────────────────────────────┘│
└──────────────────────────────────────────────────────────────────┘
▼ (optional, size 1)
reactor-server embedded library

Studio can run in two modes:

Project bound to a reactor.cloud project via .reactor/config.toml. Agent deploys with reactor_cli, monitors logs, manages env vars.


┌──────────────────────────────────────────────────────────────────┐
│ Reactor Studio — my-app [−] [□] [×] │
├──────┬────────────────┬───────────────────────────────┬──────────┤
│ 🦋 │ Conversations │ [Tab 1] [Tab 2] [+] │ Files │
│ 🤖 │ │ │ ▼ src/ │
│ 📐 │ ● Pipeline │ Main Tab Content │ ▼ ... │
│ 💻 │ ○ Setup chat │ (Code / Browser / Cloud / │ │
│ ✅ │ │ Diff / Markdown / Terminal) │ Plugins │
│ 🚀 │ Tasks (3) │ │ │
│ 📚 │ ● Add auth ⏳ │ │ │
│ + │ [Chat input] │ │ │
└──────┴────────────────┴───────────────────────────────┴──────────┘
AgentBar ChatPanel MainPane FileBrowser
PaneWidthPurpose
AgentBar~56pxAgent avatars + Tasks entry
ChatPanel~380pxConversations, task pipeline, chat input
MainPaneflexTabbed views (code, browser, cloud, diff)
FileBrowser~250pxProject tree + plugins/skills panel

Every feature request flows through six phases with locked/unlocked progression:

stateDiagram-v2
[*] --> Alignment
Alignment --> Planning: readiness
Planning --> Development: plan approved
Development --> Testing: changes committed
Testing --> UAT: tests passed
UAT --> Deployment: user approved
Deployment --> Done: deploy receipt
PhaseDefault agentGate to advance
AlignmentPlannerAgent readiness (task_advance)
PlanningPlannerplan.md exists + user approval
DevelopmentCoderChanges committed or confirmed
TestingTesterTest reports generated
UATUserManual approval
DeploymentDeployerDeploy receipt from cloud

Each phase has its own conversation (tasks/<id>/phases/<n>-<name>/conversation.jsonl). Completed phases are readonly but inspectable.


AgentRoleKey tools
plannerOrchestrator, task pipelineall + task_advance, delegate
coderWrites code, runs testsfs, search, shell, lsp, mcp
reviewerReviews diffsfs, search, lsp, diff view
testerRuns tests, reportsshell, fs
deployerDeploys, monitorsreactor_cli, reactor_cloud_*
researcherWeb research, docswebfetch, websearch, browser

Agents are plain agent.yaml + prompt.md files in .reactor/agents/ — fully editable.


The agent harness includes tools that wrap the CLI and cloud API:

ToolPurpose
reactor_cliFull reactor CLI access (deploy, db, logs, storage)
reactor_cloud_statusStructured project status
reactor_cloud_deployTrigger deploy with checked-in Reactor.toml
reactor_cloud_logsTail deployment logs
task_advanceMark current phase ready to advance
task_artifact_writeWrite to phase artifact directory

Anything you can do with the CLI, the agent can do.


Opening a folder scaffolds (idempotently):

<project-root>/
├── .reactor/
│ ├── config.toml # Studio + cloud link settings
│ ├── agents/ # Agent definitions
│ ├── tasks/ # Task pipeline state
│ ├── conversations/ # Ad-hoc chats
│ ├── memory/ # Agent memory graph
│ ├── skills/ # User-installed skills
│ ├── credentials/ # Encrypted vault (OS keychain-backed)
│ └── cache/
└── (your project files)

Recommended .gitignore: ignore credentials/, cache/, index/; keep tasks/ and agents/.

.reactor/config.toml
[project]
name = "my-app"
[cloud]
project_id = "rc_abc123"
endpoint = "https://api.reactor.cloud"
[tasks]
phases = ["alignment", "planning", "development", "testing", "uat", "deployment"]

Native React view (not embedded webview) showing:

  • Production and preview deployment health
  • Recent deployment history with log links
  • Status cards for Jobs, Storage, Functions, Database
  • Lightweight controls: promote, rollback, env-var quick view

The agent is the primary control surface — the tab is for at-a-glance status. “Open in web” links to the full reactor.cloud dashboard.


ViewPurpose
code-editorMonaco editor + diff mode
markdownRender and edit markdown
browserTauri WebView for web testing
diffSide-by-side hunk accept/reject
reactor-cloudCloud dashboard
terminalxterm.js + shell
conversationPop-out chat tab
settingsProviders, agents, cloud link, keys

Agents open views via the view_open tool.


Lifted from jcode — the agent can rebuild and reload its own tool harness:

  • selfdev_status — build state, last reload
  • selfdev_build — schedule rebuild of studio-* crates
  • selfdev_launch — launch new harness instance
  • selfdev_reload — hot-swap providers/tools

Gated behind a confirmation modal by default.


Renderer communicates with Rust via Tauri commands and events:

Commands: agent.send, task.create, task.advance, cloud.deploy, file.read, view.open

Events: agent:chunk, task:phase-changed, task:advance-ready, cloud:log-line, file:changed

Types are generated from Rust to TypeScript via specta for end-to-end type safety.


  1. Download Reactor Studio for your platform
  2. File → Open Folder — select your project directory
  3. Studio scaffolds .reactor/ if needed
  4. Start a conversation with the Planner agent or create a Task
  5. Link to Reactor Cloud from Settings or the Cloud tab

For local-only development, Studio can embed reactor-server (size 1) with a local Postgres instance.