Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
39c96c0
Add flexible Node.js dependencies parser supporting CLI and JSON form…
jancurn May 20, 2026
ba94181
Add mcpConnections input field and auto-generate /sandbox/mcp.json (#37)
jancurn May 20, 2026
1a98a4e
Simplify ASCII art and enhance documentation links in shell (#36)
jancurn May 21, 2026
330ebc0
Align /llms.txt and / content (#38)
jancurn May 26, 2026
9c3ea10
Improve sandbox configuration prefill examples and documentation (#39)
jancurn May 27, 2026
d622d4b
feat: show shutdown info in the terminal when the Actor stops (#40)
jancurn May 27, 2026
ed21550
Show interactive shell as run Live View at root path (#43)
jancurn May 27, 2026
61184a5
Tighten input schemas; skills as textarea, 15-min idle default (#42)
jancurn May 28, 2026
446b262
Replace favicon.ico with inline SVG data URI (#46)
jancurn May 28, 2026
f076d51
Add /browse file browser page (#47)
jancurn May 28, 2026
c7c3ec6
Add Codex CLI, `?launch=` URL helper, and product rename (#45)
jancurn May 29, 2026
7d4ec1b
Show landing page (not shell) in the run Live View at root path (#48)
jancurn May 30, 2026
21915e6
Fix shell launch restart loop with persistent interactive shell (#49)
jancurn May 31, 2026
12294de
Redesign landing page and remove Actor on Apify button (#50)
jancurn May 31, 2026
e5d4b54
Write shutdown banner directly to browser terminal sockets (#51)
jancurn May 31, 2026
78f35b4
Document GitHub repo URL support for skills input (#52)
jancurn May 31, 2026
e8558c7
Shrink the sandbox Docker image (#53)
jancurn Jun 1, 2026
5755ce3
Add libuv1t64 runtime lib so ttyd loads in sandbox image (#54)
jancurn Jun 3, 2026
698448f
Surface ttyd startup failures behind the Shell Proxy Error (#55)
jancurn Jun 3, 2026
ce5a06e
Install libwebsockets evlib-uv plugin so the ttyd shell starts (#56)
jancurn Jun 4, 2026
e34234d
Merge origin/master into version-1
claude Jun 5, 2026
8ccf31f
Explain terminal disconnects via ttyd's reconnect overlay, client-sid…
jancurn Jun 6, 2026
17d17b7
Stream init script output live with progress heartbeat (#60)
jancurn Jun 6, 2026
ee77b43
Load MCP connectors into Claude, Codex, and OpenCode on startup (#61)
jancurn Jun 6, 2026
8d2f18d
Simplify sandbox homepage and add idle-shutdown countdown (#62)
jancurn Jun 6, 2026
066ec5a
Rename skills input to agentSkills; add Seconds unit to idle timeout …
jancurn Jun 6, 2026
827b570
feat(sandbox): wire Codex CLI to the Apify OpenRouter proxy (#64)
jancurn Jun 6, 2026
0c32c73
Better copy
jancurn Jun 6, 2026
e15a4fd
Rename initShellScript input to initBashScript (#65)
jancurn Jun 6, 2026
c720f04
Better copy
jancurn Jun 6, 2026
f96fe1c
Better copy
jancurn Jun 6, 2026
48f117c
Trim sandbox image: drop apt recommends, prune OpenCode binary (#66)
jancurn Jun 7, 2026
c1cdc4f
Better copy
jancurn Jun 7, 2026
a46c652
Remove server-side shutdown banner; rely on client-side overlay (#67)
jancurn Jun 7, 2026
8ffa2db
Better copy
jancurn Jun 7, 2026
b4717b7
Better copy
jancurn Jun 7, 2026
7db4979
Better copy
jancurn Jun 7, 2026
f586da1
Better copy
jancurn Jun 7, 2026
b92c1b2
Improve landing page badge layout and type hierarchy (#68)
jancurn Jun 7, 2026
3e22a63
Redesign ASCII art logo and fix Git repo URL in shell template (#70)
jancurn Jun 8, 2026
60c9c3c
Lazy-install AI coding agents to reduce image size (#69)
jancurn Jun 8, 2026
74bc39c
Update /shell welcome banner to new Apify logo art (#72)
jancurn Jun 8, 2026
d6c097d
Polish landing page and rename "Proxy mappings" to "Bridges" (#71)
jancurn Jun 8, 2026
5909040
Squeeze welcome banner ASCII art horizontally (#73)
jancurn Jun 8, 2026
d7d1bfa
Pin Codex model to gpt-5.5 to silence model-metadata warning (#74)
jancurn Jun 8, 2026
f1534c4
Report sandbox lifecycle stages via Actor status message (#75)
jancurn Jun 8, 2026
8f8e325
Rework landing page into an Interactive shell card (#76)
jancurn Jun 8, 2026
f55d866
Better copy
jancurn Jun 8, 2026
5d9b0de
Better copy
jancurn Jun 8, 2026
2973915
Widen homepage intro and drop redundant health-status line (#77)
jancurn Jun 8, 2026
d98cc96
Rewrite sandbox README around home-page blocks and current features (…
jancurn Jun 8, 2026
d2a9600
Better copy
jancurn Jun 8, 2026
73c9146
Add emoji icons to use cases in README (#79)
jancurn Jun 8, 2026
7e0385a
Update npm dependencies to latest versions (#81)
jancurn Jun 8, 2026
7075425
Relabel /llms.txt health link and link the Actor page in the lead (#80)
jancurn Jun 8, 2026
373839b
Better copy
jancurn Jun 8, 2026
4e1283b
docs(sandbox): link pre-installed and pre-configured software (#83)
jancurn Jun 8, 2026
09d5133
Merge branch 'master' into version-1
jancurn Jun 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Repo conventions for Claude

## Pull requests
- Keep PR descriptions short: 2-4 bullets covering what changed and why. No "Summary / Key Changes / Implementation Details" sections, no restating the diff. The diff is the record of what changed; the description explains intent.
- Title should be a single short imperative sentence (<70 chars).
- When a PR is opened externally (e.g. from the Claude Code UI) with a longer description, rewrite it to match the convention above before doing further work on the PR.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 🧪 Apify AI Sandbox
# 🧪 Apify AI Code Sandbox

A suite of Apify Actors providing secure, containerized environments for AI coding agents.

Expand Down
27 changes: 12 additions & 15 deletions claude-code/.actor/actor.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,38 +15,35 @@
"type": "object",
"schemaVersion": 1,
"properties": {
"skills": {
"agentSkills": {
"title": "Skills",
"type": "array",
"description": "List of skill packages to install for the AI coding agent. Skills are SKILLS.md files that provide specialized instructions. For more info see https://skills.sh/. Example: apify/agent-skills",
"editor": "stringList",
"items": {
"type": "string"
},
"default": ["apify/agent-skills"],
"prefill": ["apify/agent-skills"]
"type": "string",
"description": "Skill packages to install for the AI coding agent — SKILLS.md files with specialized instructions (see https://skills.sh/). One skill per line, e.g. `anthropics/skills` (blank lines and `#` comments are ignored), or a JSON array like `[\"apify/agent-skills\", \"anthropics/skills\"]`.",
"editor": "textarea",
"default": "apify/agent-skills",
"prefill": "apify/agent-skills\n# One skill per line, e.g. anthropics/skills"
},
"initShellScript": {
"initBashScript": {
"title": "Initialization script",
"type": "string",
"description": "Optional bash script to run on startup for installing packages or setting up the environment.",
"editor": "textarea",
"prefill": "apt-get update\n# apt-get install -y curl"
"prefill": "#!/bin/bash\n# Runs on startup. Uncomment or add your own:\n# apt-get update && apt-get install -y jq\n# mkdir -p /sandbox/data"
},
"envVars": {
"title": "Environment variables",
"type": "string",
"description": "Secret environment variables exposed to the sandbox shell, init script, and code execution. Encrypted at rest by Apify and decrypted only at runtime.\n\nAccepts either format:\n- **KEY=VALUE per line** (dotenv-style):\n ```\n OPENAI_API_KEY=sk-...\n MY_VAR=hello\n ```\n- **JSON object**:\n ```\n {\"OPENAI_API_KEY\": \"sk-...\", \"MY_VAR\": \"hello\"}\n ```",
"description": "Secret environment variables exposed to the sandbox shell, init script, and code execution. Encrypted at rest by Apify, decrypted only at runtime. Accepts `KEY=VALUE` per line or a JSON object like `{\"OPENAI_API_KEY\": \"sk-...\", \"MY_VAR\": \"hello\"}`.",
"editor": "textarea",
"isSecret": true
},
"idleTimeoutSeconds": {
"title": "Idle timeout seconds",
"type": "integer",
"description": "Automatically shut down after this many seconds of inactivity. Set to 0 to disable. Recommended: set Actor timeout to 0 (infinite) when using this.",
"default": 600,
"default": 900,
"editor": "number",
"prefill": 600
"prefill": 900
},
"proxyMappings": {
"title": "Proxy mappings",
Expand Down Expand Up @@ -87,7 +84,7 @@
"url": {
"type": "string",
"title": "Main page",
"template": "{{run.containerUrl}}/shell?arg=-c&arg=source%20/app/sandbox_bashrc%3B%20claude"
"template": "{{run.containerUrl}}/shell?launch=claude"
}
}
},
Expand Down
6 changes: 3 additions & 3 deletions claude-code/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ This Actor [metamorphs](https://docs.apify.com/platform/actors/development/progr

| Input | Description | Default |
|-------|-------------|---------|
| `skills` | Skill packages to install (SKILLS.md files) | `["apify/agent-skills"]` |
| `initShellScript` | Bash script to run before Claude Code starts | - |
| `idleTimeoutSeconds` | Shutdown after inactivity | 600 |
| `agentSkills` | Skill packages to install (SKILLS.md files), one per line or JSON array | `apify/agent-skills` |
| `initBashScript` | Bash script to run before Claude Code starts | - |
| `idleTimeoutSeconds` | Shutdown after inactivity | 900 |

## 📚 Skills Support

Expand Down
Loading
Loading