Orchestrator Sign in

Orchestrator

Your servers. Your agents. One command deck.

Launch, monitor and resume headless Claude Code runs on any VPS you own — from anywhere.

  • Launch & monitor headless Claude Code agents on any VPS
  • Real-time status — RUNNING / COMPLETED with live tool activity
  • Track token burn, API spend, and Claude rate-limit windows
  • Browse & preview remote project files from the browser
  • Schedule recurring agent runs with cron-style control
  • SSH keys encrypted at rest — never echoed back
by Iron Mind AI
scroll to explore
Iron Mind AI

Sign in

Welcome back — enter your credentials to continue.

Create account

Get started — we'll email you a verification link.

Reset password

Enter your email and we'll send a reset link if an account exists.

Check your inbox

Runs dashboard

Every run. At a glance.

Launch headless Claude Code agents across multiple projects. Track status, model, context, and duration — all in one searchable table.

Know your burn rate.

Real-time token usage, OpenRouter API spend, Fish Audio quota, and Claude plan rate-limit countdowns — all on your dashboard.

Usage widgets
Add server modal

Connect any server.

Register remote servers by IP or hostname. SSH via private key, password, or the keypair already on your account — nothing to paste, nothing to upload. Keys are encrypted at rest — never stored in plaintext, never echoed back.

Browse your remote project.

Navigate the file tree of any remote project directly from the browser. Preview markdown, images, and code with full syntax highlighting.

File browser
Live console

A real terminal. In your browser.

Full interactive SSH console — not a log viewer. Connect to any registered server and run commands live.

Set it and forget it.

Schedule one-off or recurring runs with full cron control, then send follow-up prompts straight into an existing run instead of starting a new one.

Schedules list and new schedule modal

Your API keys, locked down.

OpenRouter, ElevenLabs, and Fish Audio keys are encrypted at rest and never displayed back to you — only the last four characters, ever.

Anthropic status indicator showing all systems operational
Settings modal showing an API key on file
Run detail panel with conversation thread and tool log

See exactly what happened.

Drill into any run for live context usage, the full conversation thread, and every bash tool call Claude made along the way.

Orchestrator

Your servers. Your agents. One command deck.

Choose a new password for your account.

by Iron Mind AI
Iron Mind AI

Set a new password

This link is valid for a limited time.

Iron Mind AI

Verify your email

We sent a verification link to . Click the link to unlock your account — this page will update automatically.

Iron Mind AI

Orchestrator

Checking status…
Affected models
●

Menu

New Run

Select a preset to see a preview…

This is the system-wide default model, used for new runs and schedule firings that don't specify one. Changes save immediately.

Loading sessions…
⚠ Claude login required on .
Preset
Model
Created
Finished
Claude ID
Context
Original prompt

        
New session
Preset

Runs

Project Session Status Claude ID Context Submitted Finished Duration
Loading runs…

Automations

Trigger Project Prompt Schedule Next run Last run Session Enabled Actions
Loading automations…
Loading automations…

Uploads

Filename Project Run Size Uploaded
Loading attachments…

Usage

Projects

Register the codebases Claude Code can launch runs against, and keep an eye on their git status.

Name Branch Status
Name Branch Status

Project

Select a project to edit, or register a new one.

Mint a brand-new empty project folder, register one that already exists on a server, clone one from a remote git repository, or spin up a fully managed Hosted Workspace.

Defaults to the repository name.

This server can't access that repository. For private repos, add this server's SSH key to the repo (e.g. as a GitHub deploy key).


                  

We provision and manage this machine for you — no host, port, or credentials to configure. Typically ready in under two minutes.

Creating workspace…

No paired local machines yet. Pair one first.

This device hasn't reported a home directory yet — reconnect the Bridge client and try again.

Domains

Every Hosted Workspace gets a free subdomain. You can also point your own domain at it. DNS propagation and certificate issuance can take a few minutes after you add one.

The port your app listens on inside the workspace (all domains route here). Changing it restarts the workspace.

Servers & Local Machines

Register the remote and local machines Claude Code connects to in order to run and manage your projects.

Register the remote machines Claude Code connects to over SSH to run and manage your projects.

Your SSH Public Key

Add this to a new VPS/server's authorized_keys so we can connect and set it up for you.

Name Host Status
▾

Local Machines

⬇ Download Bridge client

Connect a machine you own (no SSH needed) via the Ironmind Bridge — it reaches out to us, not the other way around.

Name Status Last seen

Server

Select a server to edit, or add a new one.
ⓘ Managed by Iron Mind AI — connection details aren't editable. This server backs a Hosted Workspace microVM; use the workspace's Suspend/Resume/Destroy actions on the Projects page instead.

Root accounts aren't allowed — create a regular user with sudo instead. Claude Code refuses to run as root.

⚠ Credentials for this server are missing. Please re-enter the key or password below.
A key is already on file for this server. Upload or paste a new one below to replace it — the current key is never shown.

Uploading a file fills this field automatically — either path is fine, not both. Keys are never echoed back by the API.

Encrypted at rest — never displayed
Uses the SSH key already in your Settings — nothing to paste.
A password is already on file for this server. Enter a new one below to replace it — the current password is never shown.
Encrypted at rest — never displayed

Browse

