Stop fighting over ports. Port Daddy assigns ports atomically, orchestrates your services, and coordinates multi-agent workflows so you can focus on building.
npm install -g port-daddy
Click to copy
From atomic port assignment to service orchestration, Port Daddy handles the complexity so you can focus on shipping.
SQLite-backed ACID transactions ensure zero race conditions. Same project always gets the same port.
Use project:service:context naming. Query with wildcards to find any service in your stack.
port-daddy up starts your entire stack. Dependency ordering, health checks, colored logs.
Scans 5 levels deep to find 60+ frameworks. Handles monorepos, workspaces, and nested services.
Services signal each other when builds finish. Real-time SSE subscriptions for coordination.
Prevent conflicting operations. Take exclusive locks on databases, migrations, or shared resources.
Works with Claude, Cursor, Windsurf, Cline, Aider, and 40+ coding agents.
Monitor services, locks, agents, and activity in real-time at localhost:9876.
Tracks process IDs and automatically frees ports from crashed processes.
Port Daddy uses a project:service:context naming scheme that makes your services discoverable.
No more remembering that the API is on port 3001.
myapp:api:main
— the main API
myapp:web:feature-auth
— branch-specific
myapp:*:feature-auth
— wildcard search
Define your services in .portdaddyrc and run port-daddy up.
Dependencies are resolved via topological sort, health checks ensure readiness.
{ "project": "myapp", "services": { "api": { "cmd": "npm run dev:api", "port": 3001, "healthPath": "/health" }, "web": { "cmd": "npm run dev", "port": 3000, "needs": ["api"] } } }
# Auto-detect and configure $ port-daddy scan # Start everything $ port-daddy up # Start one service + dependencies $ port-daddy up --service web # Pub/sub between agents $ port-daddy pub build:api '{"status":"ready"}' $ port-daddy sub build:* # Distributed locks $ port-daddy lock db-migrations && npm run migrate
import { PortDaddy } from 'port-daddy/client'; const pd = new PortDaddy(); // Claim a port const { port } = await pd.claim('myapp:api'); // Subscribe to events const sub = pd.subscribe('builds'); sub.on('message', (data) => console.log(data)); // Use locks await pd.withLock('deploy', async () => { await deploy(); });
Deep scanning detects 60+ frameworks across Node.js, Python, Ruby, PHP, Java, Go, Rust, and more.
And 40+ more frameworks
Running Claude + Cursor + Aider simultaneously? Port Daddy provides the coordination layer that lets your AI agents work together instead of stepping on each other's ports.
Frameworks detected
AI agents supported
Port assignment
Race conditions
Install Port Daddy and never worry about port conflicts again.