sha256:a25fe18e4c990f4cfa174a1e34c86efb9fa2c45a940eead8c199c599109f7542
Last pushed
9 days by cdupuis
Type
Sandbox Kit
Manifest digest
sha256:a25fe18e4c990f4cfa174a1e34c86efb9fa2c45a940eead8c199c599109f7542
schemaVersion: "3"
displayName: Claude Code (Ollama) (mixin)
description: Routes Claude Code at an Ollama Anthropic-compatible API on the host as a mixin — the wrapper script, the local endpoint's egress, and the model variable in an overlay. Layer it onto a shell base that carries Claude Code and run `claude-ollama`.
version: 1.0.0
kind: mixin
provides:
- claude-ollama
requires:
- claude
capabilities:
- type: com.docker.sandbox/network-policy@1
config:
runtime:
allow:
- host.docker.internal:11434
- type: com.docker.sandbox/lifecycle@1
config:
files:
- content: |
{
"bypassPermissionsModeAccepted": true,
"hasCompletedOnboarding": true,
"projects": {
"/": {
"hasTrustDialogAccepted": true
}
}
}
description: Claude bypass flags (mode-independent)
overwrite: false
path: /home/agent/.claude.json
- content: |
#!/usr/bin/env bash
set -euo pipefail
export ANTHROPIC_AUTH_TOKEN="ollama"
unset ANTHROPIC_API_KEY
export ANTHROPIC_BASE_URL="http://host.docker.internal:11434"
export ANTHROPIC_DEFAULT_OPUS_MODEL="$CLAUDE_OLLAMA_MODEL"
export ANTHROPIC_DEFAULT_SONNET_MODEL="$CLAUDE_OLLAMA_MODEL"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="$CLAUDE_OLLAMA_MODEL"
export CLAUDE_CODE_SUBAGENT_MODEL="$CLAUDE_OLLAMA_MODEL"
exec claude "$@"
description: Wrapper script that routes Claude Code to the local Ollama instance
mode: "0755"
path: /home/agent/.local/bin/claude-ollama
install:
- command: |
set -e
mkdir -p /home/agent/.claude
if [ ! -f /home/agent/.claude/settings.json ]; then
HELPER=''
if [ "${SBX_CRED_ANTHROPIC_MODE:-none}" != none ]; then
HELPER=' "apiKeyHelper": "echo proxy-managed",
'
fi
printf '%s' "{
\"themeId\": 1,
\"alwaysThinkingEnabled\": true,
${HELPER} \"defaultMode\": \"bypassPermissions\",
\"bypassPermissionsModeAccepted\": true
}
" > /home/agent/.claude/settings.json
fi
# Enumerated, not recursive: ~/.claude holds runtime-managed content
# this kit doesn't own, so `chown -R` on the parent would take
# ownership of paths outside the kit's control.
chown agent:agent /home/agent/.claude /home/agent/.claude/settings.json
description: Seed Claude settings.json (none path; no credential service)
env:
- SBX_CRED_ANTHROPIC_MODE
user: root
- type: com.docker.sandbox/agent-context@1
config:
contentFile: /usr/share/sandbox/kit/claude-ollama-mixin/claude-ollama-mixin-context.md