How unpinned requests choose an account. Active uses the manually
selected profile. Sticky distributes sessions across profiles evenly
(cache-affine). Priority drains the pool in order — highest first —
and fails over per request when an account runs out; conversations keep their account, and new sessions
return to the preferred account after its window resets.
Active+priority keeps you in charge - every request goes to the
profile you selected - but the moment that account is refused, the request is re-sent to the next healthy
account in the pool order and answered from there, so the client never sees the error. Switching the active
profile moves running conversations too, which is the difference from priority. It reuses the same pool
order below; the active profile always goes first, wherever it sits in that list.
An explicit x-meridian-profile header
always overrides. Changes apply to the next request — no restart needed.
Choose SDK features for each connected agent. In passthrough, tools and project instructions come from the client;
Meridian does not load proxy-host CLAUDE.md, hooks, or MCP integrations. SDK-owned tool execution can use the host
instruction sources selected below. Memory and dreaming remain separate opt-ins.
System prompts: For these features to work correctly, both the Claude Code prompt and your client prompt
should be enabled. When both are active, they are appended together — Claude Code's base instructions come first,
followed by your agent's specific instructions.
GPT models are served from your ChatGPT subscription as a pass-through: Meridian adds no prompt and runs no request plugins on them, and the SDK features above do not apply. These settings act only on the response and on retries. Changes apply to the next request.
Rates used by the telemetry cost estimate, in USD per million tokens. Edit a value to override the built-in rate, or add models the built-in table doesn't know about (they show as "no pricing" on the dashboard until defined here). Changes apply on the next dashboard refresh.
| Model | Input | Output | Cache Read | Cache Write | Source |
|---|
What /telemetry remembers, and for how long. By default telemetry lives in a fixed-size ring in memory: fast, free, and gone the moment the proxy restarts — which is also why a window longer than an hour or so usually shows less than it names. Persisting moves it to SQLite, where rows survive a restart and are deleted by age instead of by count. These settings apply on the next start, not to the running proxy. The stores are built once at startup and cannot be swapped out from under requests already in flight.
Every request leaves a Claude Code transcript on disk, in the config directory of the profile that served it,
and Meridian starts Claude Code with its own cleanup switched off, so that directory keeps growing.
Off by default. Set a number of days to turn on Claude Code's own
cleanup in the processes that serve requests. When on, Claude Code deletes
all of its files older than that in each profile directory, not only transcripts: transcripts (including
conversations Meridian still maps, which then replay from the client's history), file history, plans, tasks,
uploads, shell snapshots, debug logs and backups. Without profiles that directory is your own
~/.claude. A profile whose own settings.json sets cleanupPeriodDays keeps
its value. Changes apply to the next request; no restart needed.
Meridian is installed and updated by hand, so an instance can sit on an old version for weeks without anyone noticing. Switch this on and it asks the npm registry once a day whether a newer version is published; the site header then says so, beside the version it is running. The same check covers every loaded plugin installed from an npm package, listed below, so turning it on also sends those plugins' package names to the registry. Off unless you turn it on — nothing contacts the registry until then. The header shows the running version either way.
Which Claude Code runs each request. System uses the claude
on your PATH, so an installation newer than Meridian's own copy can serve a model that copy is too old for; Meridian's
copy is used when there is none. Bundled uses the copy Meridian ships with,
the version its Agent SDK was tested against, and falls back to PATH. Custom
runs the executable at a path you choose. A change applies to the next request without a restart; requests already
running finish on the executable they started with. MERIDIAN_CLAUDE_PATH, when set, overrides this choice.
With several Meridian instances open in tabs, they all look the same. Switch this on and the header names
the machine this one runs on, beside its status. Off unless you turn it on, because the hostname is then
also reported by /health, which answers without the API key.
How much of the window these pages use. Contained keeps every page in a centered column, the way Meridian has always looked. Wide uses the whole window, for a big monitor and many accounts: the home page fits more account cards on each row at about the same size, and Profiles lays its larger cards out side by side, two to four to a row depending on the screen. Phones get one column either way. The choice is saved on this Meridian, so every browser that opens it sees the same layout. Other pages pick it up on their next load; this one switches as soon as you choose.