Skip to content

OBDb/.devcontainer

Repository files navigation

OBDb Development Container

Pre-built Docker image for OBDb development with Python, Node.js, and Claude Code.

What's Included

  • Python 3.13 (slim base image)
  • Node.js 22 (LTS)
  • Python packages: pytest, pyyaml, pytest-xdist
  • Claude Code CLI (globally installed)
  • Auto-updating obdb-editor skill (runs on container start)
  • OBDb MCP server (auto-registered with Claude Code on container start)

Usage

Reference this image in your .devcontainer/devcontainer.json:

{
  "name": "OBDb Development",
  "image": "ghcr.io/obdb/devcontainer:latest",
  "postAttachCommand": "/usr/local/bin/setup-obdb-dev.sh",
  "customizations": {
    "vscode": {
      "extensions": [
        "ms-python.python",
        "ms-python.vscode-pylance",
        "ClutchEngineering.obdb-tooling",
        "anthropic.claude-code"
      ]
    }
  },
  "remoteUser": "vscode"
}

The postAttachCommand runs /usr/local/bin/setup-obdb-dev.sh which:

  • Copies template files (including .claude/settings.local.json) to the workspace
  • Downloads and installs the latest obdb-editor skill
  • Updates or clones the OBDb schemas repository to tests/schemas
  • Registers the OBDb MCP server with Claude Code for signalset querying

This ensures you always have the most up-to-date tooling, test schemas, Claude Code settings, and MCP integration.

Note: Template files are copied only if they don't already exist in the workspace. Add these to your .gitignore if you don't want them committed:

.claude/settings.local.json
tests/update_yaml_tests.py

Individual Scripts

You can also run individual setup scripts manually if needed:

  • /usr/local/bin/copy-templates.sh - Copy template files only
  • /usr/local/bin/install-obdb-skill.sh - Update obdb-editor skill only
  • /usr/local/bin/update-schemas.sh - Update test schemas only
  • /usr/local/bin/register-obdb-mcp.sh - Register OBDb MCP server only
  • /usr/local/bin/setup-obdb-dev.sh - Run full setup (recommended)

OBDb MCP Server

The container includes the vscode-obdb MCP server which provides Claude Code with direct access to signalset data. The server is automatically registered during container startup and provides tools for:

  • Listing and retrieving signalsets
  • Searching signals with filtering
  • Getting signal statistics and metadata
  • Querying command support matrices
  • Validating signalset data

The MCP server is registered with user scope and persists across all workspaces.

Building Locally

docker build -t obdb-devcontainer .

Publishing

The image is automatically built and published to GitHub Container Registry when changes are pushed to the main branch.

About

OBDb pre-built devcontainer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages