Get started

Install the conductor in a minute.

One static binary. Download it, run conductor init, point it at a project, and leave it running — it starts a session when that project has work and nothing when it doesn't.

1. Requirements

  • git, on PATH.
  • A launcher — claude (Claude Code) by default; opencode or codex optionally.
  • gh and/or glab, already authenticated for the repositories you want worked.
  • A Ironway account with access to the projects this host will serve.
  • Optional: TeamClaude (several Claude accounts pooled), Tower (swarms), tmux.

Would rather not run agents on your own computer? Run it in the cloud gives one project a machine of its own.

2. Download

The install script detects your platform, verifies the published SHA-256 and installs without sudo.

curl -fsSL https://ironway.work/install/conductor.sh | sh

The published build could not be read from Ironway just now, so there is no download table to show. The one-liner above resolves the current build itself.

macOS may quarantine a downloaded binary. Clear it with xattr -d com.apple.quarantine ./conductor. Or build from source: install Go and run make build.

3. First run

conductor init writes ~/.switchyard-conductor/config.json, signs you in through the browser if it finds no credential, offers the projects you can reach, and finishes by running doctor.

conductor init && conductor doctor

A passing doctor names every resolved fact about the host — the launcher it found, the forge CLIs, the projects, the spend caps — and prints no secret. Then start it:

conductor serve

4. Add a project

Four forms, depending on what you have:

  • conductor project add — pick from the projects you can reach on Ironway.
  • conductor project add acme/widget — name the workspace and project (the Ironway slugs, not the GitHub owner and repository).
  • conductor project add ~/code/widget — use a checkout you already have.
  • conductor project add <clone-url> --into ~/code/widget — clone it first.

A repository can commit its own defaults in .conductor/project.json — roles, caps — so a new host serves it the same way without being told. The commands a host runs, like verify_command, stay the host's to set: a repository that could set them could make every host that serves it run anything.

5. Run as a service

macOS: a launchd plist in ~/Library/LaunchAgents. Linux: a systemd user unit, or the cloud-init bootstrap for a fresh VM. Both run conductor serve behind a doctor preflight and restart it on failure; the conductor's repository ships both files.

6. Keep it current

  • conductor update — on the release channel it downloads a published build and verifies its checksum, with no Go toolchain; on source it rebuilds from a checkout.
  • conductor update -check — says whether this binary is behind, and exits.
  • conductor init --auto-update — update on its own when a new build is published.

7. Credentials

The conductor looks for a Ironway token in this order:

  1. IRONWAY_API_TOKEN (or the older SWITCHYARD_API_TOKEN) in the environment.
  2. The conductor's own tokens.json, written by conductor login.
  3. switchyard-mcp's tokens.json — one browser login serves both tools.

Two rules hold whatever you configure: the config is never printed — not by the binary, not by its diagnostics — and a credential never sits in it: every secret is a reference to a sealed store, and the loader refuses one written inline. Configuration has every setting.

What it does once it is running

The roles it can start, and the evidence it decides from.