All work
1 min read
Maya: a coding agent that opens its own pull requests
- ClientPersonal project
- RoleSolo
- When2026
I wanted to see how far a coding agent gets on real tickets with guardrails instead of freedom. Maya has run on 50+ of my own Linear tickets. It works each one in its own worktree, loops on lint and tests, and opens a PR. I review and merge.
What I built
Queue
Linear webhook into BullMQ on Redis, one job per ticket.
Worktrees
A fresh git worktree per ticket, so runs never touch each other.
Agent
Headless Claude Code, with local Ollama models as a cheaper option.
Retry loop
Lint and tests after each attempt. Failures go back to the agent.
Reports
GitHub CLI opens the PR. Telegram reports completion, failures and cost for every run.
How it's built
One ticket, one job, one worktree, one branch. Maya can open a pull request. It cannot merge one.
- Linear ticketWebhook
- BullMQ jobRedis, one per ticket
- Git worktreeOwn branch
- AgentClaude Code or Ollama
- Lint and testsFailures loop back
- Pull requestGitHub CLI
- Human reviewRequired to merge
- Linear status
- Telegram reportCompletion, failures, cost
StackClaude CodeOllamaBullMQRedisGitHub CLITelegram