MoriMori
Mori

Slash commands

A `/` in the composer opens Mori's command layer — quick local actions that run the instant you send them, right where you type, and never cost a model turn.

How the command layer works

Type / at the start of the composer and an autocomplete menu opens with every command available on this surface. Keep typing to filter (/co narrows to /compress), arrow up and down to move, Enter or Tab to pick. A recognized command runs the moment you send it — it performs a local action (opens a popover, compresses the thread, flips a setting) and never goes to the model, so it is instant and costs nothing.

Anything that isn't a real command falls straight through as an ordinary message: /models are great is prose and gets sent to Mori. Only a known command name, followed by a space or the end of the line, is intercepted — so a command can never fire by accident from the middle of a sentence.

The commands

The core set on the desktop, roughly in the order you reach for them:

  • `/new` — start a fresh chat.
  • `/clear` — clear the current conversation.
  • `/compress` — fold older turns into a summary to free up the context window.
  • `/usage` — open the context popover: tokens in use, estimated next-turn cost, and what's filling the window, with one-click Compress.
  • `/model` — open the model picker for this chat.
  • `/stage <spark|flow|forge|trance>` — set the thinking depth; with no argument, opens the stage menu.
  • `/skills` — browse your skills and commands.
  • `/learn <dir | url | topic>` — turn a folder, a page, a topic, or "what we just did" into a new skill, saved for your approval. Covered below.
  • `/sessions <query>` — search the full text of every past conversation, word for word — results with snippets, instantly, no model turn. New in 1.7.0; covered on the Memory page.
  • `/export [md|html] [--redact]` — save this conversation to your Downloads folder as clean Markdown or a self-contained styled HTML page. Live credentials are always scrubbed; --redact additionally strips injection-shaped content. New in 1.7.0.
  • `/retry` — re-run your last message. New in 1.7.0.
  • `/branch` — fork the conversation into a new chat from this point; the original stays untouched, and the fork starts already-summarized. New in 1.7.0.
  • `/voice <on|off>` — toggle spoken replies; no argument flips it.
  • `/autonomy <guided|trusted|commander>` — set how much Mori can do without asking.
  • `/undo` — remove the last exchange from the thread.
  • `/help` — reopen the command menu and list everything.

/learn — teaching a skill on the spot

/learn is how you teach Mori a new procedure mid-conversation. It takes whatever you give it and hands the model a single authoring task: research the target, then write a skill and save it for your approval.

  • `/learn` with nothing — Mori reflects on what you just did together this conversation and distills the winning procedure (not a transcript) into a skill.
  • `/learn <folder or file>` — Mori maps the folder and reads the key files so the skill reflects how that project really works.
  • `/learn <url>` — Mori actually reads the page before writing, rather than guessing from the link.
  • `/learn <topic>` — Mori researches the topic first, then writes it up.

Whatever the source, the result lands pending on the Skills page — Mori never activates a skill she just wrote. And /learn waits its turn: if a task is already running, she tells you to finish it first, then run it.

/usage and /compress: staying inside the window

These two are the context-transparency pair. /usage opens a popover that breaks your context window down by category — system, conversation, skills, memory — with an estimated cost for the next turn and a one-click Compress right there. /compress does that compression without opening anything: it summarizes the older turns in place so a long session keeps going without losing the thread.

Both are local. Neither spends a model turn to tell you where you stand — the whole point is to see and manage context without paying for the privilege.

One registry, every surface

The command layer is a single declarative registry shared across every surface Mori runs on — the desktop composer and the chat bots (Discord, Telegram) — but each command is only offered where it makes sense, and each surface's autocomplete lists only what it actually supports.

  • In the bots: /clear, /model, /status, /task, and /help.
  • Desktop-only: everything else — /new, /compress, /usage, /stage, /skills, /learn, /sessions, /export, /retry, /branch, /undo, /voice, /autonomy, and the rest.

Because the registry never touches the screen or the wire, the same / grammar behaves consistently wherever you type it.

One honest gap

As of 1.7.0 the registry carries no vapor: /retry and /branch, which used to reply "coming soon", now do their full job. The one remaining pointer is /theme — it currently directs you to Settings → Appearance to switch looks rather than switching them inline. Everything else in the lists above works today, exactly as described.