// Quick Operator Reference lookup
Compact lookup for config keys, CLI flags, common commands, and protocol envelopes — the page to keep open while you run, observe, and document a local session.
Item Role Notes flowlayer-server Orchestration engine Source of truth for planning, lifecycle, state, and logs. flowlayer-client-tui Official client Connects to Session API to observe and control runtime. flowlayer.jsonc Runtime input Strict JSONC; unknown fields are rejected. Session token API auth credential Required for /health and /ws access.
flowlayer.jsonc
flowlayer.json
flowlayer.config.jsonc
flowlayer.config.json
Config path: -c or --config override discovery.
Session bind: -s overrides session.bind.
Session token: -token overrides session.token.
Key Type Purpose session.bind string Address used by server Session API listener. session.addr string Address used by client config mode. session.token string Bearer token for authenticated API access. services object map Service definitions keyed by service name. services.<name>.cmd string or string[] Process command (array form recommended for exact argv). services.<name>.dependsOn string[] Dependency edges used by DAG planning. services.<name>.ready object Readiness gate for downstream unlock. services.<name>.kind daemon or oneshot Lifecycle behavior profile. logView.* object Default limits for log retrieval responses.
Field Type What it controls Notes cmdstring or string[]Process execution String form is split on whitespace; array form is safest for exact argv. portinteger Default service port Used by TCP readiness when ready.port is omitted. envobject Service-local environment Merged with parent environment for both cmd and stopCmd. readyobject Readiness gate Blocks downstream dependsOn edges until success. dependsOnstring[]Dependency edges Produces deterministic startup waves from the DAG. kindstring Lifecycle shape daemon for long-running, oneshot for setup jobs.stopCmdstring or string[]Custom teardown Replaces default signal-based stop behavior.
"cmd" : " pnpm --dir ./frontend dev "
"cmd" : [ " sh " , " -c " , " cd backend && pnpm start " ]
Use string form for simple commands. Use array form when arguments contain spaces or when you need an explicit shell invocation.
"cmd" : [ " docker " , " compose " , " up " , " postgres " ],
"stopCmd" : [ " docker " , " compose " , " down " , " postgres " ],
"ready" : { "type" : " tcp " , "port" : 5432 }
"cmd" : [ " pnpm " , " --dir " , " ./services/users " , " run " , " db:migrate " ],
"dependsOn" : [ " postgres " ]
Key Status in v2 Meaning Notes tcpSupported Wait for a TCP handshake Uses ready.port or falls back to service port. httpSupported Poll a URL until it returns success Use for app-level health endpoints. intervalFixed Probe cadence Current docs expose a fixed 200ms polling interval. timeoutNot exposed No per-probe timeout field documented Treat slow start as repeated polling until success or process exit. maxAttemptsNot exposed No retry cap field documented Current behavior retries until success or process death.
"cmd" : [ " node " , " dist/server.js " ],
"url" : " http://127.0.0.1:3001/health "
"cmd" : [ " docker " , " compose " , " up " , " redis " ],
"ready" : { "type" : " tcp " , "port" : 6379 }
Concern Default behavior CLI override Effective rule Config path Auto-discovery in current directory -c or --configExplicit flag wins over discovery. Bind addr session.bind from config-sCLI bind wins over config bind. Token precedence session.token from config or generated token-token-token wins, then config, then auto-generated token.
flowlayer-server -c ./services/flowlayer.jsonc -s 127.0.0.1:7010 -token dev-token
flowlayer-client-tui -config ./services/flowlayer.jsonc
Key Scope Used for logView.maxEntriesGlobal override Explicit override when clients request logs without a limit and no more specific override applies. logView.all.maxEntriesAll-services view Override for aggregated log queries. services.<name>.logView.maxEntriesPer service Override for one service’s default retrieval cap. logs.bufferSizeRuntime ring config Default limit when no explicit limit and no applicable logView override are present (default 5000). effective_limitServer response value The actual limit clients should respect in their local buffer.
"all" : { "maxEntries" : 800 }
"cmd" : [ " pnpm " , " --dir " , " ./services/billing " , " run " , " start:dev " ],
"logView" : { "maxEntries" : 200 }
The server stays in charge of retention decisions. Clients consume effective_limit instead of inventing their own log policy.
Limit precedence is: explicit request.limit > logView override (services.<name> / all / global) > logs.bufferSize default.
Endpoint Method Auth Returns /healthGET Bearer token {"ok": true} when server is live/wsGET (upgrade) Bearer token WebSocket session for protocol V1
"type" : " <message_type> " ,
"id" : " <correlation_id> " ,
"name" : " <command_or_event_name> " ,
Type Direction Meaning command client -> server Request runtime action or data ack server -> client Immediate acceptance/rejection result server -> client Final command outcome event server -> client Async runtime updates error server -> client Protocol-level error
get_snapshot: full current service state.
get_logs: log entries (service-scoped or all-services).
start_service: start a named service.
stop_service: stop a named service.
restart_service: restart a named service.
flowlayer-server -s 127.0.0.1:7010 -c ./services/flowlayer.jsonc
flowlayer-client-tui -addr 127.0.0.1:7010 -token " $FLOWLAYER_SESSION_TOKEN "
flowlayer-client-tui -config ./services/flowlayer.jsonc
Token mismatch: verify server boot token vs client flag/config.
Wrong address: verify bind/addr consistency and listening port.
Stale assumptions: re-read snapshot before issuing control actions.
Useful next reads: How FlowLayer Works , Server , and Troubleshooting .