Standalone CLI at apps/oh/ (Node TS, esbuild ~13kb, no runtime deps).
Walks user through token entry (xapp-/xoxb- prefix validation), allowlist
mode (users/channels/both with U…/C… ID validation), atomic .env merge
(temp+rename for crash safety), and agent-pi tmux restart with
'connected and listening' poll. Pluggable as oh config <integration>
namespace for future github/postgres/cloudflare wizards.
Bundled prerequisites and adjacent polish:
- Migrate .pi/extensions/slack/{index,tools}.ts from deprecated
@mariozechner/pi-coding-agent to @earendil-works/pi-coding-agent
(per upstream npm deprecation notice)
- Sidebar label Agents → Harnesses; per-harness pages get unified
Authentication section (codex login / opencode auth login / etc)
- New T3 Code harness page (browser UI on port 3773)
- Docs theme: prose links now green + underlined for affordance
- Slack docs § 5 leads with `oh config slack`; manual procedure
demoted to <details> Manual fallback
- Drop orphaned .pi/onboard-steps/ (logic moved to apps/oh/)
- Makefile help adds Configuration wizards section pointing at
oh config slack (3-agent council picked CLI over Make-target
due to docker exec -it TTY fragility)
Closes#281
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Deletes the in-repo .openharness/ subdir, moves composeOverrides config
to repo-root config.json (gitignored, seeded from config.example.json),
and reworks scripts/install.sh to clone into ~/.openharness/ with an
in-place migration for existing ~/openharness/ checkouts.
Closes#251
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Two commands from zero to working sandbox: `curl ... | bash` then
`make shell`. Collapses the previous installer/manual fork, hides the
50-char compose lines behind `make sandbox/shell/destroy`, auto-detects
host gh token, and surfaces .devcontainer/.env as the customization
surface. Moves install.sh to scripts/ alongside cron-runtime.ts and
ralph.sh.
Closes#230
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Add direct CLI subcommands (openharness list, quickstart, build,
shell, stop, clean, etc.) that execute tools and exit — no TUI needed
- Restructure --help to show CLI commands as primary interface, with
Agent Mode as secondary
- Remove Makefile — CLI fully replaces it
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Worktree paths now follow branch formatting (e.g., agent/zoho-crm branch
creates .worktrees/agent/zoho-crm). Also adds /provision skill for
end-to-end sandbox provisioning, updates orchestrator permissions, fixes
shell target to run as sandbox user with login shell, and corrects
BASE_BRANCH default to main.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move Docker files into docker/ directory, add issue templates for
agents/audits/bugs/features/skills/tasks, enhance heartbeat system
with config file and per-heartbeat directory, update Makefile and
README, and add worktrees scaffolding.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add 'make quickstart' target: builds image, starts container, provisions
all tools non-interactively, prints next steps
- Move quickstart to top of README, before 'Why Open Harness?'
- Consolidate old Install/Docker Quick Start into 'More Ways to Run'
- Add quickstart to Makefile Targets table
Adds periodic heartbeat runner, agent persona (SOUL.md), and long-term
memory (MEMORY.md + daily logs) to give sandbox agents persistent
identity and recurring task execution.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- DOCKER=false by default; pass DOCKER=true to mount socket + host networking
- Split compose into base and docker-compose.docker.yml override
- NAME is now required (no default) — errors clearly if missing
- shell/stop/clean print helpful messages when container not found
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- CI workflow triggers on oh-v* tags, pushes to ghcr.io/ruska-ai/open-harness
- Makefile NAME defaults to open-harness
- README fully updated with open-harness branding, multi-agent docs, named sandboxes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Install tmux, nano, Docker CLI + Compose by default
- Add opt-in prompts for Codex, Pi Agent, and AgentMail CLI
- AgentMail API key stored in .bashrc (silent input, not in history)
- Create AGENTS.md as canonical instructions, symlink CLAUDE.md to it
- Add .claude/ and .codex/ config dirs in workspace
- Dockerfile: add codex/pi aliases, docker group for sandbox user
- docker-compose: mount Docker socket, add host.docker.internal
- Makefile: NAME variable for multiple named sandboxes (make NAME=foo run)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- CI triggers on claude-v* tags (e.g. claude-v1.0.0)
- Images tagged as ghcr.io/ruska-ai/sandbox:claude-v1.0.0 + claude-latest
- Simplify Makefile IMAGE to ghcr.io/ruska-ai/sandbox:claude-$(TAG)
- Document release process in README
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Bind mount ./sandbox to /home/sandbox for persistence across restarts
- Copy sandbox files to /home/sandbox owned by sandbox user in Dockerfile
- Add make rebuild (no-cache build + restart)
- Rename SANDBOX_NAME default to claude
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Move Dockerfile, .dockerignore, .gitignore to repo root
- sandbox/ now only contains setup.sh (files copied into container)
- Add COPY sandbox/ /sandbox/ to Dockerfile
- Update build contexts to root in docker-compose, Makefile, CI workflow
- Remove sandbox/README.md (consolidated into root README)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Replace OpenClaw CLI (npm) with Claude Code CLI (curl installer)
- Rename ubuntu/ directory to sandbox/ for generic isolation env
- Remove MCP server files (index.js, package.json, entrypoint.sh, .example.env)
- Update all docs, links, and branch refs to Claude Code
- Simplify docker-compose (remove port mapping and env_file)
- Update CI workflow tag pattern to sandbox-*
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>