- Shell 67.4%
- Dockerfile 32.6%
|
|
||
|---|---|---|
| .pi | ||
| .ssh | ||
| .agent.env | ||
| .claude.json | ||
| .gitignore | ||
| authorized_keys | ||
| code-session.sh | ||
| docker-compose.yml | ||
| Dockerfile | ||
| forge-clone.sh | ||
| PI.md | ||
| README.md | ||
| startup.sh | ||
| tmux.conf | ||
Start Claude Code
Start the container as a daemon
docker compose -f docker-compose.claude.yml up -d
Then connect via cmux (once the SSH stack ships)
cmux ssh claude@localhost -p 2222
Build first (not needed, just do it manually)
Build with latest everything (only rebuilds layers where versions changed)
./build.sh
Or pin a specific version
CLAUDE_VERSION=2.1.31 ./build.sh
Run Docker (legacy via run)
For good signal handling, terminal resizing and using PID 1 use the following run command:
docker compose -f docker-compose.claude.yml run --service-ports --rm -it claude claude
OR
docker compose -f docker-compose.claude.yml run --service-ports --rm -it claude claude --dangerously-skip-permissions --verbose
Add a project name for task sharing between instances
CLAUDE_CODE_TASK_LIST_ID=my-project claude
Run a side instance:
docker compose -f docker-compose.claude.yml exec claude claude
Enter through bash alongside claude code through this command:
docker compose -f docker-compose.claude.yml exec --user claude claude bash
Temporary stale LSP fix dropping diagnostics entirely
/marketplace add iloom-ai/stay-fresh-lsp-proxy /plugin install stay-fresh-typescript@stay-fresh-lsp-proxy /plugin install stay-fresh-python@stay-fresh-lsp-proxy /plugin install stay-fresh-rust@stay-fresh-lsp-proxy
Claude Code Viewer Dashboard
NODE_ENV=production bunx @kimuson/claude-code-viewer@latest --hostname 0.0.0.0 --port 3400 --claude-dir ~/.claude
CCUsage statusline
Add to settings.json { "statusLine": { "type": "command", "command": "bun x ccusage statusline", "padding": 0 } }
Language Server Protocol (LSP)
Activate through ENV
ENABLE_LSP_TOOL=1
Install language server
TypeScript
npm install -g typescript-language-server typescript
Python
pip install python-lsp-server # or pip install pyright
Go
go install golang.org/x/tools/gopls@latest
Rust
rustup component add rust-analyzer
Add .lsp.json to root
{
"typescript": {
"command": "typescript-language-server",
"args": ["--stdio"],
"extensionToLanguage": {
".ts": "typescript",
".tsx": "typescriptreact"
}
},
"python": {
"command": "pylsp"
}
}
replace pylsp with pyright-langserver for pyright
TweakCC
Theme editor
bunx tweakcc
Apply tweakcc patches
bunx tweakcc --apply
Setup LSP inside Claude Code
Add marketplace
/marketplace add https://github.com/Piebald-AI/claude-code-lsps
Install plugins
/plugin install vtsls@claude-code-lsps # JavaScript/TypeScript /plugin install pyright@claude-code-lsps # Python /plugin install phpactor@claude-code-lsps # PHP /plugin install sourcekit-lsp@claude-code-lsps # Swift (if installed)
Important Notes
- Official vs Community: Based on the search results, the official LSP support has some issues (plugins not being recognized properly). The community approach with tweakcc is reported to be more robust.
- Swift Complexity: Swift LSP requires the full Swift toolchain (~1GB+), which significantly increases image size. Consider if you really need it.
- Plugin Configuration Persistence: Plugin installations create files in ~/.claude/. You might want to volume mount this directory or create a setup script that runs on container start.
- Verification: After setup, you can verify LSP is working by asking Claude to use features like "go to definition" or "find references" in your code.