Changelog
These notes come from the GitHub releases. An installed Rune updates itself to the newest one.
v0.2.1
New
- Marks for more agents. Tabs that run fx, Pi or OpenCode now show the agent's mark. Rune now also detects fx as an agent.
- clue's mark now matches its new logo.
v0.2.0
New
- Move panes. Drag a split pane by its header. A highlight shows where it will land. Drop it on another pane's header or middle to swap the two. Drop it on the outer part of a pane to land on that side. Drop it at the hub's edge to fill that whole edge. Press Escape to cancel.
- Move tabs. Drag a tab along the tab row. ⌘1–9 and ⇧⌘[ ] follow the new order, so the numbers read 1, 2, 3 from the left.
Changed
- No more main terminal. The first tab is now an ordinary terminal. It can be closed, shows its process name, and detects agents. A window always keeps one terminal: closing the last one opens a fresh shell.
- ⌘` now switches between your two most recent terminals.
- Hide Main Terminal is gone. Layouts that set
hidesMainTerminalnow open with one terminal tab, which you can close. - Hide Secondary Terminal is now Dismiss Terminal Preview, and it shows only while a preview is open.
rune_close_terminalcan now close the first terminal.
v0.1.26
New
- Resize cards. Drag the gap between two cards to change their heights. A card stops at its minimum height. Rune saves the heights as shares of the column, so they scale with the window. Double-click the gap to reset them. A fixed card, such as Usage, keeps its height.
v0.1.25
New
- Even splits. Splitting a pane adds the new pane to its row or column. Press ⌘D twice and you get three equal columns, not one half and two quarters. If you resized the panes, the new pane gets an equal share and the others shrink in proportion. ⇧⌘D stacks panes only in the focused column.
- Dragging a divider resizes only the two panes beside it. Closing a pane gives its room back to the rest of its row or column.
- Split animation. The new pane grows from its center while its neighbor makes room.
- Close idle terminals without asking. A terminal at its prompt closes right away from the tab's close button, the tab menu, ⌘W or the command palette. Rune still asks when something is running. This works with any shell, including the one in your
$SHELL.
Fixed
- A shell at its prompt now shows as idle. Before, Rune always treated it as busy.
v0.1.24
New
- clue threads. A custom card can open a thread in clue. Add
agent: "clue"to the item'sthreadaction. Withoutagent, the thread uses Claude Code. - A clue thread uses the thread key as the session name. It needs clue 0.3.0 or later.
- Rune recognizes clue in a tab and shows its mark.
- "Connect Agents to Rune" now connects clue. Run it once to give clue Rune's tools.
v0.1.23
New
- Themes. Rune has 10 themes: Rune, Xcode, GitHub, Catppuccin, Rosé Pine, Tokyo Night, Gruvbox, Solarized, Flexoki and Kanagawa. Each has a light and a dark version. A theme colors the terminal, the cards, the window, the text and the status colors.
- Pick a theme in Settings, or run "Change Theme…" from the command palette (⇧⌘P). In the palette, the arrow keys preview each theme. Closing the palette without picking one keeps the saved theme.
- If the system appearance changes, Rune switches to the theme's other version, such as Catppuccin Latte to Catppuccin Mocha.
- Claude Code's
autotheme (/theme) follows the terminal background, so it matches the Rune theme.
v0.1.22
New
- Agents can manage the Commands card's saved commands through the Rune MCP. They can list, add, update, delete, run, stop and restart them. The list shows each command's status, and the TCP ports a running command listens on.
- Agents can act on panes that are already open. They can type a command at a shell prompt, send Ctrl-C, close a pane, wait for a pane to print some text, and show a pane with the keyboard in it.
- Agents cannot type into, interrupt or close their own pane, a pane where another agent runs, or a saved command.
Agent sessions that were already running load the new tools after a restart.
v0.1.21
Fixes
- Mermaid diagrams draw again in Markdown previews. They stayed blank in Markdown files and in pages an agent opened with
rune_open_markdown.
v0.1.20
New
- Agents can read other terminals.
rune_read_terminalreturns the last lines of any terminal in the agent's window, scrollback included. An agent can now see what a dev server or a test run printed.rune_spacelists each pane's id, process and directory, and the saved commands that are running. - Agents can notify you.
rune_notifymarks the agent's tab as waiting. If the Rune window is focused, a message shows over the hub. If not, Rune sends a macOS notification. Clicking either one selects the agent's tab. - Agents can show Markdown.
rune_open_markdownshows a page, such as a plan, in the preview drawer. Mermaid blocks render as diagrams, and links to paths open the file at that line.
The tools are described in docs/agent-control.md. Agent sessions that were already running need a restart to see them.
v0.1.19
New
- Agents can use Rune. Claude Code and Codex running in a Rune terminal can now act on the window they run in, through an MCP server built into Rune. An agent can open a file at a line, open the diff of a change, start a command in a pane beside its own, set a space variable, and read what the window shows. It controls only the window it runs in. The details are in docs/agent-control.md.
- Connect Agents to Rune. A command palette action and a new welcome step register Rune's MCP server with Claude Code and Codex. Rune does this only when you ask, since it edits the agents' settings. Agent sessions that were already running pick it up after a restart.
v0.1.18
New
- Setups. A setup is a named arrangement for a project, opened in a window of its own. The same project can be open in its default arrangement and in a setup side by side, each with its own terminals. Use "New Setup with project…" and "Open Setup…" in the command palette. Setups also appear in the project picker.
- Custom cards. A card can now be yours. Put a TOML file in
~/.rune/cardswith a script as itssource, and the script prints the items to show as JSON. An item can open a link, open a file, or set a variable that other cards react to. A card can also show a conversation's messages or a page of Markdown, and add buttons to its header. The format is specified in docs/cards.md. - Agent threads from a card. An item can open a Claude Code session tied to a key, such as a ticket's ID. The first click starts the session in a new tab. Every later click resumes that same session, including after a relaunch.
- Remove and add cards. Right-click a card and choose "Remove Card", and bring it back with "Add Card" from the same menu. "Remove Card…" and "Show Card…" in the command palette do the same.
- Hide the main terminal. "Hide Main Terminal" in the command palette leaves it out of the tab row, for a window whose terminals are all opened from cards.
- Changes and blame in the file preview. A file preview marks the lines that differ from the last commit and shows who last changed a line.
Improvements
- A card column can be up to 40% of the window, up from 28%.
- "Open Setup…", "Show Card…" and "Remove Card…" open their list when chosen from the command palette.
Fixes
- A Rune started by a coding agent no longer passes that agent's session to its terminals. Claude Code started in such a terminal had stopped saving its transcript.
v0.1.17
New
- Split terminals. ⌘D splits the focused terminal into two columns, and ⇧⌘D into two rows. The new pane starts in the project folder. Each pane is a card with its own header, and a tab stacks the icons of its panes with the focused one in front. Drag the gap between panes to resize them, or double-click it to make them equal.
- Zoom a pane. ⇧⌘↩ grows the focused pane over the others, and again puts it back. The panes underneath show as a stack behind it.
- Usage per pane. A split pane's header shows the memory and CPU of its processes, and any ports they listen on.
- Rearrange the workspace. Drag a card by its header to move it: within its column, into another column, or into a new column beside the terminals or at a window edge. Move every card to one side to put the terminals at the other. Rune remembers the arrangement for each project.
- Share an arrangement. "Save Workspace Layout to Repository" in the command palette writes the arrangement to
.rune/space.json. When a project has that file, Rune uses it.
Changed shortcuts
These now match Ghostty.
- ⌘D splits a terminal. It no longer peeks the last terminal. Holding ⌘1–9, ⌥⌘1–9 and ⌥-clicking a tab still peek.
- ⌥⌘ arrows move between panes. Previous and next terminal are now ⇧⌘[ and ⇧⌘].
- ⌘W closes the focused pane when a terminal has focus. A pane that is running something asks first.
- ⌃⌘ arrows move the nearest divider, and ⌃⌘= makes panes equal.
Improvements
- A tab shows when any of its panes is waiting for you, not only the focused one.
- Switching tabs no longer resizes the terminals in them.
v0.1.16
New
- Split terminals. ⌘D splits the focused terminal into two columns, and ⇧⌘D into two rows. The new pane starts in the project folder. Each pane is a card with its own header, and a tab stacks the icons of its panes with the focused one in front. Drag the gap between panes to resize them, or double-click it to make them equal.
- Zoom a pane. ⇧⌘↩ grows the focused pane over the others, and again puts it back. The panes underneath show as a stack behind it.
- Usage per pane. A split pane's header shows the memory and CPU of its processes, and any ports they listen on.
- Rearrange the workspace. Drag a card by its header to move it: within its column, into another column, or into a new column beside the terminals or at a window edge. Move every card to one side to put the terminals at the other. Rune remembers the arrangement for each project.
- Share an arrangement. "Save Workspace Layout to Repository" in the command palette writes the arrangement to
.rune/space.json. When a project has that file, Rune uses it.
Changed shortcuts
These now match Ghostty.
- ⌘D splits a terminal. It no longer peeks the last terminal. Holding ⌘1–9, ⌥⌘1–9 and ⌥-clicking a tab still peek.
- ⌥⌘ arrows move between panes. Previous and next terminal are now ⇧⌘[ and ⇧⌘].
- ⌘W closes the focused pane when a terminal has focus. A pane that is running something asks first.
- ⌃⌘ arrows move the nearest divider, and ⌃⌘= makes panes equal.
Improvements
- A tab shows when any of its panes is waiting for you, not only the focused one.
- Switching tabs no longer resizes the terminals in them.
v0.1.15
New
- Program icons on terminal tabs. Each terminal tab now shows a small tile for the program running in it, in that program's colours: Claude Code, Codex, Node, Python, Git, Vim, Docker and others. A shell at its prompt shows
>_. A terminal open beside the panel shows the same mark in its header. - Copy code blocks. Hover a code block in the Markdown preview to copy it.
Improvements
- A tab's status dot moved to the trailing edge. The close button takes its place on hover.
v0.1.14
New
- Image and SVG previews. Opening an image or SVG file from the file tree now shows the picture in the file drawer.
Improvements
- The Git sidebar stays responsive with hundreds of changed files, such as during a large merge or migration. Previously the whole window could stutter and use a lot of CPU while files were changing.
v0.1.13
New
- A refreshed workspace. Every sidebar section and the terminal now share one card style on a darker window background, and the top row of each column lines up with the terminal's tabs. The project switcher moved into the header of the Files card.
- Ports, memory and CPU for side terminals. A terminal open beside the panel shows the ports its processes listen on (click one to open it in your browser), how much memory they use, and their CPU. Like Activity Monitor, CPU is measured per core, so a busy build can go above 100%.
Improvements
- Agent usage always shows every agent in full.
- File icons use one colour, and changed files are marked with
MorU. Folders with changes inside get a dot. - Command rows show their play button only on hover.
- History hides author names when every commit has the same author, and the commit graph has more room.
- Terminal tabs are quieter, and a terminal you aren't typing in dims slightly.
- Less empty space under the window's close, minimise and zoom buttons.
v0.1.12
Fixes
- Rune no longer crashes when opening a project where a file was removed from Git but kept on disk (for example after
git rm --cached). Git lists such a file twice, once as deleted and once as untracked, and the file tree crashed on the repeat within seconds of opening. It now shows as one change with both states.
v0.1.11
Process groups
A project's long-running processes usually start together, so a command can now hold several.
- Add Process in the command sheet turns a command into a group: give each process a name, command and directory. One process still saves as a plain command.
- A group is one quiet row at the top of the commands list, ending with a faint count of its processes. Its dot shows the most urgent state inside: waiting for you, failed, stopping, all running, or a ring when only some are.
- Click it to open the processes along a small tree and pick one to view. Whether each group is open is remembered across relaunches.
- Start or stop the whole group from its row. Each process keeps its own terminal, run and stop.
Commit graph in History
History now draws a quiet graph beside each commit, covering your branch and the branch it compares against. Commits carry small labels for your branch, the base branch and tags in place of the hash, and hashes are a steady 7 characters.
History also keeps loading as you scroll, instead of stopping at 50 commits.
Command palette searches deeper
Typing in ⇧⌘P also searches what sits under each command, so a project name finds Open Project › Chatwoot and a branch name finds Switch Branch › feature-x directly. Stray matches, like chat in Check for Updates, are hidden once something matches properly.
Branches are fetched fresh each time the palette opens, without slowing it down, so the list never shows one that no longer exists. Terminals move under a new Switch Terminal… command.
v0.1.10
Terminals tell you when they need you
Agents ring the terminal bell when they finish or want an answer, and Rune now listens.
- The terminal's dot turns amber, its tab nudges once, and the dot keeps breathing until you visit it.
- A terminal you are typing in never asks: you are already looking at it, and zsh rings the bell for tab completion.
- Programs that send a desktop notification (OSC 9) raise it too.
File links open in Rune
⌘-clicking a file link in a terminal used to hand it to whichever app macOS preferred. Now it opens in Rune's own editor, on the line the link names, while web links and folders still go to the system. Relative paths resolve against that terminal's current directory, so build and test output opens even after the shell has moved.
File tree: right-click to act
New File, New Folder, Rename, Duplicate, Move to Trash, Reveal in Finder, and copying either path. New items land in the folder you clicked, duplicates take Finder's naming, and deletions go to the Trash.
Command palette
New Terminal, Close Terminal and Check for Updates… join ⇧⌘P. Closing asks first, since it ends running processes.
Plan usage
Claude and Codex readings now carry their own logo. A rate-limited refresh keeps the numbers it already read instead of replacing them with an error, and the reason moves to a tooltip.
Fixes
- A failed Git action clears itself: the next change to the working tree takes it down, and so does time.
v0.1.9
Search your project
Press ⇧⌘F to search file contents across the project. Results are grouped by file, with each match's line and the matched text highlighted.
- ↑↓ moves through matches and Return opens one. The file opens scrolled to the match, with it selected.
- ⌥⌘↑ / ↓ steps to the previous or next result, across files. Esc or ‹ goes back to the results, right where you left them.
- Searches as you type, ignores case, and skips gitignored, binary and very large files.
Also in the command palette and under File → Search in Project….
Plan usage for Claude Code and Codex
A row under History shows how much of your plan the agent you used last has left: the limit closest to running out and when it resets. It shows Codex until you run an agent. Click it to see every limit for both agents.
- Codex usage comes from its local session logs, with no network requests.
- Claude usage comes from the same source as Claude Code's
/usage, using Claude Code's existing sign-in. It doesn't ask for Keychain access.
Markdown preview
Markdown files now open rendered: headings, lists, quotes, tables and code blocks, with Mermaid diagrams drawn inline. Switch between Preview and Source in the file's header, and Rune remembers your choice.
Also new
- mise tasks appear alongside Procfile commands, ready to run.
- The command palette shows the keyboard shortcut for each command.
v0.1.8
Learn terminal navigation by doing it
The welcome window has a new Move between terminals step: a small sketch of the terminal column that responds to the real shortcuts as you press them.
- ⌘1–9 switches terminals. Hold ⌘ to see each tab's number.
- Hold ⌘ and a number to peek a terminal until you let go.
- ⌘D peeks the terminal you used last, and closes it again.
- Return opens a fresh peek in the panel.
- ⌥⌘↑ / ↓ moves to the previous or next terminal, and ⌘` jumps back to Main.
A checklist ticks off each one as you try it. The shortcuts step now teaches Switch project (⇧⌘O) instead of ⌘D.
Replay the welcome any time with Show Welcome… in the command palette (⇧⌘P).
v0.1.7
Welcome to Rune
A short, native welcome window shows once, for new and existing users alike. It never spotlights parts of the UI and asks for no system permissions.
- What Rune does for agents: tabs that take the name of the agent running inside and show a green dot while it works, Change Brief, and Procfile commands that stop when Rune quits.
- Shortcuts you learn by pressing them. Each row checks off as you try it.
- The
runecommand. Install it from the welcome window to open any folder from your shell:runefor the current directory,rune ~/code/apifor another. It links into/usr/local/bin, and macOS asks for your password only after you click Install. An existingrunecommand is detected and left alone. - Pick up where you left off. The last step lists your recent projects, with Open Directory… and Open Rune to continue without one.
Replay it any time from Show Welcome… in the command palette (⇧⌘P) or Replay Welcome… in Help.
Faster peeks
Peeking no longer needs two modifiers and the number row at once.
- ⌘D peeks the terminal you used last, and closes it again.
- Hold ⌘ and a number to peek that terminal until you let go. A quick tap still switches.
- Return, with or without ⌘ held, opens a fresh peek in the panel.
- Peeks slide in from the edge, faster, instead of fading in.
⌥⌘1–9 and ⌥-click still peek a specific terminal.
Fixes
- Sidebar resizing is steadier.
v0.1.6
Terminals: tabs and peek
The terminal layout preference is gone. Slideovers and tabs bundled two separate decisions — where you switch sessions, and how a second one is shown — so both are now available at once instead of being a mode you pick in Settings.
- Tabs are the session list. Every shell gets a tab; ⌘1–9 brings one into the panel, and holding ⌘ labels each tab with its number.
- ⌥⌘1–9 or ⌥-click opens a session beside the panel as a read-only preview, so you can watch one terminal while working in another. Press again to dismiss.
- A fresh preview takes Escape to dismiss and Return to promote it into the panel. Typing hands both keys back to the shell.
- Saved commands never take a tab. A dev server is something you watch, so it always opens as a preview, with its run, stop and restart controls in the header.
A single surface language
The workspace was one panel (the terminal) surrounded by floating text. Now every column is a panel, and the sections stacked inside a sidebar are cards on the same surface one size down.
- The project title, the terminal tabs and the Git panel share a baseline, because their containers do.
- One 8pt gap outside the columns, between them, and between their cards.
- Horizontal rules are gone: the border does the grouping, so labels no longer need a line as well.
- The terminal panel takes the terminal's own background colour, and the tab strip reads as chrome on top of it.
Git panel
- The commit box rests as a single line and expands when you click it, instead of holding ~110pt for an action taken once a session. ⌘↩ commits.
- Change Brief is a text action on the section header rather than a full-width row.
- The branch header and Change Brief live inside the changes card; history is its own card.
- Hover states on the section actions, the commands list, and the Change Brief action; the commit button tints only once the commit would actually go through.
Fixes
- Tabbed terminals no longer draw a second border inside the panel, and line up with the primary pane.
- The terminal tab strip has an even margin, and tabs no longer stretch to a fixed 160pt.
v0.1.5
Choose between tabbed terminals and the recommended slideover layout in Settings. Switching layouts keeps your sessions running and preserves their output.
- Use fixed-width tabs above the terminal panel, with Command-1 through Command-9 following tab order. Tabs support renaming and closing; closing the first terminal starts a fresh shell in its place.
- Recover automatically when the main shell exits, with a manual restart option if a replacement exits immediately.
- Launch saved commands in the background without opening their terminal. Click a slideover terminal's title to expand and focus it.
- Find recently updated branches first in the branch selector.
- Fix clipping in the Add Command dialog and lingering search highlights after closing file previews.
Requires macOS 26 or newer on Apple Silicon.
v0.1.4
Save and run project commands directly from Rune's terminal sidebar.
- Discover commands from your project's Procfile and save custom commands for each project.
- Start, stop, and rerun commands from the sidebar, with a Stop All control for running commands.
- Clean up command processes when terminals close or Rune crashes or is force-quit.
- Keep the initial terminal font size consistent with the Command-0 reset.
Requires macOS 26 or newer on Apple Silicon.
v0.1.3
Change Brief helps you understand your changes with explanations, diagrams, and links to the code.
- Generate briefs for your working tree, staged changes, or PR using your installed Codex or Claude Code.
- Open briefs from the Git sidebar or command palette. Your preferences and saved briefs carry across launches.
- Read highlighted code snippets and click references to open the matching diff.
- Enjoy smoother loading and a cleaner panel with a wider outline and click-outside dismissal.
- Open projects in separate windows instead of macOS tabs.
Requires macOS 26 or newer on Apple Silicon.
v0.1.2
Rune v0.1.2 adds supporting terminal sessions and faster keyboard navigation.
- Switch supporting terminals with ⌘1–9, cycle sessions with ⌘⌥↑/↓, and toggle the primary terminal with ⌘`.
- Hold Command to reveal terminal shortcuts, or switch terminals by name in the command palette.
- Slide the secondary terminal partly off the right edge when returning to primary, preserving both terminal sizes. Toggle back or click the visible strip to restore it.
- Keep Escape available to terminal applications and hide secondary terminals explicitly without stopping their sessions.
- Rename terminal titles inline and return to the last-used surviving terminal when closing a session.
- Add native line-number gutters to editors and diffs, show ignored files and empty folders in the file tree, and improve floating preview alignment.
- Improve terminal renderer teardown and development app replacement.
Requires macOS 26 or newer on Apple Silicon. Download Rune-arm64.zip and move Rune.app to Applications. The release includes a SHA-256 checksum and signed Sparkle update feed.
v0.1.1
Rune is a native, terminal-first workspace for Apple Silicon Macs running macOS 26.0 or newer.
- Fix release builds with Xcode 26.6, retaining the macOS 26.0 minimum.
- Add a compact shortcuts and help popover.
- Simplify preview controls, with Find available through Command-F.
- Include keyboard-driven palettes and signed Sparkle updates.
Download Rune-arm64.zip after the build completes, extract it, and move Rune.app to Applications. This app is ad-hoc signed, not Apple-notarized; macOS may require approval in Privacy & Security on first launch.
The build attaches the app ZIP, SHA-256 checksum, and signed update feed.
v0.1.0
Rune is a native, terminal-first macOS workspace powered by Ghostty.
- Browse project files, preview and edit code, and review Git diffs and history.
- Search files, commands, branches, and recent projects through keyboard-driven palettes.
- Restore project layout, sidebar widths, and expanded folders.
- Receive signed updates through Sparkle, with manual and automatic update controls.
Requirements: Apple Silicon and macOS 26.0 or newer.
Download Rune-arm64.zip once the release build completes, extract it, and move Rune.app to Applications. This release is ad-hoc signed, not Apple-notarized, so macOS may require approval in Privacy & Security on first launch.
The build will attach the app archive, SHA-256 checksum, and signed update feed shortly.