Settings
Xenocept’s user-facing configuration lives in /config/settings.json inside the Xenocept AeorDB store. The Settings UI inside the desktop app is the supported way to edit it.
Where It Lives
/config/settings.json is a path inside the AeorDB-backed store file (xenocept.aeordb). It is not a regular file you can cat on disk.
You read and write it through the HTTP API:
| Endpoint | Purpose |
|---|---|
GET /api/v1/settings | Fetch the current settings JSON |
POST /api/v1/settings | Overwrite the settings JSON |
Keys That Code Actually Reads
There is no enforced schema. Settings JSON is treated as a free-form document; individual keys are looked up on demand. The keys the app currently honors:
| Key | Type | Purpose |
|---|---|---|
hotkey | string | Global hotkey binding (default Ctrl+Backquote). See Hotkeys. |
auto_start | bool | Whether Xenocept launches at OS login. |
screenshot_path | string | Filesystem directory where always-on screenshot export saves copies. |
screenshot_template | string | Filename template for screenshot export. |
The frontend may write additional UI-state keys here (e.g. last-used pen color or radial-menu opacity). Those are read by the frontend, not the backend, and aren’t part of any stable schema. Treat them as undocumented internals that can shift between releases.
Editing By Hand
If you have a reason to edit settings outside the Settings UI:
# Read
curl http://127.0.0.1:9500/api/v1/settings
# Write (overwrites the whole document)
curl -X POST http://127.0.0.1:9500/api/v1/settings \
-H 'Content-Type: application/json' \
-d '{"hotkey":"Ctrl+Shift+Backquote","auto_start":true}'
POST /api/v1/settings overwrites the entire document. If you only mean to change one key, first GET, merge in your change, then POST the merged object.
What’s Not Configurable
A few things are not currently exposed as settings:
- HTTP bind address / port. Xenocept’s HTTP server is hardcoded to
127.0.0.1:9500. The--portflag on thexenocept --mcp <name>CLI is the target port to connect to, not a way to change Xenocept’s listening port. - Tool defaults / theme / motion. The frontend may persist some UI state in
settings.jsonopaquely, but these aren’t part of a documented schema. - Hot-reload of settings. Changes apply when the relevant code path next reads the file — the hotkey re-registers immediately on change, while other keys are read at startup.
Backups
The AeorDB store file as a whole is your backup unit — copying the .aeordb file copies everything (settings, sessions, destinations, indexes). There is no dedicated settings backup or quarantine path.