Set up Daytona
- Create a Daytona API key with read, write, and delete access to sandboxes and snapshots.
- Choose a target from Daytona’s shared regions.
-
Save the key, API URL, and target in
daytona.json:ReplaceAPI_KEYwith your Daytona API key. -
Store the file as a secret, then map the
daytonaprovider to the reference thatsecret setprints:
Set up Modal
-
Create an API token under
Settings > Tokens > API tokens, in the Modal workspace where you want the sandboxes to run.
Modal shows the token once, as a command:
-
Save the token ID and secret from that command in
modal.json: -
Store the file as a secret and map it to the provider named
modal:
modal, never to
another name.
Choose the provider for a run
A run uses the provider you pass with--provider, otherwise your default provider,
otherwise daytona:
valkyrie provider default modal. The default is yours alone in
the current organization and needs a login. valkyrie provider list shows each mapped
provider’s secret and marks your default.
Rotate or remove credentials
To replace the credentials, runvalkyrie secret set again with the new file. The mapping keeps pointing at the same secret. Remove a mapping with valkyrie provider remove modal.
A run on a provider with no mapping fails with No secret is set for provider modal.
Limits
- Modal sandboxes last at most 24 hours, so a longer task fails on Modal.
- Benchmark services built with a create-benchmark-service version earlier than v0.14.0 can’t create
Modal sandboxes. Their runs fail with
Modal sandbox provider is not implemented. - Docker sandboxes are available only on a local Tracker.

