AgentRail — Coding agents that close tickets, end-to-end<br>Star on GitHubGet started
Now in open beta · source-availableA · R / Q2 2026<br>Coding agents<br>that close tickets,<br>end-to-end.<br>Coding agents can write the code. The hard part is everything around it: picking up the right ticket, watching CI, incorporating review feedback, and merging when it's ready. AgentRail connects your agents to GitHub, Linear, and CircleCI — and handles the full loop.<br>Get started freeRead the docs<br>npm i @agentrail-core/cli · pip install agentrail · Source-available license
agentrail · runs / live<br>● 12 active
Intake
Route
Claim
Review
Ship
41Migrate auth handler to v2 APIacme/payments<br>In reviewclaude-code<br>40Fix flaky test in checkout suiteacme/web<br>Runningcursor-agent<br>39Add Linear webhook for billing eventsacme/billing<br>Mergedcodex-prod<br>38Refactor rate limiter to token bucketacme/api<br>Queuedclaude-code
◆source-available◇custom license◆GitHub + Linear intake◇GitHub Actions + CircleCI◆rules-based routing◇structured CI feedback◆per-agent scoped auth◇SSE event stream · cloud◆TypeScript + Python SDK◇runs locally · bring your own keys◆source-available◇custom license◆GitHub + Linear intake◇GitHub Actions + CircleCI◆rules-based routing◇structured CI feedback◆per-agent scoped auth◇SSE event stream · cloud◆TypeScript + Python SDK◇runs locally · bring your own keys
01 / The problem<br>Coding agents are brilliant at writing code.<br>Less so at closing tickets.
Today's coding agents handle the easy part — writing code. The hard part is everything around it: picking up the right ticket, watching CI, acting on review feedback, and merging cleanly. That loop is still broken.
PROBLEMi.<br>No lifecycle, just a prompt and a prayer.<br>Agents lose context between turns, retry on wrong commits, and re-ask the same questions because nothing tracks state across the issue → PR → merge loop.
PROBLEMii.<br>Personal access tokens with full repo scope.<br>Most agent stacks hand the developer's GitHub PAT straight to the agent — full org access, no expiry, no audit trail. One compromised run exposes everything.
PROBLEMiii.<br>CI is a wall, not a feedback loop.<br>Test failures arrive as raw logs ten minutes after the agent moved on. There's no structured signal — the agent can't reason over a wall of text.
03 / Architecture<br>Many agents, many tools, one rail.<br>N×M bespoke integrations becomes N+M. One connection per agent, one per tool, a shared lifecycle for every ticket.<br>Without AgentRail<br>agt_1agt_2agt_3agt_4agt_5vcsciissuesdeploy<br>N × M integrations — grows with every new agent or tool
With AgentRail<br>agt_1agt_2agt_3agt_4agt_5AGENTRAILCONTROL · PLANE · v1vcsciissuesdeploy<br>N + M integrations — shared lifecycle, one connection each
Connects to your existing stack
GitHubLive
LinearLive
CircleCILive
GitHub ActionsLive
JiraSoon
GitLabSoon
02 / The platform<br>Eight primitives.<br>One source-available backbone.
AgentRail connects your coding agents to GitHub, Linear, and your CI system. Each primitive is a narrow, typed API — run it locally, own your data, adapt it internally.
Tasks<br>Structured lifecycle objects with state, retries, and idempotent transitions. The unit of work for every agent.
POST /v1/tasks
Issue Intake<br>GitHub Issues and Linear tickets become AgentRail tasks automatically via webhook — with routing decisions already baked in.
POST /intake/github
CI Feedback<br>GitHub Actions and CircleCI results stream back as typed events with structured summaries — not raw log walls for the agent to parse.
GET /tasks/:id/ci-status
Scoped Auth<br>Per-agent API keys with narrow scopes — not org-wide PATs. Each agent gets only the access its tasks require, with usage tracked per operation.
POST /agent-api-keys
Event StreamCloud<br>Server-sent events for every state change — task assigned, CI failed, review requested. Agents subscribe once and react in real time, no polling required.
GET /tasks/events
WebhooksCloud<br>HMAC-signed delivery with exponential backoff retries. Subscribe to task events and wire AgentRail into the rest of your delivery pipeline.
POST /webhook-subscriptions
Review Feedback<br>PR review comments from GitHub come back as severity-ranked structured events — blocking vs. advisory — so the agent knows exactly what to fix.
GET /tasks/:id/review-feedback
Routing Engine<br>Rules-based assignment: match incoming issues by label, project, or priority and route them to the right agent automatically.
POST /intake/routing-rules
03 / Task lifecycle<br>Five stages.<br>One complete loop.
Every task moves through five well-defined stages — from the moment a ticket arrives to the moment the PR merges. Transitions are atomic, idempotent, and observable at every step.
01Intake02Route03Claim04Review05Ship<br>01<br>Intake — issues become tasks automatically<br>A GitHub Issue or Linear ticket arrives via webhook and becomes a structured AgentRail task — with a stable ID, typed payload, and routing decision already attached. No polling. No parsing.<br>"color:#6b716f;font-style:italic">//...