Skip to content

Quickstart

Conduit polls an issue tracker, dispatches a coding agent for each eligible issue inside an isolated git worktree, and optionally writes results back. This guide walks through a minimal GitHub Issues + Claude CLI setup.

Prefer point-and-click? The setup wizard generates the install command, workflow file, and .env from your tracker and runner choices.

Terminal window
npm install -g @conduit-harness/conduit

Conduit uses a plugin model — install the tracker and runner you need alongside the core. See Trackers and Runners for the full list.

Terminal window
npm install -g @conduit-harness/conduit-tracker-github
npm install -g @conduit-harness/conduit-runner-claude-cli

The claude binary must be installed and authenticated. See the Claude Code docs for setup.

Create .conduit/workflow.md:

---
tracker:
kind: github
api_key: $GITHUB_TOKEN
owner: your-org
repo: your-repo
active_states: [open]
required_labels: [agentic]
excluded_labels: [blocked]
writes:
enabled: false
workspace:
root: .conduit/workspaces
strategy: git-worktree
base_ref: main
agent:
kind: claude-cli
max_concurrent_agents: 1
claude-cli:
command: claude --dangerously-skip-permissions -p -
---
Implement the GitHub issue below in this repository.
Issue: {{issue.identifier}} - {{issue.title}}
URL: {{issue.url}}
State: {{issue.state}}
Labels: {{issue.labels}}
Workspace: {{workspace.path}}
Attempt: {{attempt.number}}
Description:
{{issue.description}}
Please make the smallest safe change, run relevant tests, and summarize the result.

Create .env:

GITHUB_TOKEN=github_pat_...

Use a fine-grained personal access token scoped to your repository with Issues: Read & Write permission. See GitHub tracker for details.

Secrets must come from environment variables — Conduit will not read raw API keys committed to a workflow file.

Terminal window
conduit validate --workflow .conduit/workflow.md
conduit once --workflow .conduit/workflow.md
conduit start --workflow .conduit/workflow.md
  • validate checks the workflow without contacting the tracker.
  • once polls the tracker once and dispatches eligible issues.
  • start runs the polling loop continuously every 30s.

Add --dry-run to either command to select issues without dispatching agents.