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.

Parallelize output reads and background mount

+8 -19
+8 -19
apps/sandbox/src/providers/modal/mod.ts
··· 49 49 }, ""); 50 50 const result = await this.sandbox.exec(["bash", "-c", command]); 51 51 52 - return { 53 - ...result, 54 - stdout: await result.stdout.readText(), 55 - stderr: await result.stderr.readText(), 56 - exitCode: await result.wait(), 57 - }; 52 + const [stdout, stderr, exitCode] = await Promise.all([ 53 + result.stdout.readText(), 54 + result.stderr.readText(), 55 + result.wait(), 56 + ]); 57 + 58 + return { ...result, stdout, stderr, exitCode }; 58 59 } 59 60 60 61 async id(): Promise<string | null> { ··· 119 120 ? `${env.VOLUME_BUCKET}:${prefix}` 120 121 : env.VOLUME_BUCKET; 121 122 122 - await this.sandbox.exec( 123 - [ 124 - "sh", 125 - "-c", 126 - `tigrisfs --endpoint "https://${env.ACCOUNT_ID}.r2.cloudflarestorage.com" -o allow_other,default_permissions ${bucketPath} ${path} || sudo tigrisfs --endpoint "https://${env.ACCOUNT_ID}.r2.cloudflarestorage.com" -o allow_other,default_permissions ${bucketPath} ${path}`, 127 - ], 128 - { 129 - env: { 130 - AWS_ACCESS_KEY_ID: env.R2_ACCESS_KEY_ID!, 131 - AWS_SECRET_ACCESS_KEY: env.R2_SECRET_ACCESS_KEY!, 132 - }, 133 - }, 134 - ); 123 + await this.sh`AWS_ACCESS_KEY_ID=${env.R2_ACCESS_KEY_ID} AWS_SECRET_ACCESS_KEY=${env.R2_SECRET_ACCESS_KEY} nohup tigrisfs --endpoint "https://${env.ACCOUNT_ID}.r2.cloudflarestorage.com" -o allow_other,default_permissions ${bucketPath} ${path} > /dev/null 2>&1 &`; 135 124 } 136 125 137 126 async unmount(path: string): Promise<void> {