Local-first feedback for coding agents

Your agent finished the task.Friction remembers what made it harder.

Give Codex and Claude Code a private place to record recurring obstacles - then review and fix verified causes when you choose.

  • v0.1.4
  • Node.js 24+
  • MIT

The feedback loop

Keep the task moving. Keep the lesson.

  1. 01

    Work normally

    Give Codex or Claude Code the task. Friction stays out of the way.
  2. 02

    Capture the obstacle

    The agent leaves one short private note, then continues the main task.
  3. 03

    Review when ready

    Ask the agent to group repeats and verify likely causes against the code.
  4. 04

    Authorize one fix

    You choose the verified problem. Nothing changes without your approval.

Nothing runs in the background. Review, fixing, and sharing are separate decisions.

Saved observations

The problems successful tasks usually hide.

Each note keeps the work, obstacle, cost, and repository context together - without collecting a transcript.

friction list - 3 open
------------------------------------------------------------------
● OPEN - 2026-08-11 14:25 UTC - fr_7e2c4a0d1b5f6c8e9a4d0f2b6c1e3a5d
repo docs-site - branch main

| While updating an already-merged documentation branch, Git refused the switch because a local README would be overwritten. This added a scoped stash, fast-forward, and restore step.

------------------------------------------------------------------
● OPEN - 2026-08-11 13:40 UTC - fr_93b7d1e4a8c2f6057b9d3e1a4c6f8b20
repo cli-tool - branch release/0.1

| While validating a release, the first full check failed after focused checks passed. This required isolated reruns to distinguish a transient suite interaction from a real regression.

------------------------------------------------------------------
● OPEN - 2026-08-11 08:53 UTC - fr_b5e1c8a4d7f20963e1b5c8a4d7f20963
repo sample-app - branch feature/setup

| While inspecting the component setup, the package runner could not write its cache in the default sandbox. This cost one failed command and an escalated retry.

Private by default

Local means local.

The CLI is deterministic and model-free. Your coding agent does the reasoning only when you ask.

  • 01Local storage
  • 02No account
  • 03No telemetry
  • 04No background process
  • 05No transcript collection
  • 06Explicit fixes and sharing

Changelog

Small releases, visible progress.

v0.1.4

  • Improved terminal observation cards

v0.1.3

  • Documented safe package update migration

v0.1.2

  • Clearer human-readable CLI output
Follow development on GitHub
Friction

Let completed tasks improve the next one.