Harnie
Boring Infra Co.InstallDocsGitHub
A Boring Infra Co. product

Your work shouldn't belong to your coding agent.

Harnie reads Pi, OpenCode, and Codex sessions without mutating them, stores observed work in SQLite, and emits Markdown continuation handoffs.

$curl -fsSL https://boringinfra.company/harnie/install.sh | sh

Local-first. Harness-independent. Your agents do the work. Harnie keeps the state.

Requires Node.js 22.23+. Then harnie init.

Pi
Search the render log, replace OLD_VALUE with NEW_VALUE in src/example.txt
Harnie
Goal
Search the log once, then replace OLD_VALUE with NEW_VALUE
Findings
Searched the log and replaced OLD_VALUE with NEW_VALUE
Current state
Edits reported success. Verification not recorded.
Next
Verify the edits on src/example.txt. Do not re-edit.
Provenance
observed
OpenCode
Continue from the Markdown handoff. Do not re-investigate from scratch.

Same work. Different agent.

Pi started it. Harnie observed it. OpenCode continues from the handoff package.

The session isn't the work.

Coding agents keep their own sessions, histories, tool activity, and context. Switch harnesses and that continuity disappears with them.

Harnie separates the work from the agent that performed it.

Work persists across executions

The work persists. The execution can change.

This is all it takes.

No new coding agent. No new harness. No control plane. Harnie works beside the tools you already use.

1. Import
// harnie sessions lists importable rows
harnie import pi <session.jsonl>
2. Inspect
// Goal, findings, next steps, provenance
harnie show work:pi:cfef1a72-…
3. Handoff
// Markdown package → stdout + handoffs/
harnie handoff <work> --to opencode

Your work stays yours.

Harnie starts local. Observed events and derived claims live in $HARNIE_HOME/harnie.db. Continuation packages land in $HARNIE_HOME/handoffs/ — regenerable, safe to exclude from backups.

Your machine
Pi session (read-only)
    ↓
harnie.db (SQLite)
    ↓
Markdown handoff
    ↓
OpenCode (fresh session)
Hosted control plane · Does not exist
// Nothing to send. Nowhere to send it.
if (cloud) return null;

No Harnie account. No hosted runtime. No requirement to send your engineering history somewhere else just to continue your work.

Import. Understand.
Continue.

1

Import

Harnie reads structured session evidence your coding agent already persists — Pi JSONL, OpenCode sessions, Codex rollouts — without writing back to them.

2

Understand

Rule-derived claims — goal, findings, next steps, operations — with per-claim provenance back to observed events in SQLite.

3

Continue

Emit a Markdown continuation package for a fresh agent session. Harnie does not resume sessions natively inside any harness.

Harnie Work connects Pi, OpenCode, and CodexHARNIEWorkPiOpenCodeCodex

Harnesses execute. Harnie keeps continuity.

Know where the state came from.

Harnie doesn't flatten agent history into an opaque summary. Observed events stay distinct from rule-derived claims, with provenance back to the source session.

Provenance chain
OBSERVED
bash rg -n "exceeds terminal width" logs/rend … — succeeded
OBSERVED
edit src/example.txt — succeeded
DERIVED · GOAL
Search the render log once, then replace OLD_VALUE with NEW_VALUE in src/example.txt.
DERIVED · FINDING
Searched the log once and replaced OLD_VALUE with NEW_VALUE.
DERIVED · NEXT
Verify the edits on src/example.txt. Do not re-edit.

Observed. Derived. Traceable.

Rule-derived claims with per-claim provenance — traceable, but not necessarily true, current, or settled.

What do you get?

A durable record of coding work that isn't owned by the agent that happened to perform it.

Portable work

Goals, findings, next steps, and operations survive in a local SQLite archive — independent of the harness that performed the work.

Cross-agent handoff

Start in Pi. Continue in OpenCode. Paste the Markdown handoff into a fresh session — validated in limited scenarios, expanding over time.

Evidence-backed state

Every derived claim links back to observed events — traceable, not an untraceable LLM summary.

Agents are temporary. Work isn't.

AI coding work should outlive the agent that performed it.

Models change. Harnesses change. Developers switch tools. The engineering work underneath shouldn't have to start over every time.

Today
PiOpenCodeCodex
With Harnie
PiOpenCodeCodex

Stop starting over.

Keep the work. Change the agent.

$curl -fsSL https://boringinfra.company/harnie/install.sh | sh

Then harnie import pi <session.jsonl>.

View on GitHub