cpm-planner
by praxec
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CPM_JEV_MODEL | No | Jev model id for `plan.review`: at most 128 characters of `A-Z a-z 0-9 . _ : / -`, and never containing the key. Defaults to `typesafe/jev-1.13`. | typesafe/jev-1.13 |
| CPM_LLM_MODEL | No | Generative (chat) model id: at most 128 characters of `A-Z a-z 0-9 . _ : / -`. A frontier vendor is refused before any call, with a typed error naming the model: `anthropic/`, `openai/` (except `openai/gpt-oss*`), `google/`, `x-ai/`, `xai/`. Defaults to `deepseek/deepseek-v4.1-flash`. | deepseek/deepseek-v4.1-flash |
| CPM_PLANNER_DB | No | SQLite path for durable, cross-process planner state; `:memory:` gives ephemeral state. Defaults to `~/.local/share/praxec/cpm-planner.db` on every OS, or `/data/cpm-planner.db` in the Docker image. | |
| CPM_JEV_ENDPOINT | No | Jev endpoint URL: `https://`, or `http://` only for a loopback host, with no credentials. Defaults to `https://openrouter.ai/api/v1/systemone`. | https://openrouter.ai/api/v1/systemone |
| CPM_MAX_TTL_SECS | No | Server-side ceiling for `ttl_seconds` on `plan.acquire_cohort` and `plan.heartbeat`; larger requested values are clamped. Must be an integer in 1..=2592000 (at most 30 days) — any other value aborts startup. Defaults to `28800` (8h). | 28800 |
| CPM_PROJECT_ROOT | No | Repo root for plan-as-code files (`.cpm-planner/plans/<name>/<variant>.json`). Defaults to the nearest ancestor of cwd with `.cpm-planner/` or `.git`. | |
| CPM_REVIEW_COMMAND | No | Absolute path of the review adapter for `CPM_REVIEW_PROVIDER=command`. | |
| OPENROUTER_API_KEY | No | OpenRouter key for `plan.review`. Unset or blank: `plan.review` reports `review_unavailable` ("no OpenRouter key configured"). Never logged or returned. | |
| CPM_REVIEW_PROVIDER | No | Who answers `plan.review`: `direct` (OpenRouter, using the key settings here), `command` (the adapter configured by `CPM_REVIEW_COMMAND`) or `disabled`. There is no fallback between providers. Defaults to `direct`. | direct |
| CPM_LLM_TIMEOUT_SECS | No | Bound on each LLM call, integer seconds in 1..=300. Defaults to `30`. | 30 |
| CPM_PLANNER_STATE_MODE | No | Leave unset for normal durable-state opening. If an existing database is empty or its sidecar receipt detects missing known plans, startup refuses to mutate it. Set to `recover` only after reviewing the timestamped backup path reported by the server; `initialize` explicitly accepts an existing empty location. | |
| CPM_REVIEW_COMMAND_ENV | No | Comma-separated variable names to pass to the review adapter, whose environment is otherwise cleared. It may not name the OpenRouter key variables. | |
| CPM_OPENROUTER_KEY_FILE | No | File holding the OpenRouter key (contents trimmed; at most 4096 bytes), used when `OPENROUTER_API_KEY` is unset. On unix a world-readable (`o+r`) or empty file is ignored with a warning (`chmod 600` it). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
No tools | |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessUsually handled