[PR #35] [CLOSED] feat: integrate openclaw/crabbox as AgentENV sandbox client #132

Closed
opened 2026-10-29 14:20:02 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/kvcache-ai/AgentENV/pull/35
Author: @zozo123
Created: 7/28/2026
Status: ❌ Closed

Base: main ← Head: docs/add-crabbox-sandbox-client


📝 Commits (4)

  • 26be07d feat: integrate openclaw/crabbox as AgentENV sandbox client
  • 0d464cf fix: make Crabbox integration production-ready
  • f759985 docs: add short Crabbox configuration section, drop integration CI
  • 0d268b7 Reduce Crabbox docs to E2B subsection

📊 Changes

1 file changed (+19 additions, -0 deletions)

View changed files

📝 docs/src/integration/e2b.md (+19 -0)

📄 Description

Summary

  • Integrate the upstream openclaw/crabbox CLI as an AgentENV sandbox client through Crabbox's built-in e2b provider
  • Add a safe config/crabbox.example.yaml containing only project-scoped template/workdir settings (no endpoint or credentials)
  • Document the required AgentENV host-based sandbox proxy domain, wildcard DNS, TLS, environment variables, lifecycle commands, limits, and troubleshooting
  • Add CI that installs pinned Crabbox v0.40.0 with SHA-256 verification, loads the real config, and exercises list/create/connect/archive-sync/process/delete against a strict E2B contract server
  • Keep the integration wrapper-free: users install and run upstream crabbox directly

Important deployment requirement

Crabbox's e2b provider sends file and process traffic to https://{port}-{sandboxID}.{domain}; it does not read E2B_SANDBOX_URL. AgentENV must therefore advertise [sandbox_proxy].domains[0] (or AENV_SANDBOX_PROXY_DOMAINS) and expose wildcard DNS + TLS for that domain. A loopback-only E2B_API_URL is sufficient for doctor and list, but not for warmup or run.

Validation

  • Crabbox v0.40.0 release asset checksum verified against the upstream release
  • config/crabbox.example.yaml loaded by Crabbox with required 0600 permissions
  • E2B contract smoke: authenticated list, sandbox create/connect, archive upload, envd process stream, command output, and one-shot delete
  • actionlint -no-color .github/workflows/crabbox.yml
  • ruff check and ruff format --check for the contract server
  • pyright scripts/tests/crabbox-e2b-contract-server.py
  • make fmt
  • make docs
  • Upstream Crabbox delegated-run sanity smoke through Islo
  • Live crabbox run --provider e2b against a KVM-backed AgentENV deployment with wildcard DNS/TLS (requires deployment infrastructure not available in this checkout)

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/kvcache-ai/AgentENV/pull/35 **Author:** [@zozo123](https://github.com/zozo123) **Created:** 7/28/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `docs/add-crabbox-sandbox-client` --- ### 📝 Commits (4) - [`26be07d`](https://github.com/kvcache-ai/AgentENV/commit/26be07d82a870fdf8a204320b9570dd7525739a6) feat: integrate openclaw/crabbox as AgentENV sandbox client - [`0d464cf`](https://github.com/kvcache-ai/AgentENV/commit/0d464cf7c09ee64c7eb52c8bd21206a22177d3ab) fix: make Crabbox integration production-ready - [`f759985`](https://github.com/kvcache-ai/AgentENV/commit/f75998598c62e2e045de24160434bd8369d1138b) docs: add short Crabbox configuration section, drop integration CI - [`0d268b7`](https://github.com/kvcache-ai/AgentENV/commit/0d268b72229a7c0aaab415c44dea2ca1afee5b8c) Reduce Crabbox docs to E2B subsection ### 📊 Changes **1 file changed** (+19 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `docs/src/integration/e2b.md` (+19 -0) </details> ### 📄 Description ## Summary - Integrate the upstream [openclaw/crabbox](https://github.com/openclaw/crabbox) CLI as an AgentENV sandbox client through Crabbox's built-in `e2b` provider - Add a safe `config/crabbox.example.yaml` containing only project-scoped template/workdir settings (no endpoint or credentials) - Document the required AgentENV host-based sandbox proxy domain, wildcard DNS, TLS, environment variables, lifecycle commands, limits, and troubleshooting - Add CI that installs pinned Crabbox v0.40.0 with SHA-256 verification, loads the real config, and exercises list/create/connect/archive-sync/process/delete against a strict E2B contract server - Keep the integration wrapper-free: users install and run upstream `crabbox` directly ## Important deployment requirement Crabbox's `e2b` provider sends file and process traffic to `https://{port}-{sandboxID}.{domain}`; it does not read `E2B_SANDBOX_URL`. AgentENV must therefore advertise `[sandbox_proxy].domains[0]` (or `AENV_SANDBOX_PROXY_DOMAINS`) and expose wildcard DNS + TLS for that domain. A loopback-only `E2B_API_URL` is sufficient for `doctor` and `list`, but not for `warmup` or `run`. ## Validation - [x] Crabbox v0.40.0 release asset checksum verified against the upstream release - [x] `config/crabbox.example.yaml` loaded by Crabbox with required `0600` permissions - [x] E2B contract smoke: authenticated list, sandbox create/connect, archive upload, envd process stream, command output, and one-shot delete - [x] `actionlint -no-color .github/workflows/crabbox.yml` - [x] `ruff check` and `ruff format --check` for the contract server - [x] `pyright scripts/tests/crabbox-e2b-contract-server.py` - [x] `make fmt` - [x] `make docs` - [x] Upstream Crabbox delegated-run sanity smoke through Islo - [ ] Live `crabbox run --provider e2b` against a KVM-backed AgentENV deployment with wildcard DNS/TLS (requires deployment infrastructure not available in this checkout) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-29 14:20:02 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
kvcache-ai/AgentENV#132
No description provided.