Configuration Reference
The default ChatRoom configuration file location depends on the operating system:
- Linux:
~/.config/chatroom/config.json. If an absoluteXDG_CONFIG_HOMEis set, ChatRoom uses$XDG_CONFIG_HOME/chatroom/config.jsoninstead. - macOS:
~/Library/Application Support/ChatRoom/config.json - Windows:
%APPDATA%\\ChatRoom\\config.json, typicallyC:\\Users\\<username>\\AppData\\Roaming\\ChatRoom\\config.json
Running chatroom init creates this file. On Linux and macOS, ChatRoom protects the configuration directory and file using the platform's POSIX permission model; Windows uses the native Windows file permission model.
Complete example
{
"allowedRoots": ["/home/user/Projects"],
"dataDir": "/home/user/.local/share/chatroom",
"databasePath": "/home/user/.local/state/chatroom/chatroom.sqlite",
"server": {
"host": "127.0.0.1",
"port": 8765
},
"auth": {
"localWebAuth": false,
"ownerToken": "<generated-owner-token>",
"mcpPublicBaseUrl": null,
"webPublicBaseUrl": null,
"allowedRedirectHosts": ["chatgpt.com", "localhost", "127.0.0.1"]
},
"operations": {
"maxPayloadBytes": 524288
},
"process": {
"maxOutputBytes": 524288,
"defaultTimeoutMs": 1800000,
"maxCompletedProcesses": 200
}
}allowedRoots
Directories that Workspace tools may open and manage. The default is ~/Projects. Paths are resolved to absolute paths and serve as the primary security boundary for Workspace file access.
dataDir
Runtime data directory. On Linux, the default is ~/.local/share/chatroom (or $XDG_DATA_HOME/chatroom).
Managed worktrees and other local runtime data are stored in this directory.
databasePath
SQLite database location. On Linux, the default is ~/.local/state/chatroom/chatroom.sqlite (or $XDG_STATE_HOME/chatroom/chatroom.sqlite).
The database stores workspaces, operation logs, OAuth state, Web sessions, and passkeys.
server
Default configuration:
{
"host": "127.0.0.1",
"port": 8765
}It is recommended to keep ChatRoom bound to the local loopback address. If server.host is changed to a non-loopback address, auth.localWebAuth must be enabled or ChatRoom will refuse to start.
auth.localWebAuth
Controls whether authentication is required when accessing the WebUI directly. By default, the WebUI does not require authentication on the local loopback address; it must be enabled when binding to a non-loopback address.
auth.ownerToken
Automatically generated by chatroom init. It is used to prove instance ownership during OAuth authorization and authenticated WebUI sessions.
An ownerToken must be provided when any authenticated public ingress is configured.
auth.mcpPublicBaseUrl
HTTPS base URL used when self-hosting a public MCP endpoint. For example:
{
"auth": {
"mcpPublicBaseUrl": "https://mcp.example.com"
}
}The MCP endpoint is then https://mcp.example.com/mcp.
auth.webPublicBaseUrl
HTTPS base URL used when self-hosting a public WebUI endpoint.
auth.allowedRedirectHosts
Hosts allowed in OAuth Redirect URIs. The defaults include chatgpt.com, localhost, and 127.0.0.1. Add other hosts only when they are actually required by a trusted client.
operations.maxPayloadBytes
Maximum serialized input/output size stored for a single operation log entry. The default is 524288 bytes.
Known sensitive fields are also redacted before persistence.
process.maxOutputBytes
Maximum amount of process output retained. The default is 524288 bytes. ChatRoom uses bounded output to prevent long-running processes from consuming unlimited memory.
process.defaultTimeoutMs
Default process timeout. The default is 1800000 ms, or 30 minutes.
process.maxCompletedProcesses
Maximum number of completed process snapshots retained in memory. The default is 200.
Use another configuration file
Use CHATROOM_CONFIG to specify another configuration file:
CHATROOM_CONFIG=/path/to/config.json chatroom serve