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>
3.1 KiB
sidebar_position, title
| sidebar_position | title |
|---|---|
| 3 | Quickstart |
Quickstart
This guide takes you from zero to a running sandbox with an interactive shell in under five minutes. The only host dependency is Docker.
Before you start
Install Docker with the Compose plugin: docs.docker.com/get-docker. Everything else runs inside the container.
Install
curl -fsSL https://oh.mifune.dev/install.sh | bash
The installer clones into ~/.openharness, prompts to share your host
gh token, writes .devcontainer/.env with safe defaults, and brings
the sandbox up via docker compose.
Enter the sandbox
cd ~/.openharness
make shell
You're now inside the isolated sandbox as the sandbox user. Working
directory: /home/sandbox/harness.
Pick your harness
The sandbox ships with Claude Code, Codex, OpenCode, Pi, and DeepAgents
preinstalled, plus T3 Code on demand via npx. Authenticate at least one
before use:
- Claude Code: run
claudeand follow the OAuth prompt - Codex: run
codex login - OpenCode: run
opencode auth login - Pi: configure provider keys via environment variables
- DeepAgents: write provider keys to
~/.deepagents/.env - T3 Code: authenticate one of Claude / Codex / OpenCode, then
npx t3(browser UI on port 3773)
Claude Code remains the documented default. See the harnesses overview for the full list and per-harness setup.
If GH_TOKEN was set during install, the entrypoint already ran
gh auth login and gh auth setup-git for you. Otherwise run them once
inside the shell:
gh auth login && gh auth setup-git
Configuration
.devcontainer/.env is the single customization surface — generated with
safe defaults during install. The most-edited values:
| Var | Purpose |
|---|---|
SANDBOX_NAME |
Container/compose project name |
GH_TOKEN |
GitHub token for non-interactive auth |
TZ |
Container timezone |
INSTALL_AGENT_BROWSER |
Set true to install Chromium (~1 GB) |
Apply changes with make destroy && make sandbox.
For additional services, the base ships with an opt-in Postgres overlay
at .devcontainer/docker-compose.postgres.yml; for anything else
(tunnels, reverse proxies), register your own compose overlay by
appending it to composeOverrides[] in config.json.
Next steps
With the sandbox running, here's what to wire up next:
- Slack bridge for your sandbox agent → integrations/slack.md
- GitHub auth (only if you skipped
GH_TOKENat install) → integrations/github.md - Postgres via Compose overlay → integrations/postgres.md
Tear down
When you're finished, exit the shell and clean up from the host:
make destroy
This stops the container and removes its volumes. To keep auth credentials across rebuilds, stop without removing volumes:
make stop
Bring it back later with make sandbox.