Computer
Give your agents access to sandboxed Linux machines for code execution, file manipulation, and shell commands.
Agents with computer access can execute code, run shell commands, and read/write files in sandboxed Linux environments. Enable it in your agent's settings under Capabilities > Computer.
Providers
Flapjack supports two sandbox providers. Choose based on your workload:
Tensorlake (default)
Sandbox runs alongside your agent on Tensorlake infrastructure. Named sandboxes persist across tool calls within a conversation.
- Startup: Fast — sandbox runs in the same environment as the agent
- Persistence: Filesystem persists across tool calls within a turn
- Runtime: Python 3.13, Node.js, common tools pre-installed
- Best for: Short tasks, quick scripts, file manipulation
Vercel Sandbox
Firecracker microVM managed by the Flapjack control plane. Each sandbox is an isolated Linux VM with its own filesystem and network.
- Startup: Sub-second with snapshots, ~5s without
- Persistence: Reliable filesystem persistence across tool calls
- Runtime: Amazon Linux 2023, Node.js 24, Python 3.13, sudo access
- Best for: Longer builds, git operations, tasks requiring strong isolation
Configuration
Dashboard
In your agent's settings, enable Computer and select a provider. The mode, scope, and size options depend on the provider.
API
curl -X PUT https://flapjack.chat/api/agents/{agentId}/computer \
-H "Authorization: Bearer fj_live_..." \
-H "Content-Type: application/json" \
-d '{
"enabled": true,
"provider": "tensorlake",
"mode": "ephemeral",
"scope": "thread"
}'
SDK
When sending messages, you can override computer settings per-message:
await fj.sendMessage(threadId, content, {
computerOverrides: { enabled: true },
});
Tools
When computer is enabled, your agent gets three tools:
- computer_run — Execute a shell command. Returns stdout, stderr, and exit code.
- computer_write_file — Write content to a file path.
- computer_read_file — Read content from a file path.
The agent decides when to use these based on the conversation. You don't need to invoke them directly.
Lifecycle
- Ephemeral mode: A fresh sandbox is created for each conversation and destroyed when the conversation ends.
- Thread scope: The sandbox persists across messages within the same thread but not across threads.
- Cross-turn persistence: On Tensorlake, named sandboxes can be reconnected across turns. On Vercel, the sandbox ID is stored and the VM is reconnected via the API.