Sign inSign up

docker/sbx-kit-devin-mixin:latest

Multi-platform
Manifest digest

sha256:2948dc793a3d11eda766d0ac3a15952bb368ffcbd36342d07d31c47b40101177

Last pushed

about 1 hour by cdupuis

Type

Sandbox Kit

Manifest digest

sha256:2948dc793a3d11eda766d0ac3a15952bb368ffcbd36342d07d31c47b40101177

yaml
schemaVersion: "3"
displayName: Devin (mixin)
author: Docker, Inc.
description: Cognition's Devin CLI as a mixin — the binary in an overlay, with the passthrough Devin credential and the seeds the agent needs. Layer it onto a shell base and run `devin`.
sourceUrl: https://devin.ai
version: 0.1.0
kind: mixin
provides:
    - devin
capabilities:
    - type: com.docker.sandbox/network-policy@1
      config:
        runtime:
            allow:
                - api.devin.ai:443
                - app.devin.ai:443
                - windsurf.com:443
                - server.codeium.com:443
                - unleash.codeium.com:443
                - cli.devin.ai:443
                - static.devin.ai:443
    - type: com.docker.sandbox/credential@1
      optional: true
      config:
        apiKey:
            inject:
                - domain: server.codeium.com
                  format: Bearer %s
                  header: Authorization
                - domain: api.devin.ai
                  format: Bearer %s
                  header: Authorization
        oauth:
            credentialFile:
                format: toml
                path: ~/.local/share/devin/credentials.toml
                structure:
                    api_server_url: https://server.codeium.com
                    devin_api_url: https://api.devin.ai
                    devin_webapp_host: app.devin.ai
                    windsurf_api_key: '{{.PrimaryApiKey}}'
            passthrough: true
            resourceHosts:
                - server.codeium.com
                - api.devin.ai
            responseFields:
                accessToken: token
                refreshToken: token
            tokenEndpoint:
                host: api.devin.ai
                path: /auth/cli/token
        phase: runtime
        service: devin
      description: Devin account credential captured during in-sandbox login
    - type: com.docker.sandbox/lifecycle@1
      config:
        files:
            - content: '{"auto_update": false}'
              description: Disable Devin background updates
              overwrite: false
              path: /home/agent/.config/devin/config.json
        startup:
            - command: |
                set -e
                [ -n "$MCP_GATEWAY_URL" ] || exit 0
                mkdir -p "$HOME/.config/devin"
                cfg="$HOME/.config/devin/mcp_config.json"
                frag=/tmp/sandbox-mcp-gateway.json
                jq -n --arg url "$MCP_GATEWAY_URL" --arg auth "Bearer $MCP_SENTINEL_TOKEN_NAME" \
                  '{mcpServers: {"mcp-gateway": {url: $url, transport: "http", headers: {Authorization: $auth}}}}' > "$frag"
                [ -f "$cfg" ] || echo '{}' > "$cfg"
                jq -s '.[0] * .[1]' "$cfg" "$frag" > "$cfg.tmp"
                mv "$cfg.tmp" "$cfg"
                rm -f "$frag"
              description: Register the sandbox MCP gateway by merging into mcp_config.json
              env:
                - MCP_GATEWAY_URL
                - MCP_SENTINEL_TOKEN_NAME
              user: agent
    - type: com.docker.sandbox/agent-skills@1
      optional: true
      config:
        path: /home/agent/.agents/skills
    - type: com.docker.sandbox/agent-context@1
      optional: true
      config:
        content: |
            # Devin

            This sandbox runs Cognition's Devin CLI. The Devin account credential is
            captured during in-sandbox login and flows passthrough; the config seed
            disables background updates.
    - type: com.docker.sandbox/agent-context@2
      optional: true
      config:
        content: |
            # Devin

            This sandbox runs Cognition's Devin CLI. The Devin account credential is
            captured during in-sandbox login and flows passthrough; the config seed
            disables background updates.
dockerfile: ./devin-mixin.dockerfile