Conductor
Conductor runs coding agents in isolated git worktrees. Git behavior (fetch, base branch, permissions) still follows /git-workflows and /pr-guidelines — this skill is the Conductor-specific layer on top.
Agent-critical context
- Each workspace is a full repo checkout, typically
~/conductor/workspaces/<project>/<city> (the city name is the workspace directory label; the branch is the primary identifier for what you're building).
CONDUCTOR_ROOT_PATH points at the repository root inside that workspace. Use it in setup scripts (e.g. symlinking .env files): ln -sf "$CONDUCTOR_ROOT_PATH/<path>/.env.local" <path>/.env.local.
.context/ in the workspace is for inter-agent collaboration and is gitignored — don't treat it as durable repo state.
- Conductor injects a target branch in the workspace system instruction. Use it for PR base selection, rebase targets, and diff range — not merely "whatever branch is currently checked out" without confirming it matches that target.
origin is shared with every other clone of the repo. git fetch (especially origin and the relevant base) before diffing or rebasing — another workspace may have advanced the base branch.
Environment variables
Conductor exposes these in the terminal and in scripts (see official env doc):
| Variable |
Role |
CONDUCTOR_WORKSPACE_NAME |
Workspace display name |
CONDUCTOR_WORKSPACE_PATH |
Path to the workspace directory |
CONDUCTOR_ROOT_PATH |
Repository root inside the workspace |
CONDUCTOR_DEFAULT_BRANCH |
Default branch name (often main) |
CONDUCTOR_PORT |
First of 10 consecutive ports reserved for this workspace (CONDUCTOR_PORT … +9) |
Recommended workflow
From Workflow:
- One workspace per feature or bugfix — create via ⌘⇧N or the ⋯ menu next to "New workspace" (from PR, branch, or Linear issue).
- Develop in Conductor's Claude Code UI or open the same tree in your IDE.
- Review in the Diff Viewer (⌘D); use Terminal or Run to exercise the app. For dev servers, see Using run scripts — bind to
$CONDUCTOR_PORT; script cwd is $CONDUCTOR_WORKSPACE_PATH.
- Open a PR (⌘⇧P) when ready; fix failing checks with help from Conductor, then merge when green.
- Archive the workspace when done; restore later (including chat history) from Workspaces in the sidebar.
Workspaces and branches
Per Workspaces and branches:
- New workspace → new branch; first chat often renames the branch to match the task.
- Switch work with
git checkout, git branch -m, or git checkout -b as usual.
- A branch can only be checked out in one workspace at a time. If blocked, switch the other workspace to another branch or create a new branch from the desired one.
Parallel agents
⌘N opens another workspace; each agent works in an isolated tree so concurrent runs don't stomp the same working copy (Parallel agents).
Checkpoints
Checkpoints snapshot per-turn code changes and allow revert from the chat UI. Revert is destructive for messages and code after the chosen turn. Use extra care if multiple chats run in the same workspace — checkpoints are Claude Code–only and stored separately from normal branch history.
Todos
Todos live in the notes tab; incomplete todos can block merging. Reference them in composer with @todos.
Diff viewer
Diff viewer shows agent-made changes and aligns with steps toward merge/PR.
Cursor / Grok in Conductor
Cursor IDE Agent, Claude Code, and Codex inject AGENTS.md and skill catalogs. Conductor's Grok / Cursor CLI path does not, even when those files sit in Cursor's documented discovery locations. Do not compensate with [prompts.general] — that prompt is appended to every harness.
What this Grok path does inject: Cursor User Rules (Customize → Rules) and Conductor action prompts (create_pr, code_review, …). There is no per-harness prompt in Conductor's settings schema. The durable fix is Conductor/Cursor loading project AGENTS.md and ~/.cursor/skills for Grok the same way Claude does; until then, a short Cursor User Rule is the only auto-load channel that stays off Claude and GPT.
Git and PRs
- Permission and safety:
/git-workflows (commit/push gates, fetch-before-diff, SSH, etc.).
- Base branch and PR prose:
/pr-guidelines — first step when choosing base is still Conductor target branch when present.
Managed settings
~/.conductor/settings.json (schema: https://conductor.build/schemas/settings.json) holds machine-wide overrides Conductor enforces — defaultModel, enterpriseDataPrivacy, claudeExecutablePath. In this dotfiles setup it is symlinked from agents/conductor.settings.json; edit there.
Official documentation
Full index: docs.conductor.build/llms.txt. Starting points:
1---2name: conductor3description: Use when working inside Conductor (conductor.build): parallel workspaces/worktrees, `CONDUCTOR_*` env vars, workspace path under ~/conductor/workspaces, target branch for PRs/rebase/diff, Diff Viewer, archiving, one-branch-per-workspace rules, run scripts and ports, checkpoints/todos, or "which branch is the base". Pair with `/git-workflows` and `/pr-guidelines` for git and PR specifics. Triggers on Conductor, worktree, CONDUCTOR_ROOT_PATH, workspace city name, parallel agents, ⌘⇧N workspace, merge block, @todos.4---56# Conductor78[Conductor](https://conductor.build) runs coding agents in isolated git worktrees. Git behavior (fetch, base branch, permissions) still follows `/git-workflows` and `/pr-guidelines` — this skill is the Conductor-specific layer on top.910## Agent-critical context1112<!-- @> Worktree clone at ~/conductor/workspaces/<project>/<city>; CONDUCTOR_ROOT_PATH = repo root; .context/ gitignored for inter-agent files -->1314- Each workspace is a full repo checkout, typically `~/conductor/workspaces/<project>/<city>` (the `city` name is the workspace directory label; the **branch** is the primary identifier for what you're building).15- **`CONDUCTOR_ROOT_PATH`** points at the repository root inside that workspace. Use it in setup scripts (e.g. symlinking `.env` files): `ln -sf "$CONDUCTOR_ROOT_PATH/<path>/.env.local" <path>/.env.local`.16- **`.context/`** in the workspace is for inter-agent collaboration and is gitignored — don't treat it as durable repo state.1718<!-- @> Conductor target branch in system instruction → PR base, rebase, diff — not the checked-out branch name alone -->1920- Conductor injects a **target branch** in the workspace system instruction. Use it for **PR base selection**, **rebase targets**, and **diff range** — not merely "whatever branch is currently checked out" without confirming it matches that target.2122<!-- @> origin is shared across all workspaces — another workspace may advance the base between your fetches -->2324- **`origin` is shared** with every other clone of the repo. **`git fetch`** (especially `origin` and the relevant base) before diffing or rebasing — another workspace may have advanced the base branch.2526## Environment variables2728Conductor exposes these in the terminal and in [scripts](https://docs.conductor.build/core/scripts) (see [official env doc](https://docs.conductor.build/tips/conductor-env)):2930| Variable | Role |31| -------------------------- | --------------------------------------------------------------------------------------- |32| `CONDUCTOR_WORKSPACE_NAME` | Workspace display name |33| `CONDUCTOR_WORKSPACE_PATH` | Path to the workspace directory |34| `CONDUCTOR_ROOT_PATH` | Repository root inside the workspace |35| `CONDUCTOR_DEFAULT_BRANCH` | Default branch name (often `main`) |36| `CONDUCTOR_PORT` | First of **10** consecutive ports reserved for this workspace (`CONDUCTOR_PORT` … `+9`) |3738## Recommended workflow3940From [Workflow](https://docs.conductor.build/workflow):41421. **One workspace per feature or bugfix** — create via **⌘⇧N** or the **⋯** menu next to "New workspace" (from PR, branch, or Linear issue).432. **Develop** in Conductor's Claude Code UI or open the same tree in your IDE.443. **Review** in the **Diff Viewer (⌘D)**; use Terminal or **Run** to exercise the app. For dev servers, see [Using run scripts](https://docs.conductor.build/guides/how-to-run) — bind to **`$CONDUCTOR_PORT`**; script cwd is **`$CONDUCTOR_WORKSPACE_PATH`**.454. **Open a PR (⌘⇧P)** when ready; fix failing checks with help from Conductor, then merge when green.465. **Archive** the workspace when done; restore later (including chat history) from **Workspaces** in the sidebar.4748## Workspaces and branches4950Per [Workspaces and branches](https://docs.conductor.build/tips/workspaces-and-branches):5152- New workspace → new branch; first chat often renames the branch to match the task.53- Switch work with `git checkout`, `git branch -m`, or `git checkout -b` as usual.54- **A branch can only be checked out in one workspace at a time.** If blocked, switch the other workspace to another branch or create a new branch from the desired one.5556## Parallel agents5758**⌘N** opens another workspace; each agent works in an **isolated** tree so concurrent runs don't stomp the same working copy ([Parallel agents](https://docs.conductor.build/core/parallel-agents)).5960## Checkpoints6162[Checkpoints](https://docs.conductor.build/core/checkpoints) snapshot per-turn code changes and allow revert from the chat UI. Revert is destructive for messages and code after the chosen turn. **Use extra care if multiple chats run in the same workspace** — checkpoints are Claude Code–only and stored separately from normal branch history.6364## Todos6566[Todos](https://docs.conductor.build/core/todos) live in the notes tab; incomplete todos can **block merging**. Reference them in composer with **`@todos`**.6768## Diff viewer6970[Diff viewer](https://docs.conductor.build/core/diff-viewer) shows agent-made changes and aligns with steps toward merge/PR.7172## Cursor / Grok in Conductor7374<!-- @> Grok/Cursor CLI in Conductor does not inject AGENTS.md or skill catalogs; do not put a bootstrap in prompts.general (that hits Claude and GPT too) -->7576Cursor IDE Agent, Claude Code, and Codex inject `AGENTS.md` and skill catalogs. Conductor's Grok / Cursor CLI path does not, even when those files sit in Cursor's documented discovery locations. Do not compensate with `[prompts.general]` — that prompt is appended to every harness.7778What this Grok path *does* inject: Cursor User Rules (Customize → Rules) and Conductor action prompts (`create_pr`, `code_review`, …). There is no per-harness prompt in Conductor's settings schema. The durable fix is Conductor/Cursor loading project `AGENTS.md` and `~/.cursor/skills` for Grok the same way Claude does; until then, a short Cursor User Rule is the only auto-load channel that stays off Claude and GPT.7980## Git and PRs8182- **Permission and safety:** `/git-workflows` (commit/push gates, fetch-before-diff, SSH, etc.).83- **Base branch and PR prose:** `/pr-guidelines` — first step when choosing base is still **Conductor target branch** when present.8485## Managed settings8687`~/.conductor/settings.json` (schema: `https://conductor.build/schemas/settings.json`) holds machine-wide overrides Conductor enforces — `defaultModel`, `enterpriseDataPrivacy`, `claudeExecutablePath`. In this dotfiles setup it is symlinked from `agents/conductor.settings.json`; edit there.8889## Official documentation9091Full index: [docs.conductor.build/llms.txt](https://docs.conductor.build/llms.txt). Starting points:9293- [Workflow](https://docs.conductor.build/workflow)94- [Workspaces and branches](https://docs.conductor.build/tips/workspaces-and-branches)95- [Conductor environment variables](https://docs.conductor.build/tips/conductor-env)96- [From issue to PR](https://docs.conductor.build/guides/issue-to-pr)97- Core: [Parallel agents](https://docs.conductor.build/core/parallel-agents), [Diff viewer](https://docs.conductor.build/core/diff-viewer), [Checkpoints](https://docs.conductor.build/core/checkpoints), [Todos](https://docs.conductor.build/core/todos), [Scripts](https://docs.conductor.build/core/scripts), [MCP](https://docs.conductor.build/core/mcp)