Server mode and Web UI
Run Conflux as a daemon, expose the dashboard, and connect remote clients over HTTP and WebSocket.
Use server mode when you want Conflux to behave like a long-lived daemon instead of a one-shot local command.
When server mode is worth it
Server mode is a good fit when you need one or more of these:
- remote TUI access,
- a persistent browser dashboard,
- HTTP and WebSocket APIs,
- server-managed proposal sessions,
- user-level background service management.
Start the server
cflx serverThe daemon exposes the Web UI and APIs for connected clients.
Quick Web UI
Start cflx server to get the browser dashboard. Configure the bind address and port in your project config if needed.
cflx serverConnect a remote TUI
cflx tui --server http://host:39876This is useful when the orchestrator runs on one machine but you want an interactive terminal client elsewhere.
Dashboard capabilities
In practical terms, the Web UI provides:
- a dashboard at
http://localhost:<port>/, - real-time updates over WebSocket,
- REST endpoints for state queries,
- a QR popup from the TUI via
w.
Core REST endpoints:
| Endpoint | Method | Purpose |
|---|---|---|
/api/health | GET | Health check |
/api/state | GET | Full orchestrator state |
/api/changes | GET | List changes with progress |
/api/changes/{id} | GET | View one change in detail |
WebSocket clients connect to ws://localhost:<port>/ws.
Recommendation
If you are evaluating Conflux with teammates, cflx server is often the
highest-leverage demo because everyone can see progress without attaching to
the same terminal session.
Service management
cflx service wraps the server as a user-level background service.
cflx service install cflx service start cflx service status cflx service
restart cflx service stop cflx service uninstall
Platform notes:
- macOS:
launchduser agent - Linux:
systemd --user - Windows: Scheduled Task
Useful troubleshooting
Dashboard does not load
Confirm that cflx server is running and that you are using the correct port.
Address already in use
Change the server.port setting to an available port, or set it to 0 to let the OS pick one.
Another device cannot access the dashboard
Bind explicitly to all interfaces:
{
"server": {
"bind": "0.0.0.0",
"port": 9000,
},
}
WebSocket disconnects
Start by checking network stability before assuming the orchestrator is broken. The dashboard will attempt to reconnect automatically.
Related guides
All guidesGetting started
6 minInstall Conflux, initialize a project, create the first change proposal, and complete the first run.
Next guideChanges and workflow
7 minUnderstand how proposals, worktrees, apply loops, acceptance, and merges fit together day to day.
Next guideConfiguration basics
5 minPick config locations, generate templates, and choose what should or should not be committed to git.
Next guide