CLI orchestrator for a team of AI roles inside your project.
Set Konductor up once per repo, then hand it tasks. It reads your project, assembles the right roles (Product Owner, Tech Lead, Frontend, Backend, …), plans, and executes each task through Claude — logging every run and remembering decisions along the way.
konductor init # one-time setup (Claude suggests your team)
konductor -p "Add Google sign-in" # run a task through the team
konductor # show project status- Why
- Requirements
- Install
- Commands
- How it works
- Configuration
- Project layout
- Development
- Billing
- Roadmap
- License
Most AI coding tools act as a single generalist. Konductor instead gives Claude a team: a small set of role cards (responsibilities + operating instructions) tailored to your product, plus persistent project memory. Every task is run through that context, so the model plans and acts like the right specialist rather than starting cold each time.
- Project-aware — infers product type, subprojects, and the smallest useful set of roles from your repository.
- Persistent — long-lived context and a per-run decision log live in
.konductor/, version-controlled alongside your code. - Autonomous — runs agentically in your working tree via the Claude Agent SDK, streaming progress to your terminal.
- Auditable — every run is saved as a JSONL log you can replay or inspect.
- Bun ≥ 1.0 — runs the TypeScript directly, no build step.
- The Claude Code CLI, logged in. Konductor reuses that local session for auth, so no API key is needed for personal use.
git clone <this-repo> konductor && cd konductor
bun install
bun link # makes `konductor` available globallyDuring development you can run it without linking:
bun run dev -- -p "your task"| Command | Description |
|---|---|
konductor init |
One-time setup. Scans the repo and scaffolds .konductor/. |
konductor -p "<task>" |
Run a task through your AI team. Alias: --prompt. |
konductor |
Show project status, or launch init if the repo isn't set up. |
konductor -v |
Print the version. Alias: --version. |
konductor --help |
Show usage. |
project context → roles → orchestration prompt → agent execution → run logs → memory
konductor initscans the repository, asks Claude to infer the product type, subprojects, and the smallest effective set of roles, then pre-fills a short wizard you confirm or edit. If Claude is unreachable it falls back to local heuristics. Setup is written to.konductor/in your project.konductor -p "…"loads the config, scans the current context, builds a single orchestration prompt from the role cards plus memory, and runs the task agentically via the Claude Agent SDK. Progress streams to your terminal; the full run is saved toruns/and a summary is appended tomemory/decisions.md.konductor(bare) reports the detected project root and how to run a task, or startsinitif no.konductor/is found.
Important
During a run Konductor operates autonomously in your repository — it can read, edit, and execute. Run it on a clean working tree so you can review the diff afterwards.
.konductor/project.yaml is plain YAML, validated on every run:
version: 1
name: My App
productType: saas # startup | saas | internal-tool | mobile-app | library | other
subprojects:
- name: web
path: apps/web
kind: web
roles: # product-owner | tech-lead | frontend | backend
- product-owner # mobile | designer | reviewer | growth
- tech-lead
- backend
- reviewer
engine: claude # only `claude` in v1
rules:
- Use TypeScript strict
- Conventional Commits| Field | Required | Notes |
|---|---|---|
version |
no | Schema version. Defaults to 1. |
name |
yes | Display name of the project. |
productType |
yes | One of the six product archetypes above. |
subprojects |
no | Buildable units (name, path, optional kind). |
roles |
yes | At least one role id from the catalog. |
engine |
no | Execution backend. Defaults to claude. |
rules |
no | Free-form constraints injected into every prompt. |
Edit it directly or re-run konductor init to regenerate. Your memory/ files
are preserved on re-init.
What init writes into your repository:
.konductor/
project.yaml # name, product type, subprojects, roles, rules
roles/ # one markdown role card per selected role
memory/ # context.md (long-lived) + decisions.md (per-run log)
runs/ # one JSONL log per task run
Konductor's own source (src/):
src/
cli.ts # command entry point (commander)
commands/ # init, run, default (status) handlers
config/ # zod schema, loader, path resolution
context/ # repository scanner
engine/ # Claude Agent SDK adapter + engine interface
init/ # scaffolding and Claude-backed suggestions
orchestrator/ # prompt assembly + run loop
roles/ # role catalog and card generation
logging/ # JSONL run logger
memory/ # context + decisions store
wizard/ # interactive init prompts
util/ # shared helpers
bun run dev -- -p "your task" # run the CLI from source
bun run typecheck # tsc --noEmitThe codebase is TypeScript run natively by Bun — there is no bundler or transpile step. Commits follow Conventional Commits.
On a Claude subscription, Agent SDK and claude -p usage draws from a separate
monthly Agent SDK credit pool, distinct from your interactive Claude Code limits.
The v1 goal is a reliable single pipeline, not a swarm of agents. Next:
- Additional engine adapters (Codex, OpenAI, local).
- Real parallel subagents and review loops.
- A richer TUI and run history browser.
MIT