返回资讯中心
外部精选
软件工程
#社区热议

Show HN: Pinrail – A desktop inbox where coding agents wait for your review

Pinrail is a desktop app where your coding agents ask you before they act.

Hacker Newspnezis2026/10/7 · 24 天前12 分钟阅读

以下正文同步自 Hacker News,版权归原站所有,已转换为易读排版。

Website · Download · Documentation · Plugins

Pinrail is a desktop app where your coding agents ask you before they act. You review what an agent proposes in a view made for it, and the agent carries on with your decision.

Pinrail works with any agent that can run a command, such as Claude Code, Codex, Cursor or OpenCode. It runs on macOS and Linux, and Windows support is coming. Pinrail is in early development, so expect rough edges and changes between releases.

Agents are good at doing the work, but some steps need a person: a comment posted under your name, an email to a customer, a change to production. Approving those steps in a chat means reading a wall of text and typing your answer back. Pinrail gives each of these moments a proper review:

sequenceDiagram participant A as Your agent participant P as Pinrail A->>P: pinrail submit code-review --data review.json --wait Note over A: waits Note over P: you review and decide P->>A: your decision Note over A: carries on with it

Loading

When the agent reaches a step that needs you, it runs the pinrail command with a review: the plugin to show it with, a title and a JSON payload.

pinrail submit code-review --title "Retry failed webhook deliveries"
--data findings.json --wait

Pinrail notifies you, and the review waits in your inbox, grouped by project.

You open it, and decide in the plugin's view. In the code review at the top of this page, you accept or reject each of the agent's findings, and write a note to the agent.

When you hand the review over, the command prints your decision and exits, and the agent carries on:

r_01K5R2 · decided · Retry failed webhook deliveries code-review · decided by maya at 2026-09-23 10:14

  • #1 accepted src/deliver.ts:42 — The worker sleeps for up to 31 seconds per delivery (major)

Agreed. Re-enqueue with runAt = now + backoff(attempt)

  • #4 rejected src/log.ts:18 — The give-up log should say why (nit)

Fine as it is; the log already has the delivery id.

Undecided: #2, #3, #5

The command's exit code says how the review ended: decided, discarded with an instruction to stop, withdrawn or expired. When you ask for changes, the agent submits a new round, and the app shows your earlier verdicts beside it.

Install the app from the download page or the latest release. On macOS, it is signed and notarized.

Follow the setup that opens the first time. It installs the pinrail command, adds Pinrail's skill to the agents it finds on your computer, and installs the recommended plugins.

Ask your agent for something, in your own words:

Ask me through Pinrail which TODOs in this repository to tackle first.

Or ask it where Pinrail would help in your project:

Look at this project and suggest where you should ask me through Pinrail before you act.

Your first review walks through this, and Instructing an agent shows how to make an agent ask at the steps you choose, every time.

Each kind of review is a plugin: the payload an agent sends, the decision you give back, and the view you decide in. Five core plugins come with the app:

Sample plugins in forgeplane/pinrail-plugins show what else a plugin can do. They cover HTML pages, emails, calendars, logos, colour palettes, 3D models, animations, audio, video, design canvases, before-and-after comparisons and trades. Each one is released as a zip, which you install in the app's Settings › Plugins.

A plugin is a manifest, two JSON schemas and an HTML view, with no build step needed. pinrail plugins new <name> creates one, and the plugin SDK, pinrail-sdk, runs its view in a browser without the app and tests it with Playwright. Views can also be built with React, Vue, Svelte or any other framework. See Writing a plugin.

Directory Contents

desktop/ The app: a Rust core (API, storage, plugins), a Tauri shell and a React UI.

cli/ The pinrail command that agents run.

plugins/ The core plugins.

sdk/ The plugin SDK, its development shell and its test harness.

skill/ The skill that teaches an agent to use Pinrail.

e2e/ End-to-end tests of the CLI and the app's UI against the headless core.

docs/ The documentation, published on the website.

website/ The website.

Development

Node is pinned in mise.toml, which mise install sets up, and Rust in rust-toolchain.toml, which rustup reads on its own.

mise run dev:desktop # the app with live reload mise run test # every test suite mise run lint # rustfmt, clippy, the type check and the licences, as CI runs them

CONTRIBUTING.md describes each test suite and how to run it. Read it before you open a pull request. To report a vulnerability, follow SECURITY.md.

Pinrail is licensed under the Apache License 2.0. See NOTICE for the copyright and the third-party notices.

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →