Sign inSign up

nicksieger231/njs-dev-mixin:latest

Manifest digest

sha256:0cd522f2b87f6dde7260362435757158627d8dc0c4bea30c932a35d0d53c0aad

Last pushed

2 days by nicksieger231

Type

Sandbox Kit

Manifest digest

sha256:0cd522f2b87f6dde7260362435757158627d8dc0c4bea30c932a35d0d53c0aad

yaml
schemaVersion: "3"
displayName: Nick's dev environment
author: Nick Sieger
description: Homebrew (with a personal Brewfile), personal dotfiles, notifications-mcp (for the desktop-notification hook), and MCP server registrations for Notion, Atlassian, Grafana and incident.io (remote). notify/clipboard/ obsidian are host-run local-stdio MCP servers registered separately via sbx.sh/mcp.sh's --static-mcp mechanism, not by this kit. Layer onto the `claude` workload kit.
version: 1.0.0
kind: mixin
capabilities:
    - type: com.docker.sandbox/network-policy@1
      config:
        install:
            allow:
                - mcp.notion.com:443
                - mcp.atlassian.com:443
                - mcp.grafana.com:443
                - mcp.incident.io:443
        runtime:
            allow:
                - mcp.notion.com:443
                - mcp.atlassian.com:443
                - mcp.grafana.com:443
                - mcp.incident.io:443
                - formulae.brew.sh:443
                - ghcr.io:443
    - type: com.docker.sandbox/lifecycle@1
      config:
        files:
            - content: |
                {
                  "hooks": {
                    "Notification": [
                      {
                        "matcher": "*",
                        "hooks": [
                          {
                            "type": "command",
                            "command": "/usr/local/bin/notify-hook",
                            "timeout": 8
                          }
                        ]
                      }
                    ],
                    "Stop": [
                      {
                        "matcher": "*",
                        "hooks": [
                          {
                            "type": "command",
                            "command": "/usr/local/bin/notify-hook",
                            "timeout": 8
                          }
                        ]
                      }
                    ]
                  }
                }
              description: Seed the desktop-notification and turn-complete hooks
              mode: "0644"
              overwrite: false
              path: /home/agent/.claude/settings.local.json
        install:
            - command: |
                set -e
                cp /home/agent/.dotfiles-overlay/.bashrc /home/agent/.bashrc
                cp /home/agent/.dotfiles-overlay/.bash_profile /home/agent/.bash_profile
              description: Install personal .bashrc/.bash_profile over the workload's defaults
              user: agent
            - command: mkdir -p /home/agent/.claude && chown agent:agent /home/agent/.claude
              description: Ensure ~/.claude is agent-owned before MCP registration
              user: "0"
            - command: |
                set -e
                export PATH="$HOME/.local/bin:$HOME/.claude/local:$PATH"
                claude mcp add notion https://mcp.notion.com/mcp --transport http --scope user || true
                claude mcp add atlassian https://mcp.atlassian.com/v1/mcp --transport http --scope user || true
                claude mcp add grafana https://mcp.grafana.com/mcp --transport http --scope user || true
                claude mcp add incident https://mcp.incident.io/mcp --transport http --scope user || true
              description: Register remote MCP servers (install-time, race-free)
              user: agent
            - command: |
                set -e
                export PATH="$HOME/.local/bin:$HOME/.claude/local:$PATH"
                claude plugin marketplace add DietrichGebert/ponytail --scope user || true
                claude plugin install ponytail@ponytail --scope user || true
              description: Install Claude plugins
              user: agent
        startup:
            - command: |
                set -e
                export PATH="$HOME/.local/bin:$HOME/.claude/local:/home/linuxbrew/.linuxbrew/bin:$PATH"
                claude mcp add notion https://mcp.notion.com/mcp --transport http --scope user || true
                claude mcp add atlassian https://mcp.atlassian.com/v1/mcp --transport http --scope user || true
                claude mcp add grafana https://mcp.grafana.com/mcp --transport http --scope user || true
                claude mcp add incident https://mcp.incident.io/mcp --transport http --scope user || true
              description: Register remote MCP servers (startup fallback)
              user: agent
    - type: com.docker.sandbox/agent-context@1
      config:
        contentFile: /usr/share/sandbox/kit/njs-dev-mixin/njs-dev-mixin-context.md
args:
    brewRef:
        default: 5753984d1eb214c40e86489416be2d38972f836a
        description: Homebrew/install commit to run at build time
        pattern: ^[0-9a-f]{40}$
        buildArg: BREW_REF
    notificationsMcpRef:
        default: 073d830b8851d71294e62fc5dc27b6d6782c41c5
        description: github.com/nicksieger/notifications-mcp commit to install (no tagged releases exist upstream, so this pins a commit instead of @latest). Built into the image for the desktop-notification hook's `trigger` subcommand only — the MCP tool itself is registered host-side (see mcp-servers.json), not via this kit.
        pattern: ^[0-9a-f]{40}$
        buildArg: NOTIFICATIONS_MCP_REF