sha256:bfef11fca94651382194aeaef850c326634038f70782c899343585d3b7d2b05f
Last pushed
about 1 month by bmillerz
Type
Sandbox Kit
Manifest digest
sha256:bfef11fca94651382194aeaef850c326634038f70782c899343585d3b7d2b05f
schemaVersion: "2"
kind: mixin
name: claude-config
version: 1.0.0
displayName: Claude Code config
description: Carries the host's statusline, plugins, prefs and global CLAUDE.md into a sandbox.
sourceURL: https://github.com/bmillerz/sbx-workbench/tree/main/kits/claude-config
setup:
startup:
- command:
- sh
- -c
- C=/home/agent/.local/bin/claude; $C plugin marketplace add anthropics/claude-plugins-official || true; $C plugin marketplace add DietrichGebert/ponytail || true; for p in superpowers code-simplifier context7 frontend-design security-guidance mattpocock-skills; do $C plugin install "$p@claude-plugins-official" || true; done; $C plugin install ponytail@ponytail || true
user: "1000"
description: Add marketplaces and install plugins
- command:
- sh
- -c
- cd ~/.claude; i=0; until jq -e . settings.json >/dev/null 2>&1; do i=$((i+1)); [ $i -gt 30 ] && echo "settings.json never appeared" && exit 0; sleep 1; done; jq -s ".[0] * .[1]" settings.json host-settings.json > settings.json.new && mv settings.json.new settings.json
user: "1000"
description: Merge host Claude settings into the sandbox defaults
files:
- path: /home/agent/.claude/CLAUDE.md
content: |
## Communication style
- Be anti-sycophantic — don't fold arguments just because I push back
- Stop excessive validation — challenge my reasoning instead
- Avoid flattery that feels like unnecessary praise
- Don't anthropomorphize yourself
- Skip the "Great question!" and "Certainly!" openers
mode: "0644"
description: Global communication-style instructions
- path: /home/agent/.config/ccstatusline/settings.json
content: |
{
"version": 3,
"lines": [
[
{
"id": "f6cbcc28-d3bd-4d6f-b131-fb94afd32e8b",
"type": "git-branch"
},
{
"id": "2b663125-e592-4610-8f3b-e485b8333134",
"type": "separator"
},
{
"id": "1",
"type": "model",
"color": "magenta",
"rawValue": true
},
{
"id": "2",
"type": "separator"
},
{
"id": "3",
"type": "context-percentage",
"color": "blue",
"rawValue": true
},
{
"id": "4",
"type": "separator"
},
{
"id": "5",
"type": "session-usage",
"color": "cyan",
"rawValue": true
},
{
"id": "6",
"type": "separator"
},
{
"id": "7",
"type": "reset-timer",
"color": "yellow",
"rawValue": true
}
],
[],
[]
],
"flexMode": "full-minus-40",
"compactThreshold": 60,
"colorLevel": 2,
"inheritSeparatorColors": false,
"globalBold": false,
"powerline": {
"enabled": false,
"separators": [
""
],
"separatorInvertBackground": [
false
],
"startCaps": [],
"endCaps": [],
"autoAlign": false
}
}
mode: "0644"
description: ccstatusline layout (git branch, model, context %, usage, reset timer)
- path: /home/agent/.claude/host-settings.json
content: |
{
"statusLine": {
"type": "command",
"command": "npx -y ccstatusline@latest",
"padding": 0
},
"enabledPlugins": {
"superpowers@claude-plugins-official": true,
"code-simplifier@claude-plugins-official": true,
"context7@claude-plugins-official": true,
"frontend-design@claude-plugins-official": true,
"security-guidance@claude-plugins-official": true,
"ponytail@ponytail": true,
"mattpocock-skills@claude-plugins-official": true
},
"extraKnownMarketplaces": {
"claude-plugins-official": {
"source": {
"source": "github",
"repo": "anthropics/claude-plugins-official"
}
},
"ponytail": {
"source": {
"source": "github",
"repo": "DietrichGebert/ponytail"
}
}
},
"effortLevel": "high",
"includeCoAuthoredBy": false,
"gitAttribution": false,
"tui": "fullscreen"
}
mode: "0644"
description: Portable subset of the host settings.json, merged in at startup