Files
open-harness/README.md
T
ryaneggzandClaude Opus 4.7 d14bc330eb task: cloudflared/SSH/host-overlay doc cleanup (keep postgres)
Apply PR #284's doc updates selectively — cloudflared, SSH overlays,
host-bind overlays, SANDBOX_PASSWORD, and openssh-server references
removed everywhere. Postgres mentions preserved; postgres compose
overlay restored.

Doc edits:
- AGENTS.md / CLAUDE.md (symlink): drop /cloudflared-tunnel skill row,
  rewrite "Exposing apps" to mention generic tunnels/proxies.
- README.md, docs/installation.md: drop SANDBOX_PASSWORD, cloudflared,
  openssh-server, host-overlay references.
- docs/quickstart.md: keep postgres link, drop cloudflare link, mention
  postgres overlay is opt-in.
- docs/integrations/github.md: drop SSH-overlay section.
- docs/integrations/cloudflare.md: deleted.
- docs/agents/{deepagents,opencode}.md: drop host-overlay sections.
- context/rules/git.md: drop "Advanced opt-ins" SSH section.
- Makefile: drop _check-jq / _check-config gates; jq invocation is now
  defensive (only runs when jq + config.json both present).
- apps/docs/src/pages/index.tsx: keep postgres in "composable substrate"
  copy, drop cloudflare tunnels / Caddy gateway mentions.
- .claude/skills/{agent-browser,harness-audit,strategic-proposal}/SKILL.md
  and .claude/agents/command-builder.md: drop cloudflared references
  (strategic-proposal infra row keeps PostgreSQL 16).
- CHANGELOG.md [Unreleased] § Removed: new entry for #283 listing the
  10 deleted overlays + companion infrastructure; note postgres was
  kept.

Infra:
- Restored .devcontainer/docker-compose.postgres.yml.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 02:36:15 +00:00

3.5 KiB

🏗️ 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, Caddy gateway via Compose overlays.
  • Slack-ready. The in-tree Pi extension at .pi/extensions/slack/ bridges Slack to a Pi agent — see docs/integrations/slack.md.
  • Multi-agent? Add a pack. 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 (default)
#   codex      # OpenAI Codex CLI
#   opencode   # OpenCode
#   pi         # Pi Coding Agent
#   deepagents # LangChain DeepAgents (multi-provider)
make destroy     # stop and remove the sandbox
make help        # all targets

Prefer VS Code or remote SSH? Use the Dev Containers extension's "Attach to Running Container" against openharness, or SSH into your host first and then attach.

⚙️ 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 set SLACK_* tokens for the Pi Slack extension. 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 additional multi-agent setups

📚 Where to go next

  • Quickstart — full step-by-step
  • Crons — markdown-defined autonomous tasks

🧹 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