the universal sandbox runtime for agents and humans. pocketenv.io
sandbox openclaw agent claude-code vercel-sandbox deno-sandbox cloudflare-sandbox atproto sprites daytona
7
fork

Configure Feed

Select the types of activity you want to include in your feed.

Ignore ssh-keygen failures when generating keys

Append `|| true` to the ssh-keygen invocation in the Cloudflare sandbox
and provider modules (daytona, deno, sprite, vercel) so a non-zero exit
from ssh-keygen won't abort startup processes

+7 -7
+3 -3
apps/cf-sandbox/src/index.ts
··· 308 308 ), 309 309 }); 310 310 311 - await sandbox.sh`[ -f /root/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -q -N ""`; 311 + await sandbox.sh`[ -f /root/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -q -N "" || true`; 312 312 313 313 await Promise.all([ 314 314 ...params[2] ··· 554 554 }; 555 555 await sandbox.setEnvVars(envVars); 556 556 557 - await cfsandbox.sh`[ -f /root/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -q -N ""`; 557 + await cfsandbox.sh`[ -f /root/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -q -N "" || true`; 558 558 559 559 await Promise.all([ 560 560 ...params[2] ··· 591 591 const cfsession = new CloudflareSandbox(session); 592 592 await session.setEnvVars(envVars); 593 593 594 - await cfsession.sh`[ -f /root/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -q -N ""`; 594 + await cfsession.sh`[ -f /root/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -q -N "" || true`; 595 595 596 596 await Promise.all([ 597 597 ...params[2]
+1 -1
apps/sandbox/src/providers/daytona/mod.ts
··· 70 70 71 71 async setupDefaultSshKeys(): Promise<void> { 72 72 await this 73 - .sh`[ -f ~/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -q -N ""`; 73 + .sh`[ -f ~/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -q -N "" || true`; 74 74 } 75 75 76 76 async setupTailscale(authKey: string): Promise<void> {
+1 -1
apps/sandbox/src/providers/deno/mod.ts
··· 80 80 81 81 async setupDefaultSshKeys(): Promise<void> { 82 82 await this 83 - .sh`[ -f ~/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -q -N ""`; 83 + .sh`[ -f ~/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -q -N "" || true`; 84 84 } 85 85 86 86 async setupTailscale(authKey: string): Promise<void> {
+1 -1
apps/sandbox/src/providers/sprites/mod.ts
··· 81 81 82 82 async setupDefaultSshKeys(): Promise<void> { 83 83 await this 84 - .sh`[ -f /home/sprite/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f /home/sprite/.ssh/id_ed25519 -q -N ""`; 84 + .sh`[ -f /home/sprite/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f /home/sprite/.ssh/id_ed25519 -q -N "" || true`; 85 85 } 86 86 87 87 async setupTailscale(authKey: string): Promise<void> {
+1 -1
apps/sandbox/src/providers/vercel/mod.ts
··· 67 67 68 68 async setupDefaultSshKeys(): Promise<void> { 69 69 await this 70 - .sh`[ -f ~/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -q -N ""`; 70 + .sh`[ -f ~/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -q -N "" || true`; 71 71 } 72 72 73 73 async setupTailscale(authKey: string): Promise<void> {