TheDocumentation Index
Fetch the complete documentation index at: https://hud-f5fd7c15-parallel-agent-telemetry.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
hud dev command provides development-time proxying for MCP environments, starting your image and exposing it over HTTP (default) or stdio.
Synopsis
Description
hud dev launches a lightweight MCP proxy that runs your Docker image and forwards MCP traffic. It auto-detects or builds your image, mounts your project directory, and optionally opens an inspector or interactive tool runner.
Key Features:
- Auto-detection: Determines image from
[tool.hud.image]ordir-name:dev - Project mount: Mounts your project at
/app(setsPYTHONPATH=/app) - Interactive testing: TUI for calling tools (HTTP transport only)
- HTTP/Stdio protocols: Choose transport method (
httpdefault) - Inspector support: Launch MCP Inspector (HTTP mode)
- Per-connection containers: Each client gets its own container
Arguments
| Argument | Description | Default |
|---|---|---|
DIRECTORY | Environment directory (optional) | . (current) |
Options
| Option | Description | Default |
|---|---|---|
--image, -i | Docker image name (overrides auto-detection) | Auto-detected |
--build, -b | Build image before starting | false |
--no-cache | Force rebuild without cache | false |
--transport, -t | Transport protocol: http or stdio | http |
--port, -p | HTTP server port (ignored for stdio) | 8765 |
--interactive | Launch interactive tool testing interface | false |
--no-reload | Disable hot-reload supervision | false |
--verbose, -v | Show detailed server logs | false |
--inspector | Launch MCP Inspector (HTTP mode only) | false |
--no-logs | Disable streaming Docker logs | false |
--full-reload | Restart entire container on file changes (not implemented) | false |
Examples
Auto-Detection Mode (Recommended)
Build and Start
Specific Directory
Custom Image
HTTP Mode with Inspector
Stdio Mode
Clean Rebuild
Verbose Logging
Interactive Testing (HTTP only)
Interactive mode disables log streaming and hot-reload supervision to provide a clean UI.
How It Works
-
Image Resolution:
- Reads
pyproject.toml[tool.hud.image] - Auto-generates
dir-name:devif absent; writes it back on build - Uses
--imageoverride if provided
- Reads
-
Container Startup:
- Runs your image with its original
CMD(the container controls reload behavior) - Mounts your project at
/appand setsPYTHONPATH=/app - For HTTP transport, the proxy hosts
http://localhost:<port>/mcp
- Runs your image with its original
-
Proxy Server:
- Each client connection gets its own container
- Inspector and interactive UI are available in HTTP mode
-
Hot-Reload:
- Depends on your container
CMD(templates include--reloadflags) - For best results, separate the restartable MCP controller from any long-lived backend
- Depends on your container
Process Separation Architecture
For stateful environments,hud dev supports a critical design pattern: separating the MCP server from the environment process. This separation enables hot-reload without losing state.
Why Separation Matters:
- MCP server can restart instantly for code changes
- Environment state (browsers, databases, games) persists
- Development is faster without constant state resets
- Unix sockets (recommended for local dev)
- TCP/HTTP endpoints
- gRPC services
- Shared memory/IPC
File Mounting
Project directory is mounted as/app inside the container:
Transport Modes
HTTP Transport (Default)
- Web browser access and MCP Inspector
- Multiple simultaneous connections
- Easier debugging
http://localhost:8765/mcp
Stdio Transport
- Direct MCP protocol, lower latency
- Single connection focused
Integration Examples
Cursor Integration
- Start development server:
- Add to Cursor’s MCP config:
- Edit files — changes apply immediately based on your container’s reload behavior.
Testing During Development
MCP Inspector
- Available tools and schemas
- Real-time tool calls and protocol messages
Troubleshooting
- Use
--verboseto see container logs - If container never starts: run
hud debug <image> - Port conflicts: choose a new
--port