The Solana harness,
batteries included

A terminal app for building on Solana with the model you already use. References, a local chain and toolchain checks are in the box.

npx @barestate/oms doctor --install
npx @barestate/oms

How it works

Models were trained on older Solana, and the details they get wrong are usually the ones that changed since. Oh My Sol keeps the current references, program error decoding and toolchain checks next to the model while it works, and gives it a local Surfpool chain to run your program against.

Each task runs in its own Git worktree. When the model thinks it is finished, OMS runs your requirements on a fresh chain before the task closes, and if they fail, the model tries again within the budget you set.

Your keys stay out of reach

On macOS, every command OMS runs goes through a Seatbelt sandbox. It blocks reads from your home folder, apart from the toolchains OMS needs, and it always blocks keypair files and folders like ~/.ssh and ~/.config/solana, so a command the model writes can’t read your keys even if it tries.

Benchmarks

Solana Bench scores an agent by how many distinct Solana instructions it gets to execute successfully on a mainnet fork. On the same model, GPT-6.1 Sol, Oh My Sol scored higher than Codex CLI in both the basic and the swap environment.

Solana Bench scores

  • OMS, GPT-6.1 Sol
  • Codex CLI, GPT-6.1 Sol
  • Claude Code, Opus 5.5

Basic environment38% higher

OMS377
Codex CLI273
Claude Code228

Swap environment30% higher

OMS366
Codex CLI283
Claude Code245
Mean score, higher is better. OMS and Codex CLI ran GPT-6.1 Sol and Claude Code ran Claude Opus 5.5, in the same batches on one VM: basic 8 OMS and 6 Codex CLI, swap 16 and 12, and 2 Claude Code runs in each. Permutation test on the difference of means: p = 0.011 (basic), 0.010 (swap).

It also got there on less. In the basic environment OMS used 18.2K total input tokens for every point it scored, against 33.7K for Codex CLI, which is 46% fewer.

Models are trained on older Solana, so we also built eight tasks around changes newer than the models themselves. On those, Oh My Sol passed more runs than each model’s own harness on every model we tried.

Pass rate on fresh Solana tasks

  • OMS
  • The model’s own harness

GPT-6.1 Sol

GPT-6 Astra

Claude Opus 5.5

Claude Sonnet 5.5

Same model, same eight tasks and the same hidden check for both harnesses.

The gap holds up run by run. If you line up each task and run and keep only the pairs where one harness passed and the other failed, it is almost always OMS that passed.

Matched runs that only one harness passed

  • Only OMS passed
  • Only the other harness passed

GPT-6.1 Solvs Codex CLI

Only OMS passed 21, only Codex CLI passed 2:21–2

GPT-6 Astravs Codex CLI

Only OMS passed 5, only Codex CLI passed 0:5–0

Claude Opus 5.5vs Claude Code

Only OMS passed 3, only Claude Code passed 0:3–0

Claude Sonnet 5.5vs Claude Code

Only OMS passed 6, only Claude Code passed 0:6–0

Runs are paired by task, run and batch. Pairs that both harnesses passed, or both failed, are left out.

It also reads less to get there: 42 to 62% fewer input tokens for every task it solves than each model’s own harness.

Input tokens per solved task

  • OMS
  • The model’s own harness

GPT-6.1 Sol42% fewer

OMS0.13M
Codex CLI0.23M

GPT-6 Astra51% fewer

OMS0.13M
Codex CLI0.27M

Claude Opus 5.562% fewer

OMS0.18M
Claude Code0.48M

Claude Sonnet 5.559% fewer

OMS0.20M
Claude Code0.49M
Total input tokens across all runs, cache reads and writes included. Lower is better.

Run it on your machine

Oh My Sol 0.1.0 runs on macOS and Linux, and on Windows through WSL 2. You need Node 22.19.0 or newer and Git, and the first command is a one-time setup that downloads Surfpool and checks your toolchain.

npx @barestate/oms doctor --install
npx @barestate/oms