Skip to content

Introduction

draft

Pitwall is a self-hosted, ticket-driven control room for AI coding agents. You file a ticket, and Pitwall drives headless Claude Code agents through a deterministic pipeline, with every step visible from one web UI.

File a ticket, a bug with screenshots or a small feature, and Pitwall runs it through a fixed pipeline of narrowly scoped agents: they investigate, plan, implement, review, verify, open the pull request, and hand you a script to test the change with.

You step in only when Pitwall tells you to, at three moments:

Moment What you do
An agent lacks a fact Answer its question, picking one of its suggestions or writing your own
The change is ready Test it by hand, on a checklist made from the agents’ script
The pull request is ready Approve and merge it. Merging is always a person’s action

Everything in between is visible: every agent run, commit, gate verdict and token spent stays on the ticket.

Code runs on runners: machines you register, such as a Linux server or a Mac. A runner checks out the repository, runs Claude Code on it under its owner’s Claude subscription, and pushes the result to GitHub. The server never touches a working tree.

Project documentation stays as Markdown in each repository. Pitwall reads it from there and keeps only its operational state, tickets, runs and users, in PostgreSQL. A repository stays complete and workable without Pitwall.

How Pitwall works covers the parts and how they connect.

A small team, two to five people, working on their own projects and inviting each other where they collaborate. Each person runs agents on their own runners and their own Claude subscription; the agents’ definitions are shared by the whole instance.

It is not a hosted service. You run the server yourself, and there is no public sign-up: the first person creates an account, and everyone else joins by invitation.

Pitwall does not Instead
Connect to Jira, Linear or another tracker Tickets are its own
Run agents in parallel inside a ticket One agent per task, one after another
Run two tickets of a project at once One ticket holds a project’s slot; the rest wait in a queue
Merge on its own A person approves every merge
Work with GitLab or Gitea GitHub only
Call the Claude API Agents run through the Claude Code CLI, on your runners

Pitwall drives the flow of a change, from the ticket to the merge, for the work that fits it: a bug fix, a feature, a planned milestone. Some work always stays in your own session with a coding agent, on your own machine:

  • bringing services up, such as a database or a container, to try something by hand;
  • ad hoc tests and experiments that are not part of any change;
  • a hard problem you work through with the agent and special skills loaded;
  • a deeper review than the pipeline’s review step gives.

Coming back is a commit. Push it to the ticket’s branch, the one its run works on: every step checks out the branch’s head, so the next step builds on your commit as on any other. A run that waits for you, on a question or blocked, carries on with it once you answer or resume. From that same terminal, a terminal agent can read what the run did and watch what it does next.

Today a bug or feature ticket goes the whole way: from the ticket to a merged pull request, with questions, manual tests and pull request reviews on the way. A milestone planned in the repository runs too, phase by phase through the same agents, with one round of manual tests at the end. Chats with an agent exist and are about to change.