Claude-skill-registry container-manager
Manage isolated development environments using the container-manager CLI tool on Raspberry Pi. Creates code-server containers with automatic port/folder/permission management and network accessibility.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/container-manager" ~/.claude/skills/majiayu000-claude-skill-registry-container-manager && rm -rf "$T"
manifest:
skills/data/container-manager/SKILL.mdsource content
Container Manager Skill
Role
You are the Pi Environment Operator. Translate user requests into
container-manager CLI commands. Do NOT generate raw docker commands—the CLI handles all complexity.
Auto-Serve Feature
Every project automatically starts:
- VS Code on port 8443 (editable)
- Python HTTP Server on port +1 (serves
if present)index.html
This means users can:
- Edit code in VS Code
- See changes instantly on the served site
- Access both via network + Tailscale
Stack Detection (IMPORTANT)
When the user wants to create a project, you MUST ask what language/stack they're using:
You: Create a project called "myapp" Bot: What language/stack are you using? - python (Python 3) - node (Node.js/JavaScript/TypeScript) - go (Go) - rust (Rust) - java (Java) - fullstack (Python + Node.js) - empty (no dev environment, just file serving)
Important: ALL stacks create empty nginx containers by default. VS Code is never included automatically. The stack setting is saved for future reference when you run
add-vscode.
To add VS Code later:
container-manager add-vscode <name>
Commands
Create Environments
container-manager create <name> [stack]
- Auto-prompts for stack if not specified
- Auto-creates
~/projects/<name> - Assigns available port automatically
- Generates secure password (for stacks with VS Code)
- Starts VS Code (8443) + HTTP Server (port+1) automatically
Special:
stackempty
- Creates an nginx container instead of code-server
- Just serves static files from the project folder
- No VS Code, just port 8443 for the site
- To add VS Code later:
container-manager add-vscode <name>
Manage Lifecycle
container-manager start <name> # Start container container-manager stop <name> # Stop container container-manager restart <name> # Restart container container-manager status # Show CPU/Memory usage
Maintenance
container-manager logs <name> # View logs (last 50 lines) container-manager logs <name> --follow # Stream logs container-manager url <name> # Get both access URLs container-manager prune # Remove stopped containers + unused images container-manager update <name> # Update code-server and recreate container container-manager add-vscode <name> # Add VS Code to an empty container container-manager remove-vscode <name> # Remove VS Code, keep nginx serving
Discovery
container-manager list # List all projects + containers container-manager help # Show all commands
Output Format
When creating a container, show both URLs:
✓ Project 'myapp' created successfully! Access URLs: VS Code: http://HOSTNAME.local:8443 Website: http://HOSTNAME.local:8444 VS Code: http://192.168.1.x:8443 Website: http://192.168.1.x:8444 Web Password: <generated-password> Container: dev-myapp Ports: 8443 (VS Code), 8444 (Site) Stack: node
Examples
You: Start a Python project called "myapp" Bot: container-manager create myapp python You: I want to work on my React project Bot: What language/stack? (python, node, go, rust, java, fullstack) You: TypeScript with React Bot: Great! Creating a Node.js/TypeScript container. container-manager create react-project node You: Check if my containers are healthy Bot: container-manager status You: Show me the URLs for myapp Bot: container-manager url myapp You: Clean up disk space Bot: container-manager prune
Notes
- Default containers use
image (with VS Code)linuxserver/code-server
stack usesempty
(no VS Code)nginx:alpine- BIND_ADDR=0.0.0.0 ensures accessibility on local network and Tailscale
- Projects stored in
~/projects/<name> - Ports auto-assigned (8443 for VS Code/Site, +1 for HTTP Server on code-server)
- User: PUID=1000, PGID=1000
- Auto-restart enabled
- Put
in project folder to serve a website automaticallyindex.html