Configuration
ce does not require a config file. Flags and environment variables are enough for a local room.
Workspace
The substrate path is the positional argument to ce serve, or --workspace on the local commands. The default file name is workspace.md.
CE_WORKSPACE overrides that default. If it is unset, COMMONROOM_WORKSPACE is used.
The metadata database is <substrate>.commonroom.db next to the file, unless --ephemeral is set. Ephemeral mode creates a temporary directory, stores the database there, and deletes that directory on exit. The markdown file is not deleted.
--ephemeral is the way to try a room without leaving a sidecar behind.
Process
| Flag | Meaning |
|---|---|
--host |
Must be 127.0.0.1, localhost, or ::1. The sockets still bind 127.0.0.1. |
--port |
Owner page port. 0 chooses an ephemeral port and prints it. |
--name |
Host participant name. Defaults to USER or USERNAME, then host. |
--tailcat |
Publish the ingress with the Tailcat plugin. |
--transport |
Plugin name. Wins over --tailcat when both are set. |
--json |
Structured output for commands that support it. |
--ephemeral |
Temporary metadata database. |
CE_TAILCAT and COMMONROOM_TAILCAT select the Tailcat executable. The default name is tailcat on PATH.
CE_SKILL and COMMONROOM_SKILL point at a skill markdown file. Otherwise ce looks beside the executable, then skills/commonroom/SKILL.md in the working directory, then the text compiled into the binary.
RUST_LOG controls tracing. The default filter is warn. Lines go to stderr so they do not corrupt MCP stdout.
The container image sets HOME, TMPDIR, CE_WORKSPACE, and the XDG_* directories under /var/lib/ce. That layout is in the container page.
Platform directories
These are for a future config file and for local data that is not a workspace sidecar. The workspace database does not move into them.
| OS | Config | Data |
|---|---|---|
| macOS | ~/Library/Application Support/ce |
~/Library/Application Support/ce |
| Linux | $XDG_CONFIG_HOME/ce or ~/.config/ce |
$XDG_DATA_HOME/ce or ~/.local/share/ce |
| Windows | %APPDATA%/ce |
%LOCALAPPDATA%/ce |
The dialer does not use those directories. It stores sessions at $XDG_STATE_HOME/commonroom/sessions/<sha256 of the invitation secret> or ~/.local/state/commonroom/sessions/.... The directory is mode 0700 and the file is mode 0600 on Unix.
Limits
Request body 1 MiB. Proposal 256 KiB. Handoff result 256 KiB. 32 active sessions. 32 active tasks (working or input_required). Task TTL 24 hours. 2000 events retained. Lease default 15 minutes, maximum 120. Invitation default 60 minutes, maximum 7 days. Session default 8 hours, maximum 24 hours. Authenticated rate limit 600 requests per minute. List size 1 to 200. tasks/get suggests a 5 second poll. Polling faster than that is still subject to the room rate limit. The listen stream does not add a second quota.