🥇 export from upstream (6de9a7a)
This commit is contained in:
@@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
### Planned Features
|
### Planned Features
|
||||||
|
|
||||||
- **Support for custom harnesses** — bring your own agent runtime, not just Claude Code and Codex
|
- **Support for custom harnesses** — bring your own agent runtime beyond the built-in Claude Code, Codex, and Gemini CLI
|
||||||
- **Full encapsulation hardening** — for worker and CI environments, ensuring complete sandboxing of file system, network, and credentials
|
- **Full encapsulation hardening** — for worker and CI environments, ensuring complete sandboxing of file system, network, and credentials
|
||||||
- **ACP integration** via [`dirigate`](https://github.com/dirigence/dirigate) — Agent Communication Protocol support for structured agent orchestration
|
- **ACP integration** via [`dirigate`](https://github.com/dirigence/dirigate) — Agent Communication Protocol support for structured agent orchestration
|
||||||
|
|
||||||
@@ -42,7 +42,7 @@ Multiple agents can run side by side. A persistent home directory means config a
|
|||||||
<img src="topology.svg" alt="Sandcage topology — host, Docker, container, volume mounts" width="720">
|
<img src="topology.svg" alt="Sandcage topology — host, Docker, container, volume mounts" width="720">
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
1. You run `sandcage claude` (or `codex`, or `shell`) from your project directory
|
1. You run `sandcage claude` (or `codex`, `gemini`, or `shell`) from your project directory
|
||||||
2. Sandcage resolves your workspace to the git root and builds Docker compose arguments
|
2. Sandcage resolves your workspace to the git root and builds Docker compose arguments
|
||||||
3. Your project, persistent home, and (optionally) SSH keys are mounted into the container
|
3. Your project, persistent home, and (optionally) SSH keys are mounted into the container
|
||||||
4. The agent runs as the container entrypoint, working in the mounted workspace
|
4. The agent runs as the container entrypoint, working in the mounted workspace
|
||||||
@@ -64,7 +64,7 @@ cargo install --git https://github.com/dirigence/sandcage
|
|||||||
### Build images and run
|
### Build images and run
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sandcage build # build base and codex images
|
sandcage build # build container image
|
||||||
sandcage claude # start Claude Code in the current project
|
sandcage claude # start Claude Code in the current project
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -76,6 +76,7 @@ That is it. Sandcage resolves your project to its git root, mounts it into the c
|
|||||||
sandcage claude -p ~/project # run in a specific project
|
sandcage claude -p ~/project # run in a specific project
|
||||||
sandcage claude -- --resume # forward args to the agent
|
sandcage claude -- --resume # forward args to the agent
|
||||||
sandcage codex -p ~/project # run Codex instead
|
sandcage codex -p ~/project # run Codex instead
|
||||||
|
sandcage gemini -p ~/project # run Gemini CLI instead
|
||||||
sandcage shell # interactive shell, same environment
|
sandcage shell # interactive shell, same environment
|
||||||
sandcage claude --shell # shell in the Claude image (debugging)
|
sandcage claude --shell # shell in the Claude image (debugging)
|
||||||
sandcage init # detect ecosystem, generate .sandcage.yml
|
sandcage init # detect ecosystem, generate .sandcage.yml
|
||||||
@@ -113,6 +114,16 @@ agent_args:
|
|||||||
claude:
|
claude:
|
||||||
- --dangerously-skip-permissions
|
- --dangerously-skip-permissions
|
||||||
shell: zsh
|
shell: zsh
|
||||||
|
|
||||||
|
# Enable/disable built-in services
|
||||||
|
services:
|
||||||
|
gemini:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
# Control which services `sandcage build` prepares by default
|
||||||
|
# default_services:
|
||||||
|
# - claude
|
||||||
|
# - shell
|
||||||
```
|
```
|
||||||
|
|
||||||
SSH key access is configured separately via `sandcage setup ssh`, which selects only the keys needed for git and copies them into a dedicated Docker volume.
|
SSH key access is configured separately via `sandcage setup ssh`, which selects only the keys needed for git and copies them into a dedicated Docker volume.
|
||||||
@@ -123,9 +134,9 @@ Run `sandcage init` to generate a starter config — it detects your project eco
|
|||||||
|
|
||||||
Sandcage uses a single image (`sandcage`) based on Debian bookworm-slim, packed with dev tools: git, openssh-client, ripgrep, fd, jq, curl, zsh, bash, sudo, just, and uv.
|
Sandcage uses a single image (`sandcage`) based on Debian bookworm-slim, packed with dev tools: git, openssh-client, ripgrep, fd, jq, curl, zsh, bash, sudo, just, and uv.
|
||||||
|
|
||||||
AI agents (Claude Code, Codex) are installed on first run into the persistent home directory and auto-update themselves — no agent binaries baked into the image.
|
AI agents (Claude Code, Codex, Gemini CLI) are installed on first run into the persistent home directory and auto-update themselves — no agent binaries baked into the image.
|
||||||
|
|
||||||
Build with `sandcage build`. Use `--force` to rebuild unconditionally.
|
Build with `sandcage build`. Use `--force` to rebuild unconditionally. You can also specify which services to build: `sandcage build claude codex`.
|
||||||
|
|
||||||
## Cross-Platform
|
## Cross-Platform
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user