Prerequisites
- Konduktor instance running (see installation for details)
- Konduktor CLI installed (see CLI reference for details)
Part one: Create and run a task using a background agent
Create a workspace
The first thing you need to do to start using Konduktor is create a workspace. This is as simple as clicking the “New workspace” button from the Konduktor home page and pasting in a GitHub repo URL. You can also do this via the CLI like so:Create a task
Now that you’ve created a workspace, you can create and run a task. Tasks are the basic unit of work in Konduktor, and they are somewhat analogous to tickets in project management tools or issues on GitHub. Creating a task will place it on the board so you can keep track of work, and you can either pick it up yourself, or, more interestingly, start a Claude Code session in the background to complete your task. To create a task in the UI you need to be inside your desired workspace, and you can then click “New task” on the top right of the “Board” page or you can simply use the keyboard shortcutCMD + K to open the command bar and start typing a title. An option to create task will pop up and you can then fill in the rest of the details in the modal.
From the CLI, creating a task is even simpler:
Pro tip: If you know you’ll mostly be working on one specific workspace, you can runThe CLI also let’s you add tags, priority, a description, a status (maps to board column), and more. Anything you can do in the UI you can do using the CLI. If task creation succeeded, you’ll see a response like:konduktor workspaces set-default <workspace_name>to avoid having to append all CLI command calls with the-wflag and the workspace name.
Run the created task
From the UI, running the task can be done in like 4 different ways. You can click the little play button that appears when you hover on a task card, open the task modal and click “Run task” on the top right, search for the task using the command bar and use the shortcutCMD + R, and you can also click “Create and run” (or use the shortcut) when creating a task.
To run a task from the CLI, we’ll need the short task ID returned to us in the previous command. Most objects in Konduktor (tasks, projects, questions) have full UUIDs. However, since the chance of collision is unlikely, Konduktor CLI commands all support short IDs for ergonomics. If you ever run into a conflict, just use the full task ID.
What does running a task mean?
Running a task will create a Claude Code session that gets passed your task’s context as the prompt and creates a new worktree for your repo to work on. We keep the worktree around until the task is marked as “Done” or “Closed” which means triggering a resume via the UI or CLI will mean the agent just picks up from where it left off. You can stop running sessions, and you can get complete logs for each of them. Logs never get deleted. The default system prompt instructs the agent to create a PR once it’s done, but you can change this system prompt in the “Workspace Config” page (or using the CLI) if you’d prefer to not get PRs and instead do something else. We have a whole system built around sessions to handle edge cases that may come about, like sessions dying or sessions becoming orphaned and running “forever” (or appearing to do so). Periodic processes will, among other things, clean up worktrees and orphaned sessions, meaning we only keep stuff that’s useful on disk (a lot of worktrees can use up a lot of space). Agent sessions also have access to the Konduktor CLI internally, which means they can look at what else is on the board, update the task status, create docs, create questions, and do basically anything you can do yourself, which brings us nicely to the concept of scheduled agents.Part two: Scheduled agents
Scheduled agents are Claude Code sessions that run periodically on a schedule you’ve set. Basically a cron job that triggers a Claude Code session. They use similar mechanisms to task agents but are meant to be used for a different purpose. Again, the key part is that they have access to the Konduktor CLI so they can scan everything that’s going on (the board, the open questions, the docs) and act on it accordingly (create tasks, update projects, create questions, run tasks). For instance, I’m currently running five scheduled agents:- pr-reviewer (every 30 min): Reviews PRs from tasks in the “PR Submitted” board column. What’s nice is that the reviewer has full context of my project because it not only has the code but also the product docs, the board status, etc. and it can run tests, actually run code, and so on. This makes the reviews really useful.
- ideator (every 12h): The
ideatoragent is told to analyze the codebase, docs, and board and create a well-scoped task in the Ideas column that would be a useful feature to have right now. AI ideas are of course limited, but we can’t always think of everything, and I’ve gotten both great fully-formed ideas from theideatorplus have derived ideas from concepts it pointed me towards. This is only two ideas a day so it’s not a massive cognitive load and it’s easy to dismiss or accept. Keeps me open-minded and helps prevent me from getting stuck, since I can always just protoype a new idea and see if it makes sense. - bug-fixer (every 12h): Audits a part of the codebase for major bugs and creates and runs one task to fix the most impactful bug it finds. I started off having this run more regularly, but I realized it was a bit too much for me. Two ideas per day + two unprompted bug fixes is enough context that I’m not already considering. Since I wasn’t looking for the bug myself, context switching to understand it deeply and its fix can take a bit of energy, but I’m happy to spend that energy twice a day as a tradeoff for having a more robust codebase.
- challenger (every 8h): Looks at tasks with the
needs-spectag (my own concept) and asks questions about them. Sometimes I have an idea for something but I’m working on something else. In order to not disrupt my flow, I’ll just throw it as a to-do or idea in Konduktor and get back to what I’m doing. Thechallengerthen goes into these tasks, infers what’s needed from the code, and asks me targeted questions to help me scope it better when I have time, instead of me having to go in and do that ground work myself. - project-runner (every 2h): If I have a project with the
agent-readytag, theproject-runnerwill see if there are recently unblocked tasks and then trigger them. This helps move projects that have solid specs forward while I’m focused on something else.
Part three: Getting more out of tasks
As I mentioned earlier, there’s still a lot more to tasks than what we’ve covered.Task configuration
In the Workspace Config page (konduktor config in the CLI) you can do a few interesting things:
- Enable merge conflict auto-fixing
- Enable CI failure auto-fixing
- Edit the task agent system prompt