claude-docker/README.md
Vishal Jain 7c14a75afc Fix Docker startup issues
- Change executable from claude-code to claude in startup.sh
- Fix .env parsing to handle comments using set -a/source
- Add explicit PATH for npm global binaries in Dockerfile
- Update scratchpad.md with fix documentation
2025-06-12 11:10:32 +01:00

109 lines
3.3 KiB
Markdown

# 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:**
```bash
git clone https://github.com/VishalJ99/claude-docker.git
cd claude-docker
./scripts/install.sh
```
2. **Configure your API keys:**
```bash
# 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:**
```bash
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