Skip to content

kumiko ports

Terminal window
kumiko ports [workspace-root]

Scans the direct children of workspace-root (default: the current directory) for a kumiko.config.ts and prints one row per app. The command reads ports.dev, ports.e2e and ports.infra statically, so no app code runs. For the same reason the ports in defineAppConfig must be number literals.

ColumnSource in kumiko.config.ts
devports.dev
e2eports.e2e
postgres, redis, meilisearch, s3ports.infra.<service>

A - means the app does not declare that port. An app whose ports cannot be read shows the reason instead of a row (no defineAppConfig ports, or the parse error) and is left out of the collision check. The summary line says how many apps it skipped.

Each collision prints one line with the port and every app and role that claims it:

✗ port 15432: billing postgres, shop postgres

Two roles inside one app claiming the same port count as a collision too.

  • Before adding a new app to a workspace, to pick free ports
  • In CI of a multi-app workspace, so two apps never start on the same port

0 when no port is claimed twice. 1 when there is a collision, when no app with kumiko.config.ts sits directly below the root, or when more than one argument or a flag is passed.