2026-05-03 19:55:36 -06:00
2026-05-03 18:48:25 -06:00
2026-05-03 18:48:25 -06:00
2026-05-03 18:48:25 -06:00
2026-04-09 20:40:17 -06:00
2026-04-26 20:01:35 -06:00
2026-03-26 22:31:08 -06:00
2026-05-03 16:24:05 -06:00

🏗️ Open Harness

Open Harness is a Docker-based agent harness for one project, agent-tended over time. One docker compose up gives you a long-lived sandbox where Claude (or another agent of your choice) runs against a single repo, branch, and identity — not a multi-tenant comparison rig.

  • One project, one sandbox. A single container scoped to a single repo. The agent owns its branch and its workspace; you keep your laptop clean.
  • Agents that work while you sleep. A tiny croner runtime reads crons/*.md markdown and wakes the agent on a schedule.
  • Only host dependency: Docker. No Node, no Python, no toolchain rot on your laptop.
  • Composable infra. Cherry-pick Postgres, Cloudflare tunnels, SSH, Slack, Caddy gateway via Compose overlays.
  • Multi-agent? Add a pack. Slack-driven Pi+Mom and other multi-agent setups ship as separate packs — see @ryaneggz/mifune.

📦 Install

curl -fsSL https://oh.mifune.dev/install.sh | bash

The installer clones into ~/openharness, offers to share your host gh token, writes .devcontainer/.env, and builds the image (~10 min cold, ~30s warm). Only host dependency: Docker.

🚀 Use it

cd ~/openharness
make shell       # enter the isolated sandbox
# inside the sandbox, launch any core agent:
#   claude   # Claude Code
#   codex    # OpenAI Codex CLI
#   opencode # OpenCode
#   pi       # Pi Coding Agent
make destroy     # stop and remove the sandbox
make help        # all targets

Prefer VS Code or remote SSH? See Connecting to a sandbox.

⚙️ Configure (optional)

.devcontainer/.env is generated with safe defaults during install. Open it any time to change SANDBOX_NAME, set a different GH_TOKEN, change TZ, or enable overlay-specific vars (SANDBOX_PASSWORD for sshd, SLACK_* for the Slack overlay). Apply with make destroy && make sandbox.

Manual setup (no installer)
git clone https://github.com/ryaneggz/open-harness.git && cd open-harness
make sandbox
make shell

✨ What you get

Core agents Claude Code, Codex, OpenCode, Pi
Runtimes Node 22, pnpm, Bun, uv (Python)
DevOps Docker CLI + Compose, GitHub CLI, cloudflared, tmux, croner
Browser agent-browser + Chromium (headless)
One project, one sandbox A single container scoped to a single repo and branch
Crons Markdown-defined schedules in crons/*.md driven by the in-container croner runtime
Multi-agent Install a harness pack such as @ryaneggz/mifune for Pi+Mom + Slack

📚 Where to go next

🗂️ Project layout

See Repo Layout for the annotated tree.

For Pi+Slack functionality, install the @ryaneggz/mifune harness pack from inside the sandbox.

🧹 Cleanup

make destroy

🤝 Contributing & community

Issues and PRs welcome at github.com/ryaneggz/open-harness. If Open Harness is useful to you, please give us a star.

📄 License

MIT.


Full documentation

S
Description
No description provided
Readme
5 MiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 66.1%
Shell 24.8%
CSS 4.8%
Dockerfile 3.4%
Makefile 0.6%
Other 0.3%