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.

Ensure default SSH keys are generated

+38
+9
apps/api/src/tty/index.tsx
··· 137 137 await sprite.execFile("sh", ["-c", `echo '${content}' > ${absolutePath}`]); 138 138 }; 139 139 140 + const setupDefaultSshKeys = async (): Promise<void> => { 141 + await sprite.execFile("bash", [ 142 + "-c", 143 + '[ -f /home/sprite/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f /home/sprite/.ssh/id_ed25519 -q -N ""', 144 + ]); 145 + }; 146 + 140 147 const setupSshKeys = async ( 141 148 privateKey: string, 142 149 publicKey: string, ··· 177 184 consola.error("failed to setup tailscale", e); 178 185 } 179 186 }; 187 + 188 + await setupDefaultSshKeys(); 180 189 181 190 await Promise.all([ 182 191 ...files
+6
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 ""`; 312 + 311 313 await Promise.all([ 312 314 ...params[2] 313 315 .filter((x) => x.files !== null) ··· 552 554 }; 553 555 await sandbox.setEnvVars(envVars); 554 556 557 + await cfsandbox.sh`[ -f /root/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -q -N ""`; 558 + 555 559 await Promise.all([ 556 560 ...params[2] 557 561 .filter((x) => x.files !== null) ··· 586 590 587 591 const cfsession = new CloudflareSandbox(session); 588 592 await session.setEnvVars(envVars); 593 + 594 + await cfsession.sh`[ -f /root/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -q -N ""`; 589 595 590 596 await Promise.all([ 591 597 ...params[2]
+2
apps/sandbox/src/index.ts
··· 237 237 .execute(), 238 238 ]); 239 239 240 + await sandbox.setupDefaultSshKeys(); 241 + 240 242 await Promise.all([ 241 243 ...params[0] 242 244 .filter((x) => x.files !== null)
+5
apps/sandbox/src/providers/daytona/mod.ts
··· 68 68 await this.sh`ssh-keyscan -t rsa github.com >> $HOME/.ssh/known_hosts`; 69 69 } 70 70 71 + async setupDefaultSshKeys(): Promise<void> { 72 + await this 73 + .sh`[ -f ~/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -q -N ""`; 74 + } 75 + 71 76 async setupTailscale(authKey: string): Promise<void> { 72 77 await this 73 78 .sh`type tailscaled || curl -fsSL https://tailscale.com/install.sh | sh || true`;
+5
apps/sandbox/src/providers/deno/mod.ts
··· 78 78 await this.sh`ssh-keyscan -t rsa github.com >> $HOME/.ssh/known_hosts`; 79 79 } 80 80 81 + async setupDefaultSshKeys(): Promise<void> { 82 + await this 83 + .sh`[ -f ~/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -q -N ""`; 84 + } 85 + 81 86 async setupTailscale(authKey: string): Promise<void> { 82 87 await this 83 88 .sh`type tailscaled || curl -fsSL https://tailscale.com/install.sh | sh || true`;
+1
apps/sandbox/src/providers/mod.ts
··· 13 13 abstract setupSshKeys(privateKey: string, publicKey: string): Promise<void>; 14 14 abstract setupTailscale(authKey: string): Promise<void>; 15 15 abstract clone(repoUrl: string): Promise<any>; 16 + abstract setupDefaultSshKeys(): Promise<void>; 16 17 } 17 18 18 19 abstract class BaseProvider {
+5
apps/sandbox/src/providers/sprites/mod.ts
··· 79 79 ]); 80 80 } 81 81 82 + async setupDefaultSshKeys(): Promise<void> { 83 + await this 84 + .sh`[ -f /home/sprite/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f /home/sprite/.ssh/id_ed25519 -q -N ""`; 85 + } 86 + 82 87 async setupTailscale(authKey: string): Promise<void> { 83 88 await this.sprite.execFile("bash", [ 84 89 "-c",
+5
apps/sandbox/src/providers/vercel/mod.ts
··· 65 65 await this.sh`ssh-keyscan -t rsa github.com >> $HOME/.ssh/known_hosts`; 66 66 } 67 67 68 + async setupDefaultSshKeys(): Promise<void> { 69 + await this 70 + .sh`[ -f ~/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -q -N ""`; 71 + } 72 + 68 73 async setupTailscale(authKey: string): Promise<void> { 69 74 await this 70 75 .sh`type tailscaled || curl -fsSL https://tailscale.com/install.sh | sh || true`;