I got tired of typing "do 1 and 3, skip 2" to Claude Code, so I built an approve/reject board
Description and use
ar-board simplifies approving Claude Code proposals by replacing manual command typing with an interactive local web panel of cards, allowing approve/reject/maybe decisions and learning from comments for future sessions.
Problem
When Claude Code returns a numbered list of proposals, the user must manually type commands like "do 1 and 3, skip 2" and the agent may misinterpret or repeat items in subsequent sessions.
Outcome
ar-board streamlines the approval workflow, eliminates manual command typing, and provides a persistent preference file that improves future agent proposals.
Workflow
- Ask Claude Code for a list of proposals (e.g., "Give me 10 architecture improvements as an AR board.")
- Claude Code reads past preferences from .ar-board/preferences.md
- Claude Code writes proposals to batch.json and starts the local panel on 127.0.0.1
- The user judges each card via keyboard (A approve, R reject, M maybe) and adds a comment
- Claude Code reads decisions from decisions.json, acts only on approved items, and asks for confirmation of inferred preference rules
- Approved items are executed by the agent; rejected or undecided items are ignored
Evidence
You ask Claude Code for ten improvements to your project. It answers with a tidy numbered list.
I built ar-board, a Claude Code plugin that turns the list into cards on a local page.
The agent gets back an exact list of what you approved, and your reasons go into a preferences file it reads before it proposes anything next time.
The panel writes decisions.json atomically: a private temp file with mode 0600, moved into place with os.replace.
- Record date: 2026-10-25T02:11:26.940Z