Run coding agents on your machine. Steer them from GitHub.
Label an issue, and an agent carries it to a pull request by itself, asking you on GitHub when it needs a decision or feedback.
- Your own setup. Agents run in Claude Code or Codex on your machine, with nothing hosted and no new service to trust.
- Steer from anywhere. The conversation happens on GitHub, so you can steer from your phone while the agents keep working at home.
- Work in parallel. Run as many agents at once as you allow.
- > dreamcatcher status
- assignments
- #41 Stream uploads from disk needs user feedback working complete dream:smith · last output 3m ago round 3, wrap up round 3, wrap up, ran 1m PR #54 ready PR #54 merged
- #42 Add retries to the upload client working needs user feedback dream:smith · round 1, implement last output 1m ago PR #57 draft PR #57 ready
- #43 Resume an interrupted upload waiting working needs user feedback working dream:less · next round, implement round 1, implement last output 2m ago round 2, address feedback PR #58 draft PR #58 ready
- conversations
- #44 Why do large uploads time out? working idle dream:scout · round 1, running round 1, answered, ran 4m
How it works¶
dreamcatcher runs on your own machine, as a daemon in your repository's main
checkout. It watches the repository through gh, and starts each agent in
Claude Code or Codex. The label on an issue says which kind of work to start.
An assignment carries an issue to a pull request:
- You label an issue and assign it to yourself.
- dreamcatcher opens a draft pull request for the issue, and starts an agent on it in a worktree of its own.
- The agent works in rounds. When it needs a decision, it asks on the pull request, and dreamcatcher passes your reply to its next round.
- When the work is done, the agent marks the pull request ready for review. Review it as you would any pull request. dreamcatcher passes each review and comment to another round, in which the agent addresses your feedback.
- Keep iterating until you're happy, then merge the pull request. If the work should not land, close it.
- The agent then takes one last round to wrap up.
A conversation answers your questions on an issue, and writes no code. Label an issue for a conversation, assign it to yourself, and post a question as a comment. The agent reads the code and answers on the issue. Post another question, and the conversation carries on.
Several agents can work at once, up to a number that you set. Follow them all on a local web page, or in the terminal.
Start here¶
If you already use dreamcatcher, read Compatibility and upgrades before replacing your installation.
With uv installed:
uv tool install dreamcatcher
Then follow From issue to pull request for the complete setup and a first assignment.
Guides¶
- Review an assignment and give the agent feedback.
- Discuss an issue without starting an implementation assignment.
- Stop and recover work.
- Run and monitor dreamcatcher.
- Configure labels and harnesses.
- Customise skills, starting with the ready-made ones from dream.
Reference¶
- Look up exact syntax and behaviour in the command reference.
- Find every accepted setting in the configuration reference.
- Write an assignment skill or a conversation prompt to the agent-facing contract.
- Plan upgrades with Compatibility and upgrades, and see user-visible changes in the changelog.