Skip to content

Configuration

comfuture edited this page Aug 10, 2026 · 1 revision

Configuration

Requirements

  • Node.js 22.22.2+

The server package includes a matching Codex CLI runtime, so a separate host-global codex installation is not required.

Precedence

  1. CLI flags
  2. ~/.codori/config.json
  3. built-in defaults

Example config

{
  "root": "/Users/you/Project",
  "server": {
    "host": "127.0.0.1",
    "port": 4310
  },
  "ports": {
    "start": 46000,
    "end": 46999
  },
  "idleShutdown": {
    "enabled": true,
    "timeoutMs": 1800000,
    "sweepIntervalMs": 60000
  },
  "realtimeVoice": {
    "enabled": true
  }
}

idleShutdown.enabled can disable automatic cleanup entirely. When enabled, timeoutMs controls how long a runtime may stay inactive before Codori stops it, and sweepIntervalMs controls how often the server checks for idle runtimes.

realtimeVoice.enabled defaults to true for direct launches and installed services. Set it to false to opt out and restart the service afterwards. See Realtime Voice for the rest.

Server root

If you do not pass --root, Codori uses the current working directory as the project root:

cd ~/Project
codori start

On startup Codori prints the directory it selected:

✔ Codori listening on http://127.0.0.1:4310
  root       /Users/you/Project
  dashboard  http://127.0.0.1:4310/
  immersive  http://127.0.0.1:4310/xr/

By default Codori binds to 127.0.0.1:4310. --host, --port, and --root are optional overrides. See Remote Access for how the bind address interacts with automatic Tailscale Serve.

Codex executable resolution

When launching Codex, Codori first honors CODORI_CODEX_BIN, then scans the server process's PATH for a usable installed codex, and finally uses the bundled runtime as a fallback.

Codori resolves that executable once per server process and uses the same selection for both remote-control start and the managed app-server fallback. A discovered executable must complete codex --version successfully within a bounded timeout. Package-local PATH entries that resolve back to Codori's own bundled entrypoint are skipped so a later installed wrapper can still be selected. Missing, non-executable, failing, or timed-out PATH entries fall back safely to the bundled dependency.

CODORI_CODEX_BIN is an explicit override and is used unchanged without PATH validation. Installed services use their own effective PATH, so restart the service after changing its executable environment.

CLI usage

All commands are available as codori <command> after a global install, or as npx @codori/server <command> without installing. Run codori --help for the grouped command, option, and example reference.

The CLI has two jobs: run the server and manage the background service. Project discovery and workspace lifecycle belong to the dashboard, which drives the same HTTP API the server exposes.

Color is used only when the terminal supports it. NO_COLOR, TERM=dumb, and a piped stream all produce plain text.

Removed commands

Project browsing, workspace start, and workspace stop moved to the dashboard. codori list, codori status, codori start <projectId>, and codori stop <projectId> were removed; they read and mutated local runtime state instead of talking to the running server, so the CLI could start a workspace the server did not know it owned. Open the dashboard sidebar for the same actions, or call the API directly:

curl http://127.0.0.1:4310/api/projects
curl -X POST http://127.0.0.1:4310/api/projects/codori/start
curl -X POST http://127.0.0.1:4310/api/projects/codori/stop

Clone this wiki locally