Select a project to browse its files.
Large file — view only (truncated). Binary file — preview not available.
File changed on disk since you opened it.
Select a file from the tree to view it.

Unsaved changes

You have unsaved edits to this file. Discard them?

Console

● Disconnected

Select a target and click Connect to open a terminal session.

Ctrl+Shift+C copy · Ctrl+Shift+V paste · click links to open

Admin

Loading…
Email Verified Created Trip started Projects Runs Active time Last run BYOK Status Actions
Loading…

By model

ModelRunsFailed
Loading…

By user

EmailRunsFailed
Loading…
User Project Status Model Started Duration Exit Prompt
Loading…
User Name Host Port Username Auth Created
Loading…
User Name Path Runs Archived Created Updated
Loading…
User Project Schedule Enabled Next run Created
Loading…
User Project Prompt Enabled Policy Delay Parser Last triggered Created
Loading…

Wipe attachments

New automation

This schedule launches a brand-new run.
Select a project above first.
minutes
of every hour
Each firing launches or continues this schedule's own run, per Session behavior.
Every run starts a fresh conversation.
"Run anyway" isn't available when continuing the same session — a session can't run twice at once.

When a new run starts, automatically archive the previous run from this schedule to keep your run list uncluttered.

Only applies when overlap policy is "Run in parallel." If on, the previous run is archived immediately even if it's still running. If off, it stays visible until it finishes.

Select a project above first.
Active window Off — runs any time

Restrict this schedule to specific days and hours (server-local time). Outside this window, scheduled fires are skipped — the cron schedule above still decides exact timing.

No days selected = every day.
Leave both blank to allow any hour.
Tokens like {{payload}} are highlighted as you type. Enable the payload parser below to extract named variables instead of the raw payload.
Advanced settings
Wait this long after the webhook fires before launching the run — useful for debouncing bursts of calls.
Parallel: runs overlap freely.
Payload parser Off — prompt receives the raw payload

Describe each variable you want extracted from the incoming payload; the extractor uses your description to pull it out with an LLM pass, and it becomes available as {{name}} in the prompt above.

The secret is write-only — it's never shown again after creation. Leave blank to keep the current one, or type a new value to replace it.
If set, incoming webhook calls must include this secret. Shown once after creation — save it somewhere safe.

Webhook automation created

Call this URL (POST) from your external system to trigger this automation.
This secret will not be shown again. Copy it now and store it somewhere safe.

Send a follow-up

Continues this run in the same session — it does not create a new run.

Run detail
⚠ Claude login required on .
Details

Manage presets

Select a preset to edit, or create a new one.

Use ${variable} placeholders — each one becomes an input field when this preset is selected in the launcher.

Delete preset?

Delete ? This cannot be undone.

Delete project?

Delete ? This cannot be undone.

Destroy Hosted Workspace?

This permanently destroys the microVM and its storage volume for . All files on this workspace will be lost. This cannot be undone.

Change internal port?

This changes the port all of this workspace's domains (including the free subdomain) route to, from to . Your workspace will restart — any running processes or unsaved terminal sessions will be interrupted.

Workspace is suspended

is currently suspended. Resume it first to open a terminal.

Resuming…

Discard changes?

Delete branch?

Delete branch ? This cannot be undone.

You have uncommitted changes

Switch to after committing a checkpoint or discarding your current changes.

Branch created

Branch was created. Switch to it now?

Delete server?

Delete ? This cannot be undone.

Pair ""

1. Download the client below  ·  2. Unzip it  ·  3. Run python bridge_client_interactive.py  ·  4. Enter this pairing code when prompted

⬇ Download Bridge client

Or run directly with the flag-driven client:


        

Expires in 5:00 — single use.

Waiting for the machine to connect…

⚠ This code expired before pairing completed. Close this dialog and click "Add local machine" again to get a new one.

Revoke device?

Revoke ? This will disconnect the device immediately.

Delete device?

Permanently delete ? This cannot be undone.

Claude Code isn't installed

⚠

Claude Code isn't installed on . This run was not started.

Clicking Install opens the Console tab connected to this server and types the install command for you. When it finishes, click "Re-check now" below to pick it up.

Browse folder

Settings

General

Model default and display timezone.

Used for new runs and schedule firings that don't specify a model.

    Used for the header clock and any time displayed in your local timezone. Defaults to UTC.

    API Keys

    Powers spoken run summaries and session names.

    Required for spoken run summaries and automatic session names — get one at openrouter.ai/keys.

    Encrypted at rest — never displayed

    Speech

    Spoken completion summaries and alerts.

    When off, no speech audio is generated server-side, saving cost — the playback selector in the top bar still controls how you hear alerts once generation is on.

    Choose which service generates spoken completion audio.

    Encrypted at rest — never displayed

    Uses your existing OpenRouter API key above — no separate key needed.

    Instructs the model's delivery style. Leave blank to use the server default.

    Get one at fish.audio.

    Encrypted at rest — never displayed

    The reference ID is the part after /m/ in a fish.audio voice page URL, e.g. https://fish.audio/m/<id>.

    Notifications

    Telegram alerts for run completions.

    Add an OpenRouter key above to enable Telegram notifications.

    Link your Telegram account to receive run completion alerts as chat messages.

    Didn't open? Send to the bot manually —

    Open in Telegram
    Connected to Telegram

    Controls which run events send a Telegram message.