RealmDownload for Mac
Changelog

· Release · v1.5.0

Realm v1.5.0

Realm can use itself: an agent can read a terminal as the screen it shows and read Realm's own interface as elements. Plus an Agents page that's a room as well as a list, a cursor with its own controls, and Claude Opus 5.5.


Realm can use itself

A session in a space can now open a terminal pane and read what it's actually showing. It reads the rendered screen, so a full-screen program's redraws come through as what you'd see instead of a stream of escape codes. It can also read Realm's own interface as elements and click around in it.

The terminal tool is on by default and the interface one is off, and that's on purpose. Every harness already has a shell tool, so a terminal that talks back adds something new instead of a second way to run commands. Reaching into the window you're reading is a different kind of thing to hand out.

Signing in is the case that makes all of this worth it. claude auth login in a non-interactive shell hangs forever, because nothing on the other end can answer the code it prints. In Realm it runs, and Realm can read the URL, open the consent page, and stop at the one step that grants a lasting capability. That step stays yours unless you say otherwise, per space.

The Agents page is a room, not just a list

There are three views over the same agents, because "what is everything doing" and "what did that one just say" are different questions, and a list only answers the second. The wall is tiles with each agent's state on its face. The office is a drawn room with a figure for each agent in a seat, and you can redraw it by typing a sentence at it. The order comes from what actually moved, which is also what the new Sort spaces by activity switch uses.

The Agents page was removed again in v2.0.0. What it ranked now shows on each session's own row, under Needs you and on the Dock badge.

Two things are called what they are

The sidebar's catch-all section said "Space", which is the name of a container, sitting under "Open", which names what the rows are. It says Sessions now. And a pane group is called a split: the strip above the panes, the sidebar's button, the palette's row, the ⌘⇧[ and ⌘⇧] labels and the names new ones get all say so. The strip also stopped crowding the traffic lights.

The cursor gets the controls it should have had

A terminal's cursor gets a shape (block, bar or underline) as its own setting instead of being tied to whether it blinks, because people ask for both a bar that holds still and a block that pulses. The code editor's caret gets its own blink switch, separate from the terminal's, the same split VS Code makes.

The prompter's caret still can't be set either way. It belongs to the platform, and Chromium has no way to hold it still until caret-animation lands. The switch says so, instead of quietly covering only half of what its name promises.

Claude Opus 5.5

Claude Opus 5.5 is in the model picker. Adding a Claude model is more than adding a row. The bundled CLI has to know the model's id, or the API answers with a 400 and the session quietly runs something else. That rule was written down in three comments and enforced by none of them, and it had already gone wrong once. Now it's a test: every model Realm offers is checked against the binary that will be asked to run it.

Reading and writing

  • Line height is adjustable, as an offset instead of a value. Prose is 1.6, markdown 1.55 and a code block 1.65, and one slider moves all of them from their own starting points. A control that set one number would flatten the differences that let a code block breathe more than a paragraph.
  • A Quick Look render and a guide reopen where you were reading. A PDF still doesn't, and can't: Chromium renders it in a nested viewer that runs none of our code.
  • You can quote a passage of an answer back to the agent instead of describing it.
  • The prompter's pickers show a scrollbar while they're scrolling and hide it the rest of the time.

Getting rid of things

  • "Really delete?" is optional, in Settings ▸ App ▸ Deleting. It's on unless you turn it off, and a setting that was never touched keeps asking.
  • Sidebar rows that aren't sessions get their own trash button. Archiving is how a session gets put away when it's done, but a terminal or a documents pane had no way out except a right-click.
  • Downloads no longer refuse a file because of its extension. What matters is the permission you granted, not whether anyone has heard of .parquet.

Elsewhere

  • A schedule can name a single moment, like "in two weeks, open the PR", instead of being written as a cron expression that fires once in 2031 and gets forgotten.
  • A signed-out session tells you what to do about it, with the command to run, instead of showing the raw failure. It only says so after checking again, because on macOS the credentials file can't answer "signed out" by itself, and a fix offered on a guess is worse than none.
  • Passkeys work in a browser pane. Electron ships the WebAuthn API without an authenticator behind it, so Realm is the authenticator. The key is stored encrypted and only reaches the page for the one request you approved with Touch ID.
  • Right-click either arrow in a browser pane to see the pages behind or ahead of it.
  • ⌘⇧N opens Quick Chat and ⌘⇧G makes a split. Both used to be mouse-only.
  • A profile's spaces moved into that page's rail, next to Skills, Connections and Memory, instead of sitting over the title as a row of chips.