Plans / redline V1V2 shipped LIVE
title: Redline status: open source, MIT repo: github.com/NikkyAmresh/redline

Redline Claude's plans in the terminal your browser.

Redline turns Claude Code plans into versioned pages: mermaid diagrams, inline comments, suggested edits, and threads that land back in the session that wrote the plan. One Python file, zero dependencies, everything on localhost.

View on GitHub MIT · Python stdlib · works offline
$ git clone https://github.com/NikkyAmresh/redline ~/.claude/plan-server
$ ln -s ../plan-server/skill ~/.claude/skills/plan-review
$ python3 ~/.claude/plan-server/server.py   # http://localhost:4747
localhost:4747/plan/plan-server/v1
Redline viewer: a rendered plan with a mermaid sequence diagram on the left and a review rail on the right showing a thread that needs a reply, a draft comment, and a suggested edit
a real plan under review: diagrams on the left, your feedback rail on the right
The loop

Feedback that lands back in the session.

  1. Claude writes the plan as a markdown file and opens the page for you.
  2. You select any sentence and leave a comment or a suggested edit. Screenshots paste right in.
  3. Send to Claude submits your notes as one batch and drops a signal file in inbox/.
  4. The session claims it without dropping its work: edits applied, questions answered, version bumped.
  5. The page updates itself. Open questions come back as red threads pinned to the exact passage.
Terminal vs browser

A plan is a document, not scrollback.

╭─ Plan ─────────────────────────────╮ │ ## Phase 1: Core loop │ │ 1. Add server.py with health, │ │ plan and feedback APIs │ │ 2. Wire viewer polling every 2.5s │ │ ⋮ 240 more lines ⋮ │ ╰────────────────────────────────────╯ Would you like to proceed? ❯ 1. Yes 2. No, keep planning
plan mode: one accept or reject, then it scrolls away

Phase 1: Core loop

Add server.py with health, plan and feedback APIs, then wire the viewer to poll every 2.5s.

You · commentCan we ship the inbox watcher first? I want the feedback path proven before the UI.
redline: every sentence is a place to talk
What's in the box

Everything a plan needs to survive contact with review.

Feedback, up close

Three kinds of note, one review rail.

commentRisks and open questions
"Quote anchoring is text based."
Could we anchor on source offsets instead? Rendered-text matching feels fragile across versions.
editPhase 2: Review experience
"Approve button that flips plan status to approved"
Make approval actionable, not just a label.
Approve button that flips status to approved and starts Phase 1 immediately
needs replyRisks and open questions
"Where should approved plans live long term?"
YouI keep losing track of finished plans. ClaudeKeep them here under an archive view, or copy each approved plan into its project repo when implementation starts. Which do you prefer?
Answer Claude… (paste screenshots too)
Reply
Local by design

Your plans never leave your machine.

The server binds 127.0.0.1, rejects foreign Host headers, and never phones home. Plans, feedback, and screenshots live in ~/.claude/plan-server as plain files. There is no auth because there is no network: it is a single-reviewer tool on purpose. Don't put it on the internet.

Quick start

Three lines, then ask for a plan.

$ git clone https://github.com/NikkyAmresh/redline ~/.claude/plan-server
$ ln -s ../plan-server/skill ~/.claude/skills/plan-review
$ python3 ~/.claude/plan-server/server.py   # http://localhost:4747

Python 3.7+ and Claude Code, on macOS or Linux. Then ask any session for a plan, or say /plan-review. The bundled example plan is itself a live demo: select a sentence and send Claude a note.