Skip to main content

redliner

A local review tool for AI agent work. Comment on plans and code diffs line-by-line, resolve feedback, and approve changes through a web UI or CLI.

The idea: an agent writes code, you redline it. Comments are stored as JSON files that the agent can read and act on.

Install

uv tool install redliner

Plan review

Review a plan file with inline comments:

redliner open plan.md        # web UI in your browser
redliner show plan.md        # print with line numbers and comments
redliner comment plan.md 10 "This needs more detail"
redliner list plan.md        # list all comments
redliner resolve plan.md 1   # resolve comment #1
redliner approve plan.md     # approve (fails if unresolved comments)

Diff review

Review working tree changes side by side:

redliner diff                 # opens all changes in web UI
redliner diff --path src/foo.py   # single file
redliner diff --no-open       # just print status as JSON

The diff view shows old and new versions in collapsible columns. Click any line to leave a comment.

How comments are stored

Comments are stored under $XDG_DATA_HOME/redliner/reviews/ (defaults to ~/.local/share/redliner/reviews/). Each review session (a plan file, or a diff over a repo) gets its own directory with comments.jsonl and meta.json.

comments.jsonl has one comment per line, each self-describing with the full file path:

{"id": 1, "file": "/abs/path/plan.md", "line": 42, "text": "Handle the None case", "status": "pending", "created": "..."}

meta.json tracks per-file review status:

{"files": {"/abs/path/plan.md": {"status": "approved", "approved_at": "..."}}}

The storage path is shown in the web UI header with a one-click copy button. From the CLI, redliner status <file> prints it as "storage". Agents can read comments.jsonl directly.

Agent workflow

  1. Agent writes code or a plan
  2. You run redliner diff or redliner open plan.md
  3. You leave comments on specific lines
  4. Agent reads the review JSON files and addresses feedback
  5. You review again until satisfied, then approve

Requirements

Python 3.12+. No external dependencies.

Metadata

Release files for redliner 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for redliner 0.5.0
File Size Uploaded Provenance
redliner-0.5.0.tar.gz 47.0 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for redliner 0.5.0
File Interpreter ABI Platform
redliner-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 68.6 kB

Release files / redliner-0.5.0.tar.gz

Download URL redliner-0.5.0.tar.gz
Size 47.0 kB
Tags Source
SHA-256 checksum
How to use checksums
7a083f71e3bf3f18e31e411253f8a8bdc3ec21e36a6014fa5f440088e1f7eebd
BLAKE2b-256 checksum
How to use checksums
7838c929ea0a1e804171cb92fd6d58f1152ac42556e0ecc01fdb99411bd45823
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 29, 2026.

Transparency log

Release files / redliner-0.5.0-py3-none-any.whl

Download URL redliner-0.5.0-py3-none-any.whl
Size 21.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ac97b212757bf2a962aee6e15fe64a258ae9299900984f8834f1c82995096121
BLAKE2b-256 checksum
How to use checksums
44fd9ebbd42266e9bba885d298bb9e0ce87e038617df93f6602bc79e4b343867
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 29, 2026.

Transparency log

Security for redliner 0.5.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for redliner-0.5.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 29, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page