root | "." | The working directory for setup and dev, relative to the repository root. In a monorepo, point it at the service’s package. |
ports | required | The loopback ports the service binds. The first one is the primary port: it is what a bare dependency binding reaches and what the health check probes. Services bind loopback only; Tesser exposes the declared ports to the org’s other boxes. |
run.setup | required | Runs before dev on every start, and on a pinned instance’s first boot, so it must be idempotent. pnpm install is the usual value. |
run.dev | required | The command that starts the server. Dev boxes run it against the synced worktree; pinned instances run it against the checked-out commit. |
health.path | port check | An HTTP path that must return a 2xx status on the primary port before the instance counts as healthy. Without it, a process listening on the primary port is enough. |
health.timeout | "90s" | How long dev and a pinned rollover wait for the service to become healthy. Accepts values such as "500ms", "90s", or "2m". |
[deps] | none | Entries of the form localPort = "service" or "service:port". Each key becomes a loopback port on this box (and on the laptop while this box is selected) that reaches the named service. Dependencies are wired between a worktree’s boxes automatically and are started or woken before this service starts. |
env.files | none | Gitignored files, relative to root, that sync includes when copying to dev boxes. |
env.required | none | Names of env variables a pinned instance needs. Values are set with tesser env set <service> KEY=VALUE. Starting a pinned instance with any of these unset fails with a message naming the missing variable. |