pi-papercuts

Agent complaint box for Pi: file friction into an append-only .papercuts.jsonl, then keep working.

Packages

Package details

extension

Install pi-papercuts from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-papercuts
Package
pi-papercuts
Version
0.3.1
Published
Sep 3, 2026
Downloads
601/mo · 21/wk
Author
adityavg13
License
MIT
Types
extension
Size
46.3 KB
Dependencies
0 dependencies · 3 peers
Pi manifest JSON
{
  "extensions": [
    "./index.js"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

pi-papercuts

Agent files one-line friction notes into .papercuts.jsonl and keeps working. Review the backlog later.

Port of treygoff24/papercuts (MIT) for Pi. Pure Node. Needs Pi + Node 22+.

Install

pi install npm:pi-papercuts

From a clone of this monorepo:

pi install ./packages/pi-papercuts

Use

papercuts({ action: "add", text: "what broke + what would have prevented it", tags: ["tooling"], severity: "major" })
papercuts({ action: "list" })
papercuts({ action: "list", format: "md" })
papercuts({ action: "resolve", ids: ["pc_9f2c"], note: "fixed" })
papercuts({ action: "doctor" })
papercuts({ action: "schema" })
Action What it does
add File a cut (text required). Optional tags, severity. Evidence is free-note or cmd/exit/stderr, not both. Wire alias logadd.
list Open cuts by default. Filters: status, agent, tag, severity, limit, format (json | md).
resolve Mark ids resolved (pc_ + ≥4 hex). Append-only.
doctor Validate the log.
schema Machine contract for agents.

Severity: minor (default), major, blocker. Ids are content-addressed; duplicate adds are no-ops.

Interactive Pi uses a compact themed call/result view. Expand a tool row for the full text, tags, and log path. Structured result details remain available to the agent and session history.

Where it stores

  1. file param
  2. PAPERCUTS_FILE
  3. nearest .git<root>/.papercuts.jsonl
  4. else ~/.papercuts/log.jsonl

Optional: PAPERCUTS_AGENT, PAPERCUTS_NOW (tests).

echo .papercuts.jsonl >> .gitignore   # keep local only

With pi-deferred-context-engine, defaults pin papercuts so it stays active.

Gotchas

  • Does not auto-detect failures -- the agent has to call it (habit / AGENTS.md).
  • Not a secret store. Size caps only; resolve does not erase cut text.
  • Outside git, log goes under home unless PAPERCUTS_FILE is set.
  • Log path must be a normal file (not a directory, FIFO, or device).

More: residual risks.

License

MIT.