Daily workflow
The normal Cadder workflow starts in each project and moves to the operator only when you need the shared view.
-
Start each project from its own directory.
caddy runEach live shim owns one registration and renews it periodically. Exiting the command removes that live registration.
-
Check the shared runtime.
cadder statusUse
cadder projects listorcadder domains listwhen you need the registered routes rather than daemon details. -
Open the routes workspace when you need to act.
cadder tuiThe TUI groups domains beneath their projects. Use Space or Enter to toggle the selected row. Cadder keeps the current domain owner when another active project requests the same canonical domain.
-
Leave the project normally.
Exit
caddy runin the project terminal. Cadder removes the live registration without stopping unrelated projects.
Inspect one route
Section titled “Inspect one route”Use the boundary you already know:
cadder port inspect 3000cadder caddyfile inspect ./Caddyfilecadder domains inspect app.localhostPort inspection works without cadderd. When daemon state is available, Cadder connects the listener and process to its project, Caddyfile, domain, and upstream.
Change activation from the terminal
Section titled “Change activation from the terminal”Use the Caddyfile to select a project. Add --caddyfile when a domain name could belong to more than one registration.
cadder projects disable ./Caddyfilecadder projects enable ./Caddyfilecadder domains disable app.localhost --caddyfile ./Caddyfilecadder domains enable app.localhost --caddyfile ./CaddyfileUpgrade all three executables together
Section titled “Upgrade all three executables together”Stop the daemon from the TUI or with cadder daemon stop. Replace cadder, cadderd, and the caddy shim from one release, keep cadder.toml, then start the next managed project.
Cadder may restore desired activation from SQLite after restart, but a project becomes live only after a current shim registers it. Old leases and process identities never become live state.