Mercury CLI
Documentation

Releases

1.0.0-beta.32

published 11 October 2026

  • Added the lineage: Mercury keeps a ledger of a project's sessions in the Mercury home: one entry each: the session's number, its engines with the time of every switch, the rules pinned, the facts retained and corrected, the files touched, how it ended, and the note it left: written by the harness from what it knows, every time from the clock at the moment of writing
  • Added the entry page: a session starts knowing where it is: its number, how many came before, the engines before it, how many rules stand pinned, whether another session of the work is live now, and the last note word for word: as its own section of the system prompt, apart from your first message; a first session reads "First session of this work; no record."
  • Added the note for the next session: at the end of a headless run (its input closed, whether during the last turn or after it) and on /exit, the model is asked once for its note: what the work is for, what was decided and why, what is still to do, what it got wrong: and the reply is stored exactly as written, its spacing included; a session that leaves none is marked "no note left", never summarised, never invented; a note that could not be stored is said so plainly, never announced as stored
  • Added the journal: at the end of a session the model writes, in its own words, what happened, what you wanted, what it noticed about how you like to work and what it got wrong; Mercury appends it, dated from its own clock, to the project's journal in the Mercury home: never under the project tree, never pushed, synced or shared. The Journal tool is the one way to write it; two settings under memory: memory.journal (on by default) and memory.journalOnEntryPage (off by default), both saying plainly that what the model reads at entry travels to the engine's provider with the request
  • Added memory as pointers: Recall answers a search with at most twenty pointers: an id, a kind (fact, ruling, handoff, session), a one-line title and footnotes (the session it came from, the ruling it fell under, what it supersedes or was superseded by): never content; the record is opened with one more read, and a read carries its footnotes so the model can say where a fact came from
  • Added the search of the lineage: a session's note is found by its words, a session by the files, outcome or ids it recorded; read:"ledger:<number>" shows the session's entry and its note verbatim, or "no note left"
  • Added mercury://seat: asked which model it runs on, the model looks itself up: the model this turn runs on, the effort, the posture, and every engine the session has run on with the time of each switch: and answers from that, never from its instructions
  • Added a setting, memory.tellEngineSwitch (off by default): on, the model is told once, in one line with the time, when its engine is switched
  • Added a third appearance, Black and white, beside Oasis dark and True Black in /appearance, /config and the first-run fitting: no colour at all, the terminal's own ink on its own ground, previewed live like the other two
  • Changed what the model reads before your first message: one short text, the constitution: what Mercury is, how it works with you, what it stops for, how it owns a fault, what its record is for: in place of the pages of behaviour prose; the prompt is less than half its former size (8,542 characters before your first message against 18,873 in beta.31; 7,459 against 17,407 for a headless run), and the same text opens every session, a headless run, a crewmate and the coordinator alike; /health's "Mercury doctrine" row is the "Mercury constitution" row; MERCURY_PROMPT_LAYERS reads stock, replace or whole
  • Changed the model's identity wherever a request leaves: the first-party wire no longer carries a second identity sentence ahead of the prompt, a headless run no longer calls itself "a Mercury agent", and a side query carries no identity line
  • Changed a session on the switchboard: it is told what it is to you: opened to work in or left running: and never calls itself a background session while you are sitting in it
  • Changed switching the model mid-session: the /model rows stay in your transcript as your record and nothing about the switch reaches the model unless memory.tellEngineSwitch says so; a resumed session no longer re-sends the /model rows or any display-only row
  • Changed /memory: it opens as a popup like the files menu: the project and its memory folder under the title, a search line at the top, the overview a table with the count, the newest date and the state of each section, the pinned rules, topics, lineage (a table of sessions) and journal under a breadcrumb, topic pages and notes as pages wrapped to the frame; every action kept
  • Changed a Correct that supersedes a fact by pointing at an existing one: the two are linked both ways and a pinned rule follows the replacement
  • Changed the model picker's search: the search box sits at the top under the title and says tab to search; tab moves into it, every key narrows the list with the counts updating as you type, tab again returns to the rows with the search kept, and escape clears the search before it closes the picker
  • Changed a refusal of a write or edit because the file was never read in this session, or changed since: it says the file may be another session's work and, when another session of the project is live, names it and when it started
  • Changed records.retentionDays 0: no lineage entry is written, no note is asked for, and the entry page says so
  • Changed a session opened before this release and resumed on it: it keeps the prompt it opened with, whole, until it compacts, where that prompt is still on record on this machine; otherwise it continues on the constitution from its first turn: never a mixture of the two
  • Changed a GPT turn's thinking: it shows the same collapsed, expandable thinking row a Claude turn does, live and settled; the grey "thinking" line the live tail painted while a GPT stream was quiet is gone
  • Fixed a terminal without colour (NO_COLOR, TERM=dumb) still receiving diffs in colour: a diff is painted plain there, with its + and − lines
  • Fixed a stray "the rows below are commands the user ran" note standing over your next question in the model's view after a rewind
  • Fixed the working-directory line a local model reads: the memory folder is "named above", where it is
  • Fixed a Gemini 3.8 Flash session reading as unpriced: its row is priced from the provider's pricing page, with the change the page announces for 2027-01-01
  • Fixed the hooks page naming a --settings flag where the flag is --config
  • Fixed NO_COLOR and TERM=dumb still letting Mercury recolour the terminal's background: the ground is left alone, and a ground already changed is still restored on exit