Go to file
Vishal Jain dcc936dc10 Implement authentication persistence for Claude Docker
- Add persistent volume mount for Claude home directory (~/.claude)
- Create non-root user in Docker container for better security
- Mount host ~/.claude-docker/claude-home to container ~/.claude
- Update install script to create claude-home directory
- Check for existing credentials on startup
- Authentication tokens now persist across container restarts
2025-06-12 14:09:10 +01:00
config Fix Docker startup issues 2025-06-12 11:10:32 +01:00
scripts Implement authentication persistence for Claude Docker 2025-06-12 14:09:10 +01:00
templates Add MCP settings template 2025-06-11 10:29:48 +01:00
.env.example Fix Docker startup issues 2025-06-12 11:10:32 +01:00
.gitignore Initial commit: Claude Docker setup 2025-06-11 10:29:15 +01:00
Dockerfile Implement authentication persistence for Claude Docker 2025-06-12 14:09:10 +01:00
LICENSE Initial commit: Claude Docker setup 2025-06-11 10:29:15 +01:00
README.md Fix Docker startup issues 2025-06-12 11:10:32 +01:00
scratchpad.md Implement authentication persistence for Claude Docker 2025-06-12 14:09:10 +01:00

Claude Docker

A Docker container setup for running Claude Code with full autonomous permissions and SMS notifications via Twilio MCP integration.

What This Does

  • Runs Claude Code in an isolated Docker container with full autonomy
  • Integrates Twilio MCP for SMS notifications when tasks complete
  • Provides persistent context across sessions via scratchpad files
  • Auto-configures Claude settings for seamless operation
  • Simple one-command setup and usage

Quick Start

  1. Clone and install:

    git clone https://github.com/VishalJ99/claude-docker.git
    cd claude-docker
    ./scripts/install.sh
    
  2. Configure your API keys:

    # Edit ~/.claude-docker/.env with your keys
    ANTHROPIC_API_KEY=your_anthropic_key
    
    # For Twilio MCP integration:
    TWILIO_ACCOUNT_SID=your_twilio_sid  
    TWILIO_API_KEY=your_twilio_api_key
    TWILIO_API_SECRET=your_twilio_api_secret
    TWILIO_FROM_NUMBER=your_twilio_number
    TWILIO_TO_NUMBER=your_phone_number
    

    Note

    : Twilio MCP requires API Key/Secret instead of Auth Token. Create API keys in your Twilio Console under Account → API keys & tokens.

  3. Use from any project directory:

    claude-docker
    

Features

🤖 Full Autonomy

  • Claude runs with --dangerously-skip-permissions for complete access
  • Can read, write, execute, and modify any files in your project
  • No permission prompts or restrictions

📱 SMS Notifications

  • Automatic SMS via Twilio when Claude completes tasks
  • Configurable via MCP integration
  • Optional - works without if Twilio not configured

🗂️ Context Persistence

  • Maintains scratchpad.md files for project memory
  • Persistent across container sessions
  • Helps Claude remember project context

🐳 Clean Environment

  • Each session runs in fresh Docker container
  • Container auto-removes on exit
  • No system pollution or conflicts

How It Works

  1. Wrapper Script: claude-docker.sh handles container lifecycle
  2. Auto-Setup: Creates .claude directory with proper config on first run
  3. MCP Integration: Twilio MCP server runs alongside Claude Code
  4. Project Mounting: Your project directory mounts to /workspace
  5. Clean Exit: Container removes itself when Claude session ends

Directory Structure

claude-docker/
├── Dockerfile              # Main container definition
├── scripts/
│   ├── claude-docker.sh   # Wrapper script for container
│   ├── install.sh         # Installation script  
│   └── startup.sh         # Container startup script
├── config/
│   └── mcp-config.json   # MCP server configuration
└── templates/
    └── scratchpad.md     # Template for project context

Configuration

The setup creates ~/.claude-docker/ with:

  • .env - API keys and configuration
  • settings.json - Claude Code settings with MCP
  • CLAUDE.md - Instructions for Claude behavior

Requirements

  • Docker installed and running
  • Anthropic API key (or Claude subscription)
  • (Optional) Twilio account with API Key/Secret for SMS notifications

Next Steps

Phase 2 - Security & Persistence Enhancements:

  • Network firewall to whitelist only essential domains
  • Persistent shell history between sessions
  • Additional persistence features (npm cache, git config)

Repository

https://github.com/VishalJ99/claude-docker