CloudCLI and eight coding agents share one deliberate workspace.
Full includes 8 AI CLIs. Slim keeps the core 5. Your files stay in ./workspace, outside the container lifecycle.
Your self-hosted developer workstation: CloudCLI, coding agents and a packaged browser, with files and credentials you control.
Full includes 8 AI CLIs. Slim keeps the core 5. Your files stay in ./workspace, outside the container lifecycle.
Playwright Node 1.63.0 and Python 1.63.0 use Debian Chromium 154.0.8037 at /usr/bin/chromium. No runtime browser download.
Apprise covers Claude, raw Codex and Gemini, and CloudCLI Codex. Configure NOTIFY_* destinations in Compose, then recreate the container. Inside the container, enable them with touch ~/.claude/notify-on. Follow the notification setup.
CloudCLI binds to 127.0.0.1:3001. Optional key-only SSH, Mosh, rootless Podman and HOLYCLAUDE_BASE_PATH are available when your setup needs them.
CloudCLI supports logout, password changes and token invalidation. The account resets when the default container is recreated. Add the optional local named volume to persist it, and keep its SQLite database away from NAS network shares.
Both plugins ship in the patched CloudCLI 1.37.3 runtime. CloudCLI self-update is patched out, so updates use a reviewed image and docker compose pull && docker compose up -d.
Registry values are compressed transfer sizes for immutable 1.6.6 tags. Unpacked disk use is different and can be larger.
| Image | Tag | AMD64 | ARM64 | AI CLIs |
|---|---|---|---|---|
| Full | 1.6.6 | 5.39 GB / 5.02 GiB | 5.18 GB / 4.83 GiB | 8 |
| Slim | 1.6.6-slim | 3.35 GB / 3.12 GiB | 3.28 GB / 3.06 GiB | 5 |
Both images include Node.js, Python, Git and the packaged browser. Full adds deployment tools, PDF and document libraries, and FFmpeg.
latest selects Full. slim selects Slim. Pin coderluii/holyclaude:1.6.6 or coderluii/holyclaude:1.6.6-slim for a specific release. The same tags are published at ghcr.io/coderluii/holyclaude.
claude2.1.296gemini0.63.0codex0.162.1cursor2026.09.15-d2fe57etask-master0.43.1junie3579.5opencode1.18.35pi0.85.1Create data/claude and workspace, then save this file as docker-compose.yaml.
Run docker compose up -d.
Open http://localhost:3001.
The .claude mount also holds managed Codex and Gemini configuration and authentication. Back up both host folders before updating. Avoid mounting all of /home or /home/claude, which hides tools installed in the image.
For rootless Podman, use keep-id and SELinux :Z mounts from the rootless instructions.
services:
holyclaude:
image: coderluii/holyclaude:latest
container_name: holyclaude
hostname: holyclaude
restart: unless-stopped
shm_size: 2g
network_mode: bridge
cap_add:
- SYS_ADMIN
- SYS_PTRACE
security_opt:
- seccomp=unconfined
ports:
- "127.0.0.1:3001:3001"
volumes:
- ./data/claude:/home/claude/.claude
- ./workspace:/workspace
environment:
- TZ=UTCTrust boundary
CloudCLI is single-user. Remote access shares the same CloudCLI account, mounted workspace and credential context. It does not create user or tenant isolation.
HolyClaude operates no credential relay. Bundled tools read local credentials and contact the providers you configure directly. Docker limits the environment, but mounted files, credentials, added capabilities and outbound provider access remain reachable.
Release candidates use digest-bound SBOM and vulnerability evidence. Third-party findings remain accepted upstream vulnerabilities, not fixed findings. HolyClaude source checks, artifact integrity and runtime tests still block publication.
Slim keeps the 5 common AI CLIs and packaged browser. Full includes all 8 CLIs plus deployment, document, PDF and media tooling.
Your ./data/claude and ./workspace host folders persist. The CloudCLI account resets unless you add the documented optional local named volume. Keep its SQLite database away from NAS network shares.
Yes. Optional key-only SSH and Mosh are documented, but the default Compose file publishes only 127.0.0.1:3001. Remote access shares one account and credential context.
CloudCLI self-update is patched out. Pull a reviewed image and recreate the container. Pinned tags remain pinned until you change the Compose image tag.
Pinned tags stay on that release. Change the Compose image tag when you want a newer version.
docker compose pull && docker compose up -d