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.md
source 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
    index.html
    if present)

This means users can:

  1. Edit code in VS Code
  2. See changes instantly on the served site
  3. 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:

empty
stack

  • 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
    linuxserver/code-server
    image (with VS Code)
  • empty
    stack uses
    nginx:alpine
    (no VS Code)
  • 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
    index.html
    in project folder to serve a website automatically