4.3.0 — The workspace is one place, and an Enter that means 変換

A snapshot of 4.3.0 as released on 2026-08-04. It will go out of date as the app moves on; that is fine and expected. For the reference that is kept current, follow the links to the living guide in each section.

npx mulmoterminal@latest

Nothing here needs configuring. Everything below starts working on upgrade. The one thing worth reading is the tool-name change, because it is visible to the agent and looks like a bug if you do not know about it.


The workspace reaches the same tools however you start a terminal there

The workspace is the directory MulmoTerminal itself works out of — ~/mulmoclaude unless you said otherwise. It is the one directory where every GUI tool is available without registering anything per-directory.

That was true of a claude cell. It was not true of the others. In the same workspace directory:

Started as Before Now
a claude cell every tool unchanged
a codex cell only the groups registered for that directory every tool
a claude launcher chip nothing — no Canvas at all every tool
a codex launcher chip only the registered groups every tool
any other chip left alone left alone

So the cell beside you could have the Canvas while yours did not, decided by which agent you happened to start.

Nothing to switch on. Point a terminal at the workspace and the launcher tells you what it will get:

The launcher's GUI TOOLS section with the workspace selected: "All of them, automatically — Canvas, Workspace data, External accounts. The workspace needs no per-directory registration."

Two costs, stated rather than hidden.

  • Codex approves MCP servers per server, not per tool. A workspace codex session now auto-approves the whole set in one go — external accounts (Google, X) and the paid generation tools among them. A claude session in the same directory already did; what changed is that the two now match.
  • A claude launcher chip runs with --strict-mcp-config, so that terminal does not load your own MCP servers from .mcp.json. That is the price of a chip and a cell having the same tools. If you need your own servers in a workspace terminal, start it as a cell rather than a chip.

Reference: configuration in the living guide.


The launcher always offers the workspace

The chip row used to be exactly your recently-used list. That list is filled in as you launch things, and you can delete entries from it — so the most important directory in the app was missing until you had launched there once, and gone for good if you ever pressed its ×.

It is now always the first chip:

The launcher chip row: the workspace first with its own icon and no remove button, then two ordinary directory chips that have one

  • Always first, ahead of the ordering your orderPriority settings produce — those rank your directories against each other, and the workspace is not in that competition.
  • Its own icon, and no ×: there is nothing to remove, and removing it would only bring it back on the next render.
  • Not duplicated if it is already in your list, and your label is kept — it does not get renamed for having become the workspace.

The frame and background are unchanged on purpose: those already mean “a session is running here”.

Reference: basics in the living guide.


The tool names an agent sees are shorter — and differ by directory

This is the one thing that can look like a breakage if you do not know it.

An MCP client always qualifies a tool with its server id. The workspace / single-view server was mulmoterminal-gui; it is now mt:

Client Before Now
Claude Code mcp__mulmoterminal-gui__presentChart mcp__mt__presentChart
Codex mcp-mulmoterminal_gui-presentChart mcp-mt-presentChart

That id is repeated on every tool name, in every listing, for the life of the session, so the seventeen characters were being paid over and over to say what the surrounding config already said.

Only that id changed, and this asymmetry is deliberate:

  Workspace cell / single view A cell in a project directory
Tool name mcp__mt__presentChart mcp__mulmoterminal-render__presentChart
Who owns the id us — regenerated per spawn, in no file you keep you — a key in the .mcp.json you wrote

The per-group ids are keys in your config files, read back by the launcher’s group switches. Renaming those would break working setups with no error anywhere, so they are untouched. If you see both spellings, nothing is wrong.

Nothing to do. No config of yours refers to mulmoterminal-gui; the app generated it per spawn and never wrote it down. An old entry left in an Antigravity config is still recognised and cleaned up.

Reference: configuration in the living guide.


Enter confirms your IME candidate again

If you write in Japanese, Chinese or Korean, this is the release you want.

In the session note (the pencil on a cell’s header): typing れびゅー, converting to レビュー and pressing Enter to accept the candidate used to save the unconverted text and close the box. The first Enter closed it, so there was no way to recover — you got the wrong note every time.

Escape had the same problem, and worse: mid-conversion it means “drop this candidate”, and it was discarding the whole note instead.

In the terminal, on Safari only, the same Enter submitted the half-converted line to the agent.

Nothing to switch on. Type in Japanese, convert, press Enter — the first press confirms the conversion and the box stays open; the second saves.

Why Safari is called out. Safari fires compositionend before the confirming keydown, so the usual isComposing check is already false by the time anything can look at it. Chrome and Firefox fire it after, which is why the terminal looked fine there. Both are handled now.

Reference: FAQ in the living guide.


Everything else

No action required, but this is most of the release.

  • The test suite stopped leaving temp directories in $TMPDIR — 51 per run, now 0. The machine this was found on had accumulated 42,000 of them.
  • Three files belonged to no TypeScript project and were checked by nothing — not yarn typecheck, not CI. All 1,173 tracked files are covered now, verified by planting an error in each of the three.
  • Docs renamed for what people actually search for (the content was already there), the README now says every cell is a real pty — which is the missing explanation for why the one-session-per-worktree limit applies to agents only — and the hero GIF was retaken.

The full detail, per pull request, is in the changelog.


This site uses Just the Docs, a documentation theme for Jekyll.