A Coder template for AI-assisted development with Claude Code, SuperClaude, and essential MCP servers.
- Claude Code CLI - Anthropic's official CLI for Claude
- SuperClaude - Enhanced prompts and commands for Claude Code
- Ralph Wiggum Plugin - Iterative AI development loop
- MCP Servers - Pre-configured Model Context Protocol servers:
- Filesystem - Read/write files in workspace
- Memory - Persistent memory across sessions
- Context7 - Up-to-date library documentation
- Sequential Thinking - Multi-step reasoning
- Playwright - Browser automation and testing
- Chrome DevTools - Browser debugging and inspection
- Serena - Additional AI capabilities
- Coder MCP - Workspace management integration (via claude-code module)
- VS Code - Code-server (VS Code in browser)
- GitHub Integration - SSH key support and gh CLI
- Persistent Storage - Home directory persists across restarts
- tmux Sessions - Persistent Claude Code sessions with task reporting
# Navigate to template directory
cd coder-superclaude-template
# Push to your Coder instance
coder templates push claude-codeFrom the Coder dashboard or CLI:
coder create my-workspace --template claude-codeEnsure the root user on your Coder host has:
# Claude Code logged in
sudo claude login
# SSH key for GitHub
sudo ls /root/.ssh/id_ed25519 # or id_rsaThese are automatically mounted into workspaces.
When creating the workspace:
| Parameter | Description |
|---|---|
git_repo |
Repository to clone - supports SSH (git@github.com:owner/repo.git), HTTPS (https://github.com/owner/repo.git), or shorthand (owner/repo for GitHub) |
dotfiles_repo |
Your dotfiles repository (optional) |
cpu |
CPU cores (default: 4) |
memory |
Memory in GB (default: 8) |
Auto-mounted from host /root/:
~/.claude- Claude Code credentials (writable)~/.ssh-host→~/.ssh- SSH keys (copied on startup with proper permissions)
coder ssh my-workspace# Start Claude Code in your project
cd ~/workspace/your-repo
claude
# Or use SuperClaude commands
claude /sc:helpIf you didn't specify a repo at creation time:
# Interactive setup script
setup-github
# Or manually with SSH key
cd ~/workspace
git clone git@github.com:owner/repo.git
# Or authenticate with gh CLI
gh auth login
gh repo clone owner/repoMCP servers are pre-configured in ~/.config/claude-code/mcp/config.json and dynamically added to ~/.claude.json on startup.
| Server | Description |
|---|---|
filesystem |
Read/write files in workspace directory |
memory |
Persistent memory across sessions |
context7 |
Up-to-date library documentation via Context7 |
sequential-thinking |
Multi-step reasoning and analysis |
playwright |
Browser automation and testing |
chrome-devtools |
Chrome DevTools debugging |
serena |
Additional AI capabilities |
coder |
Workspace management (added by claude-code module) |
Edit ~/.claude.json to add additional MCP servers:
{
"projects": {
"/home/coder/workspace/your-repo": {
"mcpServers": {
"your-server": {
"command": "npx",
"args": ["-y", "@your/mcp-server"]
}
}
}
}
}Additional MCP servers you can add:
@anthropic-ai/claude-mcp-server-brave-search- Web search@anthropic-ai/claude-mcp-server-puppeteer- Browser automation@anthropic-ai/claude-mcp-server-postgres- PostgreSQL access@anthropic-ai/claude-mcp-server-sqlite- SQLite database
SSH keys are automatically mounted from the host's /root/.ssh directory and copied to ~/.ssh with proper permissions on startup.
Ensure SSH keys exist on the Coder host:
# On host machine
sudo ls -la /root/.ssh/# Inside workspace - interactive setup
setup-githubssh-keygen -t ed25519 -C "your-email@example.com"
cat ~/.ssh/id_ed25519.pub
# Add this to GitHub Settings > SSH KeysThe Docker image includes:
- Languages: Node.js 20.x (LTS), Python 3 with pip/venv
- Package Managers: npm, pnpm, uv (Python)
- Editors: vim, neovim, code-server (VS Code)
- CLI Tools: git, gh (GitHub CLI), tmux, htop, jq, curl, wget
- Browsers: Chromium (for Playwright and DevTools MCP)
- Build Tools: build-essential
Add to coder_agent.main.env in main.tf:
env = {
MY_CUSTOM_VAR = "value"
}Modify build/Dockerfile to add more tools:
RUN apt-get update && apt-get install -y \
your-package \
&& rm -rf /var/lib/apt/lists/*The template uses the official claude-code module with these options:
module "claude-code" {
source = "registry.coder.com/coder/claude-code/coder"
version = "1.4.0"
agent_id = coder_agent.main.id
folder = local.repo_folder
# Background tmux session for persistent Claude Code
experiment_use_tmux = true
experiment_report_tasks = true
}# Check if credentials are mounted
ls -la ~/.claude/
# If missing, login on the HOST machine as root:
# sudo claude login# Test SSH connection
ssh -T git@github.com
# Check if keys are properly copied
ls -la ~/.ssh/
# If permissions issues, keys should be:
# - Private keys: 600
# - Public keys: 644
# - .ssh directory: 700# Check config file
cat ~/.claude.json | jq '.projects'
# Verify MCP servers are installed
npx @upstash/context7-mcp --version
# Test MCP server manually
npx -y @modelcontextprotocol/server-filesystem /home/coder/workspace# The startup script should fix permissions automatically
# If issues persist, manually fix:
sudo chown -R coder:coder ~/.claude
sudo chown -R coder:coder ~/.sshcoder-superclaude-template/
├── main.tf # Terraform configuration
│ ├── claude-code module # Official Coder module for Claude Code
│ ├── coder_agent # Agent with startup script
│ ├── coder_app (VS Code) # Code-server web app
│ ├── coder_app (Terminal) # Terminal access
│ └── docker_container # Workspace container
├── build/
│ ├── Dockerfile # Container image with tools
│ ├── mcp-config.json # Default MCP server config
│ └── setup-github.sh # GitHub setup script
└── README.md
MIT