Onyeka Nwamba

AgentRail - A local control plane for AI coding agents

byβ€’
AgentRail is the open-source task lifecycle layer for coding agents. Agents can write code β€” the hard part is everything else: picking the right ticket, watching CI, incorporating review feedback, merging when it's ready. It connects agents to GitHub, Linear, and CI with structured typed events instead of raw webhooks and log walls. - Per-agent scoped auth - Rules-based task-> agent routing, - structured CI summaries. - Apache 2.0 licensed. Runs locally.

Add a comment

Replies

Best
Onyeka Nwamba

Hey Product Hunt πŸ‘‹

I'm Onyeka, and I've been obsessed with one problem: coding agents can write great code, but they can't close a ticket.

They miss CI failures. They don't know which issue to pick up next. They lose context on review comments. You end up babysitting them instead of letting them ship.

That's after spending a couple hours of your day setting this all up.

**The problem** πŸ‘€
Every agent integration I saw was the same: dump GitHub webhooks at your agent and hope for the best. Raw log walls. No structure. No routing. The agent burns context just parsing noise.

What we built ⚑
AgentRail is an open-source task lifecycle API that gives coding agents a real dev loop:
- πŸ“₯ GitHub Issues and Linear tickets become routable tasks automatically
- πŸ” CI results come back as structured summaries β€” not raw log walls
- πŸ” PR review comments are ranked by severity (blocking vs. advisory)
- πŸ”‘ Per-agent scoped API keys β€” each agent only touches what it needs
- 🏠 Runs entirely locally, no account required

**How to try it** πŸš€
npm install @agentrail-core/cli β€” that's it.

Completey free for self-hosted, contributions are more than welcome!

Agentrail is in the very early stages, and actually launched earlier than planned to make it for Vercel Day! So please, break it, roast the hell out of it, all feedback is welcome/

Would love to hear from anyone running Claude Code, Codex, or Cursor agents at scale. What's the first thing that breaks when you have more than one task running? πŸ™

Chad Nelson

@AgentRail First off, props to the AgentRail team. This is a really thoughtful system, and the core idea is strong: a local control plane for coding agents with task lifecycle, scoped agent keys, event delivery, blocker handling, and GitHub workflow support. We tested `@agentrail-core/cli@0.1.3` in a Windows lab environment with a disposable GitHub repo. What worked well: - Local AgentRail lifecycle API worked cleanly with a redirected `AGENTRAIL_HOME`. - Agent auth was solid: scoped keys, rotation, rate limits, and permission checks behaved well. - Event delivery and blocker handling worked nicely for β€œagent needs user input” flows. - Direct GitHub adapter testing worked against a disposable repo: - created a PR - merged the PR - created a rollback PR A few things we ran into during testing: 1. GitHub submit wiring in the stock server runtime It looks like `buildRuntime` passes AgentRail’s `publicBaseUrl` into `GitHubSubmitAdapter` as the GitHub API base URL. In local server mode, that appears to point GitHub submit calls at the AgentRail server URL instead of `https://api.github.com`. 2. Ship/merge state persistence The GitHub merge operation itself worked, but `AgentTaskQueue.shipTask` did not appear to persist the final task state as `done` or retain the merge metadata without a small wrapper around it. 3. Windows runner command output The generated runner command uses POSIX-style syntax like: `source && cd && codex` On Windows/PowerShell, that needs a platform-specific version. Overall: really promising project. The architecture is solid, and several pieces tested better than expected. For our workflow, we’re keeping AgentRail in a lab/partial-adoption state for now, mainly because of the Windows runner command and the stock runtime/persistence issues above. With those tightened up, this could be very useful as a real multi-agent task control layer.

Onyeka Nwamba
@nbluff75 Thank you so much for trying Agentrail out! Really appreciate the feedback and will be fixing the issues ASAP. Also, Windows runner was something that I completely missed, and will be adding Windows compatibility to the roadmap, stay tuned! Thanks again for trying it out.
Chad Nelson

@onyeka_nwambaΒ Thank you. I look forward to the updates and to be able to fully utilize this tool. It is perfect for my workflow. I can't wait to see what is coming next from your camp!!!

Rivra

A local control plane for coding agents is a huge win for security-conscious teams. Does AgentRail support fine-grained permissions for what files an agent can actually modify?

Onyeka Nwamba
@rivra_dev Not yet! At the moment permissions are limited to which repo an agent can access. But this is definitely something worth adding
Ritik Gupta

Honestly, the babysitting part is the biggest bottleneck with coding agents right now. Most tools just dump webhooks and hope for the best. I am curious about how does the structured CI summary handle complex logs from something like a massive monorepo without losing the specific error context for the agent?

Onyeka Nwamba

@ritikgupta_01Β  Hey Ritik, great question. We don’t summarize CI as one giant blob. AgentRail keeps the CI hierarchy: workflow β†’ job β†’ step/shard/package/test. The agent gets the failing leaves, key error excerpts, affected files/tests when available, commit/check IDs, and links back to the raw logs. So the context is compact, but the exact failure remains traceable instead of being lost in a generic summary.

Sergey

the webhook β†’ raw json β†’ custom parser loop is the part of agent infra i hate most. how heavy is the setup?

Onyeka Nwamba

@sergeynagornyΒ Very intentionally not heavy. You run agentrail init, connect a provider and then create an agent. Webhooks are optional; local setups can use polling first (for webhooks you'll need either a VPS or ngrok, since webhooks won't work on localhost). AgentRail handles provider payloads, signature checks, idempotency, routing, and normalized task state so agents don’t need bespoke raw JSON parsers.