sha256:0cd522f2b87f6dde7260362435757158627d8dc0c4bea30c932a35d0d53c0aad
Last pushed
2 days by nicksieger231
Type
Sandbox Kit
Manifest digest
sha256:0cd522f2b87f6dde7260362435757158627d8dc0c4bea30c932a35d0d53c0aad
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