Skip to main content
The public devin-outposts template runs a dispatcher in E2B. The dispatcher watches one Devin outpost and creates a dedicated devin-outposts-worker sandbox for each session. Create the dispatcher and connect to its terminal with the E2B CLI:
When the dispatcher is ready, the terminal prints its authenticated Outposts UI URL. You can also launch it directly from the E2B dashboard, or from TypeScript:

Prerequisites

  • an E2B API key
  • a Devin Enterprise organization
  • a Devin v3 service-user token beginning with cog_
Give the primary service user both Use outpost machine and Manage outposts. Create it under Settings → Devin API → Service users, then copy the token when Devin displays it. If you configure a separate worker token, it only needs Use outpost machine. See Cognition’s Outposts guide for the current permission and token flow.

Set up the dispatcher

1

Launch the template

Run the SDK example or open the dashboard link above. Open the exact setup URL printed by the sandbox. Its token works once and expires after 10 minutes. Treat the URL as a credential until it has been used: do not share it or leave it in shared logs.
2

Connect Devin

Enter the primary service-user token and choose Check Devin account. Select the organization and enter its full browser URL, including /org/<organization-slug>, if it was not detected.
3

Choose the outpost

Select an existing outpost or create one. Keep devin-outposts-worker as the worker template unless you have prepared a custom template or snapshot.
4

Connect E2B

Enter the E2B API key that should create the worker sandboxes.
5

Start the dispatcher

Choose Save and start dispatcher. Wait until its status shows that it is listening before sending a task.

Run a session

  1. Under Tasks, enter the task and choose Review task in Devin.
  2. In Devin, open Configuration → Virtual environment and select the configured outpost.
  3. Send the task.
  4. Return to Tasks in the dispatcher to follow the session. Use View in Devin to open the original conversation.
The virtual environment must be selected before sending. A session sent to the wrong environment cannot be moved; start a new session with the correct outpost. Each Devin session gets its own E2B worker sandbox and writable /mnt/repos workspace. The dispatcher removes the worker after the session finishes.

Lifecycle

Do not pause the dispatcher while it needs to accept sessions. Devin queue traffic cannot wake it. With lifecycle.autoResume (JavaScript) / lifecycle.auto_resume (Python) enabled, opening its E2B URL resumes it manually.

Troubleshooting

Confirm that Devin is using the organization selected during setup and that the primary service user has both required permissions.
Confirm that the dispatcher is listening and that the task was sent to the same outpost.
Confirm that the E2B API key can create the public devin-outposts-worker template. A custom template must be visible to the same E2B team as the key.
Open its terminal and run: