Skip to content

feat: add devcontainer.json template for VS Code Dev Containers and GitHub Codespaces #55

Description

@IceRhymers

Goal

Allow orgs to bake databricks-claude into their dev environment so developers never install anything manually. Works with VS Code Dev Containers, GitHub Codespaces, and any devcontainer-compatible tooling.

What to add

  • .devcontainer/devcontainer.json — base config that installs databricks-claude via Homebrew (or direct binary download for Linux containers) as a postCreateCommand
  • .devcontainer/README.md — brief note on what the devcontainer does and auth setup

Auth mechanism

PAT-based auth is explicitly not the goal here — the point is short-lived OAuth tokens via databricks auth login.

VS Code Dev Containers automatically port-forwards, so the databricks auth login browser OAuth flow works on the host machine out of the box. Codespaces also supports port forwarding but requires the user to open the forwarded URL manually.

The devcontainer forwards port 8020 (the default Databricks CLI OAuth redirect port) so the browser callback completes successfully.

devcontainer.json sketch

{
  "name": "databricks-claude dev",
  "image": "mcr.microsoft.com/devcontainers/base:ubuntu",
  "postCreateCommand": "brew install IceRhymers/tap/databricks-claude",
  "forwardPorts": [8020],
  "remoteEnv": {
    "DATABRICKS_CONFIG_FILE": "${localEnv:DATABRICKS_CONFIG_FILE}"
  }
}

Notes

  • Linux containers can't use Homebrew easily — provide a postCreateCommand that pulls the binary from GitHub releases directly
  • Databricks CLI must also be installed in the container; add that to the postCreateCommand
  • No secrets block needed — auth is handled entirely via the OAuth browser flow through port forwarding

Acceptance Criteria

  • Opening the repo in VS Code with Dev Containers extension installs databricks-claude automatically
  • Works in GitHub Codespaces
  • User can run databricks auth login from inside the container and complete the browser OAuth flow via port forwarding — no PAT or long-lived credential required

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions