# Pinrail

> A desktop review inbox where AI coding agents ask for your decision before acting, returning structured accept/reject feedback.

Pinrail is a free, open-source desktop app from Forgeplane that gives people a place to review what an agent proposes before it acts. An agent runs the `pinrail` command, the review lands in an inbox, and the decision goes back to the agent as Markdown or JSON. It runs on macOS and Linux, with Windows listed as coming soon, and the project describes itself as in early development.

## What It Is

Pinrail is a human-in-the-loop review tool for agentic workflows. Instead of approving a comment, email or change in a chat window, you open the review in a view built for that content and decide there. It works with any agent that can run a command, including Claude Code, Codex, Cursor, Gemini CLI and OpenCode, as well as CI jobs and shell scripts.

## How a Review Works

The agent's instructions name the steps that need a person. At such a step it runs `pinrail submit <plugin> --data payload.json --wait`, naming the plugin to show it with, a title and a JSON payload. Pinrail sends a notification and the review waits in the inbox, grouped by project. You accept, reject or edit items, add notes, and hand the review over. The command then prints your decision and exits, and the agent carries on.

The exit code reports how the review ended: decided (0), withdrawn or expired (3), timed out while still pending (4), or discarded with an instruction to stop the gated work (5). If you ask for changes, the agent submits a new round with `--revises`, and the app shows your earlier verdicts beside it. Every round and decision is kept and can be reopened later.

## Plugins and Views

Each kind of review is a plugin made of a manifest, two JSON schemas (payload and decision) and an HTML view. Five core plugins ship with the app: code-review, list, feedback, markdown and image. Sample plugins in a separate repository cover emails, HTML pages, 3D models, audio, video, before-and-after comparisons and more. Feedback is tied to what it points at, such as a line, a pixel region or a time in a video. `pinrail plugins new` scaffolds a custom plugin, and the `pinrail-sdk` package runs a view in a browser and tests it with Playwright.

## Local Operation

The app serves its API on loopback only and keeps reviews and decisions on your computer. There is no account, and a plugin's view is sandboxed. First-run setup installs the `pinrail` command, adds Pinrail's skill to agents it finds on the machine, and installs the recommended plugins. The app keeps listening with its window closed, and a waiting agent can pick up a decision later with `pinrail wait <id>`.

## Features
- Desktop inbox for agent review requests
- Code review view with accept/reject findings on diffs
- Email draft, list, question, image, 3D model, audio, video and before/after views
- Plugin system with JSON Schema payloads and HTML views
- Revision rounds with earlier verdicts shown beside new ones
- Exit codes for decided, withdrawn, timed out and discarded reviews
- Decisions returned as Markdown or JSON, with --decision-out
- Notifications and menu bar count of waiting reviews
- Local-only loopback API, no account
- Plugin scaffolding via CLI and pinrail-sdk

## Integrations
Claude Code, Codex, Cursor, Gemini CLI, OpenCode, Kimi, GitHub, Playwright

## Platforms
WINDOWS, MACOS, LINUX, API, CLI

## Pricing
Open Source

## Version
0.1.3

## Links
- Website: https://pinrail.dev
- Documentation: https://pinrail.dev/docs/
- Repository: https://github.com/forgeplane/pinrail
- EveryDev.ai: https://www.everydev.ai/tools/pinrail
