Skip to content
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.

Pipeline
  1. Linear ticketWebhook
  2. BullMQ jobRedis, one per ticket
  3. Git worktreeOwn branch
  4. AgentClaude Code or Ollama
  5. Lint and testsFailures loop back
  6. Pull requestGitHub CLI
  7. Human reviewRequired to merge
Signals
  1. Linear status
  2. Telegram reportCompletion, failures, cost
StackClaude CodeOllamaBullMQRedisGitHub CLITelegram