Droid
Run Factory's Droid in a secure E2B sandbox with full filesystem, terminal, and git access.
Droid is Factory’s coding agent and CLI. E2B provides a pre-built droid template with Droid already installed.
CLI
Create a sandbox with the E2B CLI.
e2b sbx create droidOnce inside the sandbox, start Droid.
droidRun headless
Use droid exec for non-interactive mode and --auto low to let Droid make safe file edits and run non-destructive commands inside the isolated sandbox. Droid authenticates with an API key from Factory settings via the FACTORY_API_KEY environment variable.
import { Sandbox } from 'e2b'
const sandbox = await Sandbox.create('droid', {
envs: { FACTORY_API_KEY: process.env.FACTORY_API_KEY },
})
const result = await sandbox.commands.run(
`droid exec --auto low "Create a hello world HTTP server in Go"`
)
console.log(result.stdout)
await sandbox.kill()Example: work on a cloned repository
import { Sandbox } from 'e2b'
const sandbox = await Sandbox.create('droid', {
envs: { FACTORY_API_KEY: process.env.FACTORY_API_KEY },
timeoutMs: 600_000,
})
await sandbox.git.clone('https://github.com/your-org/your-repo.git', {
path: '/home/user/repo',
username: 'x-access-token',
password: process.env.GITHUB_TOKEN,
depth: 1,
})
const result = await sandbox.commands.run(
`cd /home/user/repo && droid exec --auto low "Add error handling to all API endpoints"`,
{ onStdout: (data) => process.stdout.write(data) }
)
const diff = await sandbox.commands.run('cd /home/user/repo && git diff')
console.log(diff.stdout)
await sandbox.kill()Build a custom template
If you need to customize the environment (e.g. pre-install dependencies, add config files), build your own template on top of the pre-built droid template.
// template.ts
import { Template } from 'e2b'
export const template = Template()
.fromTemplate('droid')// build.ts
import { Template, defaultBuildLogger } from 'e2b'
import { template as droidTemplate } from './template'
await Template.build(droidTemplate, 'my-droid', {
cpuCount: 2,
memoryMB: 2048,
onBuildLogs: defaultBuildLogger(),
})Run the build script to create the template.
npx tsx build.tsRelated guides
Was this page helpful?Suggest editsRaise issue