v3.1.0 — 60+ frameworks supported

Port management that just works

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
~/myproject
$ port-daddy scan
Scanning /home/dev/myproject...
Discovered 3 services:
api
web
worker
→ Saved .portdaddyrc
$ port-daddy up
[api]
Port 3100 assigned
✓ Healthy
[web]
Port 3101 assigned
✓ Healthy
[worker]
✓ Started
3 services running. Press Ctrl+C to stop.
$

Everything you need

From atomic port assignment to service orchestration, Port Daddy handles the complexity so you can focus on shipping.

Atomic Port Assignment

SQLite-backed ACID transactions ensure zero race conditions. Same project always gets the same port.

Semantic Identities

Use project:service:context naming. Query with wildcards to find any service in your stack.

Service Orchestration

port-daddy up starts your entire stack. Dependency ordering, health checks, colored logs.

Deep Auto-Detection

Scans 5 levels deep to find 60+ frameworks. Handles monorepos, workspaces, and nested services.

Pub/Sub Messaging

Services signal each other when builds finish. Real-time SSE subscriptions for coordination.

Distributed Locks

Prevent conflicting operations. Take exclusive locks on databases, migrations, or shared resources.

AI Agent Native

Works with Claude, Cursor, Windsurf, Cline, Aider, and 40+ coding agents.

Web Dashboard

Monitor services, locks, agents, and activity in real-time at localhost:9876.

Auto-Cleanup

Tracks process IDs and automatically frees ports from crashed processes.

Named services, not magic numbers

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
windags:api:feature-auth
project
service
context

One command to rule them all

Define your services in .portdaddyrc and run port-daddy up. Dependencies are resolved via topological sort, health checks ensure readiness.

.portdaddyrc
CLI
SDK
{
  "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();
});

Works with everything

Deep scanning detects 60+ frameworks across Node.js, Python, Ruby, PHP, Java, Go, Rust, and more.

Next.js
Vite
Nuxt
Svelte
Astro
Remix
Angular
Vue
Express
Fastify
FastAPI
Flask
Django
Rails
Laravel
Spring
Phoenix
Workers

And 40+ more frameworks

Service coordination

Multiple agents, one source of truth

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.

multi-agent
# Agent A signals completion
agent-a $ port-daddy pub build:api '{"status":"ready","port":3100}'
published to build:api
# Agent B subscribes and waits
agent-b $ port-daddy sub build:*
[2025-01-15T10:30:00Z] build:api {"status":"ready","port":3100}
Starting integration tests...

60+

Frameworks detected

40+

AI agents supported

<10ms

Port assignment

0

Race conditions

Ready to stop fighting over ports?

Install Port Daddy and never worry about port conflicts again.