~/prajwal / notes / harness

cat harness

Harness

A vendor-agnostic operations layer that keeps my coding agents sharing the same skills, commands, and session history.

2026-06-16 · agents, tooling

I bounce between a few coding agents — Claude Code, Codex, Pi, OpenCode. Each one keeps its own skills, prompts and commands, in its own home directory, in its own format. Let’s say i introduced a new skill/command/plugin that i’m used to in claude code & wanted to switch the harness, i’d not be able to run through the same workflow as that piece is missing. Installing vendored skills across different harnesses is swift enough with npx skills but your custom skills / commands are a different story. Or maybe utilizing the same published claude marketplace across your harnesses.

And each agent maintains its own history, own memory, own session logs. And the frontrunner AI labs are trying to lock you down in their ecosystem with their remote access, cloud agents, desktop apps, connectors etc. And the main glue as they introduce more and more things that will keep you stuck and hard to switch will be the valuable context, the history, the memory around the work you have done overtime, the patterns, the approaches.

So I built Harness. One repo holds the skills, prompts, commands & schemas, and installs them into whichever agent homes you have. Change it once, sync, done. There’s a dry run if you’d rather see what it touches first.

The other half is session logging. Every tool records conversations differently and most make it hard to get anything back out. Harness imports native sessions into a common store, keeps the raw payload separate from the rendered view, and can turn them into readable markdown or a usage & cost report from the token events.

It logs traces, tool calls, results pretty much everything into a interoperable format which can be transformed and loaded into any harness with a simple /load-session.

For eg: you started a long loop / session with codex and hit your limits or whatever, you open claude hit /load-session select your session and continue cooking 👨‍🍳.

Session logs are stored in vault that you can configure by default its ~/.harness. It stores raw sessions, derives processable json & also produces readable markdown you can inspect in obsidian. You can create a private repository to store & backup this so you can access your valuable context from multiple devices ofc.

Bun, TypeScript, no server.

To get started give claude/codex/opencode/pi this prompt and start cooking.

Setup a vendor-agnostic operations layer for my coding agents installed
in my machine following:
https://github.com/beprajwal/harness/blob/main/SETUP.md