Rune 1.3 发布:新增 TypeScript、Helix 编辑器、Kitty 图形协议与 OSC-7501 支持
Rune 1.3: adds TypeScript, a Helix editor, Kitty graphics and OSC-7501
Rune 1.3 是该项目开源后的首个版本,引入了支持 Kitty 图形协议的新图形管线、内置浏览器包及 Agent 的 web_browser 工具。新版本提供 TypeScript Tier 1 支持、Helix 编辑器预设、headless 模式、可配置的 Agent 状态栏,并恢复了工作区状态。同时,修复了多项 Linux 平台和编辑器的可用性问题。
We use cookies for essential site functions, and, with your permission, for analytics. Learn more.
Customize Reject Accept
coming from
pricingpackagesblogsponsorsdocs
Rune 1.3 is released
October 23, 2026·ernestrc·10 min read
announcements release open-source
Today we are releasing Rune 1.3. This is our first release since we open-sourced Rune, and so the first with contributions from the community. Thanks to everyone that contributed to making Rune better.
In this release, we also fixed many usability issues, particularly on Linux. If your OS reserves many Super/Windows key combinations, you can now use <alt> as your <meta> modifier. For non-US keyboard layouts, you can reserve the right Alt key for entering special characters and keep the left Alt key for Rune key bindings. More on this later.
You can download it for macOS and Linux or, if you're part of the Rune family already, run console upgrade unless you installed Rune from a Debian package or the AUR. For those installations, install the new .deb or update the AUR package instead. Then update Rune's packages with console pkg update-all from the command prompt.
A new graphics pipeline
Rune 1.3 introduces a new graphics pipeline, powered by core changes to the SDK's term.Writer interface. Its new DrawImage(Image) bool method lets UI components draw images alongside text. The GUI composites them with the cell grid, with support for cropping and scaling.
Kitty graphics protocol support is the first use of this pipeline to land, bringing images from compatible terminal applications into Rune. But this goes well beyond the terminal: you can already add images to the editor and Agent status bars, with more UI customization to come. Kitty graphics is just the beginning.
The new pipeline and Kitty graphics support also power a new official browser package. Install it with pkg install browser from the Rune console, then run browser <url> to open a built-in browser and preview your localhost changes without leaving the editor.
The package also enables Rune Agent's web_browser tool. The agent gets its own private browser to inspect rendered pages, click controls, fill forms, run JavaScript, read console errors, and take screenshots to check its work. Each agent has a separate session that does not share your browser profile or logins.
Kitty graphics protocol images displayed inside Rune's terminal.
TypeScript Tier 1 (beta), JavaScript and TSX Tier 2
TypeScript now has Tier 1 support in Rune. The standalone JavaScript/JSX and TSX packages provide Tier 2 support, including symbol-index navigation without a language server. Installing the TypeScript package adds Tier 1 language intelligence for all of these dialects through the bundled native TypeScript 7 server: completion, diagnostics, navigation, rename, and formatting, with no Node.js needed to run the server. You can organize imports and apply quick fixes from the command prompt, with project-aware navigation across monorepo packages.
In the Rune console, ts check, ts install, ts run, and ts test work on the current file's project or package, using npm, pnpm, yarn, or bun as configured by the project. The integration will remain in beta until we've gathered enough feedback from the community; see the TypeScript guide for more details and please remember to join our Discord server if you have opinions about what's missing.
TypeScript code intelligence and project tools in Rune.
A new Helix editor and preset
You can now select helix as your editor when you start Rune for the first time, alongside Standard, Vim, and Emacs. The new editor and preset bring Helix's selection-first editing: see what you're about to change before you change it. Multiple selections let you edit in several places at once, regex matching lets you select and filter text, and syntax-aware selections grow or shrink around your code. See the Helix guide for the full feature set and bindings.
Select and edit text with the new Helix editor.
Headless mode
Run rune --headless on any machine, with no desktop or graphical libraries, and open its workspaces from the Rune on your laptop. It needs no configuration: when a workspace needs a language server, debugger, or other language tool the machine doesn't have, Rune asks you and installs it there, ready to use. The same works in a container, so the stock Docker image is all you need to try it (replace /srv/projects with your projects directory):
docker run -ti --rm --name rune \
--hostname buildbox \
-v rune-data:/home/rune/.rune \
-v /srv/projects:/home/rune/projects \
unstablebuild/rune
Copy
Follow the sign-in instructions it prints to bring the node onto your network. The volume keeps your sign-in and network identity between runs, so you only sign in once. See the Docker guide for running it in the background, directory permissions, and adding your project's toolchains.
To keep a machine available on your network permanently, the headless guide walks through setup with systemd, launchd, OpenRC, and runit.
A headless node joins your network and its workspaces open in your local Rune.
A better status bar for the agent
Rune Agent now has a persistent, configurable status bar. It shows the current phase, model and reasoning effort, cache usage, elapsed time, conversation name, and a gauge for context-window usage without requiring you to scroll back to an old status message, and you can decorate it with any glyphs you want or strip it down to what you care about. The examples below show the bar at rest, sending a request, reasoning, receiving a response, executing tools, and waiting for your answer. Manual /compact shows a compacting state instead of appearing idle. Layout, colors, gauges, and animated effects can be customized. You can also add custom images from local files or URLs.
Idle: the conversation's model and context remain visible.
Sending: the Agent is submitting a request.
Reasoning: a turn is thinking through its next step.
Receiving: the response is coming in.
Executing: the Agent is running tools.
Asking: the Agent is waiting for your answer.
Know what needs your attention
Rune now uses a shared status model for work running in terminals and extension tabs, including Rune Agent: working, waiting for input, done, or failed. The terminal accepts OSC 7501 reports from programs, including over SSH and in containers. programstatus shows reported statuses across workspaces with a sidebar, progress bars, and a live preview of the selected program. Open it with <ctrl->, then press to jump to a program or` to close it. Closing working or blocked programs, or files with unsaved changes, asks for confirmation.
programstatus shows what's running across workspaces.
Programs that don't emit OSC 7501 can still participate: wrap a command with runectl status wrap and Rune reports when it starts, finishes, or fails. For example, run this benchmark in a terminal, switch to another workspace, and Rune will notify you when it's done:
runectl status wrap -- go test -run '^$' -bench HandleSearch -cpuprofile=/tmp/cpu.prof
To install runectl, run pkg install runectl from the Rune console.
Workspace restoration
Reopening a workspace now brings back Agent conversations and other extension tabs, alongside the files, cursor positions, window layout, terminals, and tasks Rune already restored. Agent chats reopen in the tabs where you left them. Terminals come back with their last output; for v1.4, we are working on keeping the processes running in them alive across Rune instances.
This makes a workspace something you can put down and pick up later. Create a worktree with worktreenew, work on a pull request, and close it. When you're ready to continue, reopen it with worktreeopen and everything is where you left it, including the Agent conversation that was working on it. As more work runs in parallel, across agents, branches, and reviews, you can switch between tasks without losing the context of any of them.
A workspace reload applies the new config and restores the workspace's content.
Config-only packages
Packages no longer need an executable. A package can now ship only configuration, so you can publish a theme, a set of aliases, or your favorite bindings as a Git repository and anyone can install it from the Rune console. On install, Rune merges the package's config into yours. Anything the package sets that you haven't set takes effect right away, and values you've already customized are kept. A theme package adds its theme to your catalog, ready for guitheme.
For example, run pkg install github.com/quietdreamr/rune-theme-dracula in the Rune console, then run guitheme dracula from the command prompt to install the popular Dracula theme for Rune, which quietdreamr was kind enough to put together. To keep a theme at startup, set gui.default_theme in your config.yaml. To make your own, read the packages guide, then send us the link so we can list it on the packages page.
Install a theme package from the console and switch to it with guitheme.
Heroes of this release
Rune went open source after 1.2.1. This is the first release cycle where outside contributors have landed changes in the application. Thank you to everyone who opened a pull request, reviewed one, or reported a problem. Contributors to Rune and its packages include:
- Rajat Khanduri (@wthrajat) fixed Markdown view tab reloads.
- Ikshant (@ikshantshukla123) fixed visual-block deletion and register handling.
- @sidd190 added a Linux Standard-preset quit binding.
- Santhi Prakash (@santhiprakash) fixed the Agent compaction summary budget, Vim click handling and
cwedits, freezes caused by a blocked system clipboard, and single-cell drag selection. - @kuishou68 fixed a documentation link.
- Zhengqun Koo (@zhengqunkoo) documented kiosk mode.
- Eric Brooks (@ejb711) improved LSP portability, Windows paths and process management, terminal modal editing in Bash and Fish, compaction safety, summary cleanup, and build tooling.
- @Spandan-Mishra added the first-run telemetry choice, fixed console completion selection when using arrow keys, and made Markdown links in Agent conversations clickable.
- James Ko (@kojah) fixed resource and pipe cleanup, added GoHawk to CI, and updated it to v0.6.1 with all checks enabled.
- Tai Nguyen (@JoeJoeflyn) fixed a GUI freeze on terminal suspend signals.
- @HigherOrderLogic made exited terminals close even when unfocused.
- Matt Van Horn (@mvanhorn) stopped terminal clicks from overwriting the clipboard and moved drag-selection copying to release.
- Alexis von Glasow (@vonglasow) fixed input for keyboard-layout characters composed with Alt or Option.
- Vladimir Babin (@chiliec) fixed Vim word motions over empty lines.
- @drakeo338 fixed Space handling and empty submissions in multi-select prompts, backward-word deletion, and find/till motions in Vim visual mode.
- @quietdreamr created the Dracula theme package.
- leynebe maintains the
rune-ideAUR package for Arch Linux.
A special thanks to @zhengqunkoo for finding and reporting so many bugs, and to @Spandan-Mishra and @JoeJoeflyn for being so engaged on Discord and caring about Rune.
Also, special thanks to @ejb711 and @Bell8571 for starting a port of Rune to Windows. They are making steady progress, and we'd love more people to pitch in with testing, bug reports, and code.
More changes since v1.2.1
Added
- While a Rune Agent turn runs, its conversation tab and workspace tab animate, so you can see which workspaces have an agent working from the workspace bar. Both animations are configurable (shader, frame rate, loop duration) or can be disabled.
- Sixteen new character animations, inspired by TerminalTextEffects, can play when workspaces open or as a screensaver. Try
shaderrun matrix 5sfrom the command prompt. The screensaver starts after ten minutes without input and stops when you interact with Rune. gitshowopens the saved file's changes against HEAD in a floating, syntax-highlighted diff near the cursor.- The console's new
lspcommands show language-server status, errors, initialization parameters, and capabilities. Start, stop, or restart servers without reloading the workspace, selecting by language, backend, or project root. Trylsp statusorlsp restart go; see the language-server controls. - The file explorer starts read-only in Standard and Emacs presets. Press
<shift-esc>to edit, with hints showing the current mode and save binding. - Double-click a split divider to reset the sizes on both sides without resetting the whole layout. The file explorer returns to its default tree width, while other windows share the available space evenly.
- Terminal commands that fail now leave their tab open with the exit status and an editable view of their output. Successful exits still close the tab, even when it is not focused (@HigherOrderLogic).
- Hold Meta to underline and click URLs in the GUI. Set
meta_open_urlto use your system browser, copy links to the clipboard, or run a command such asbrowser $URL. Tabs can also be closed by clicking their icon. - The command prompt gains
<ctrl-w>to erase a word and<ctrl-u>to clear the line. - Code blocks in Agent conversations have a copy button.
- Agent chats mark user messages with gutter icons and pin a clickable preview of the preceding user message while you scroll through earlier replies. A jump-to-bottom arrow returns to the latest response and resumes following new output. The preview defaults to two lines; set
pinned_user_msg_max_linesto0in Rune Agent's config to disable it. - Click a tool call in an Agent conversation to inspect its full arguments and response, including sub-agent results.
- Choose Rune's Meta modifier with
gui.meta_key, including during first-run setup on Linux. Every Linux preset now has directional window-resize bindings, and Standard has a quit binding (@sidd190). - The terminal supports the Kitty keyboard protocol, underline colors, and pixel dimensions in resize messages.
- New installs choose whether to enable telemetry during setup (@Spandan-Mishra). Existing users can set
telemetry.enabled: falseand restart. See the telemetry guide for what Rune reports. - Agent commits can include configurable, model-aware attribution.
sponsorsopens Rune's supporters, sponsorship tiers, and GitHub Sponsors links inside the editor.- Added Debian packaging workflows, a Homebrew cask for macOS and Linux, and native Linux build and install targets. Arch Linux installation uses the community-maintained
rune-ideAUR package. Release automation now stages artifacts in a draft before publication.
Updated
programstatusidentifies each program's workspace and scrolls overflowing lists with the mouse wheel or keyboard selection. Configure its progress bars, highlights, and other appearance settings underprogram_status.- Repeated notifications from the same program in the same state replace the previous notification instead of stacking up. Working notifications track progress and close when the program leaves that state.
- Rune account tokens now use the OS keychain when available, with a data-directory fallback when the keychain cannot be used.
- Terminal clipboard access is configurable through
terminal.clipboard. OSC 52 writes remain enabled by default, but programs cannot read the clipboard unless you enableterminal.clipboard.read. - Installing a package now upgrades outdated requirements and reports each package installed or upgraded. A version selected with
pkg usestays selected until a newer version is published. - Faster startup: package checks skip installed toolchain trees, extension servers reuse a TLS certificate, terminal snapshots no longer inflate workspace listings, and storage cleanup initializes in the background.
- Recovery files now live in Rune's data directory by default. Set
editor.swap_dirtofalseto keep them beside the files you edit. - Python now asks before managing a project's environment. Its interpreter selection respects active and nearby virtual environments and PATH, and
python enableaccepts project roots for monorepos. - Python and Rust language servers limit worker threads to leave more CPU capacity for the interface. Rendering and terminal synchronization also do less work on the UI path.
- Compaction summaries use a model-aware output-token budget (@santhiprakash) and honor the conversation's
/max_tokenssetting. Anthropic and Claude requests default to the model's output ceiling. If a summary is truncated, compaction now reports an error and keeps the original conversation instead of replacing it with an incomplete summary (@ejb711). - Tutorials run in a side tile beside your workspaces, with instructions adapted to your editor preset. Prompt buttons show when pressed, and tutorial buttons highlight on hover.
- The Vim editor's canonical config value is now
editor.mode: vim. The oldmodalvalue remains a deprecated alias. - Language extensions, Rune Agent, and fuzzy search now build without cgo. Each ships as a single binary per platform that no longer depends on the build machine's C libraries, so it runs on every supported glibc and macOS release.
Fixed
- Saves no longer mark newer, unsaved edits as clean or lose external changes arriving while a file is being replaced.
- The file explorer stays usable in empty workspaces, rejects pasted icon glyphs in names, and resolves names containing
$correctly. - Vim word motions handle empty lines correctly (@chiliec), visual-block deletion preserves the unnamed register (@ikshantshukla123), and recentering works at the end of a file.
<ctrl-u>and<ctrl-.>are no longer swallowed as undo and dot-repeat. Clicking in the Vim editor no longer highlights a cell and enters visual mode (@santhiprakash). Operator ranges, register preservation, and cursor placement now more closely match Vim. - Standard editor word and line operations, clipboard behavior, and line movement now more closely match VS Code. Emacs whole-line kills honor numeric arguments, and moving or duplicating lines preserves the kill ring.
- Shared cursor motions, paste behavior, and selection redo are more consistent across the built-in editors. Mouse movement no longer clears Helix selections, interrupts Standard paste-history cycling, or breaks Emacs kill, yank, and undo sequences.
- Console completion keeps its selection when navigating with arrow keys (@Spandan-Mishra). Multi-select prompts respond to Space and no longer submit an empty selection as a cancellation (@drakeo338).
- Terminal drag selection copies on release rather than on every movement, and a click to focus no longer overwrites the clipboard (@mvanhorn). Drag selection also scrolls correctly at both edges, copied text drops line breaks added only by wrapping, and a single cell can be selected (@santhiprakash).
- Copy and paste work with terminal programs such as terminal-browser, including bracketed paste and Kitty keyboard copy shortcuts. OSC 52 primary-selection handling respects the configured clipboard permissions.
- Terminal modal editing works in Bash and Fish (@ejb711), with fixes for custom shell settings, shells in vi mode, and editing the correct line after scrolling.
- Fixed terminal scrolling regions, cursor addressing, reverse-screen mode, and control sequences that could erase scrollback or swallow output. Resizing preserves cursor positions when lines rewrap. Terminal graphics no longer draw over floating windows.
- Images and wallpapers no longer draw over animation effects. Screensaver loops no longer fade in and out on every pass.
- The GUI follows the OS keyboard layout. macOS users can choose how Option is used so layout-composed characters remain available (@vonglasow), and reserved Alt handling works on X11.
- Markdown views reload reliably (@wthrajat), lists preserve spacing and copy correctly, and wrapped URLs remain intact across punctuation.
- Extension tabs no longer render blank during stream setup. Fixed crashes after swapping windows, accidental docking of floating windows, lost fixed-tile sizes, and session-reopen prompts in newly created GUI windows. Dragging a divider in nested layouts resizes the correct split.
windowconverttabno longer creates empty wallpaper tabs, and dropping an empty floating window no longer replaces another window's content with wallpaper. - Hover highlights clear when moving between controls and windows. Command prompts, search previews, console prompts, and signature help stay within their bounds in small windows.
- Fixed UI freezes from terminal suspend signals (@JoeJoeflyn) and shell-backed alias chains, shutdown hanging on unanswered package-install prompts, and spurious errors from resizing or closing an exited terminal.
- Login recovers from expired refresh tokens,
network upcan rejoin when login is needed, and failed SSH connections clean up their resources (@kojah). - Busy language servers no longer restart just because a request write hits its deadline. Cancelling console and Agent REPL commands reaches the extension, and notifications preserve their line breaks.
- Go tests, code-lens actions, module commands, and vulnerability scans no longer get canceled when their launch request finishes. Completion fetching stays active until it finishes or its popup closes.
process auditincludes commands that failed to start and reports each process's own exit error.process statuslabels the previous run's outcome asPREV EXIT, rather than attributing it to the running process.- Done and error statuses clear when non-tab terminals are focused. Active progress notifications no longer auto-dismiss after hovering away, and later messages can replace a dismissed notification.
- Symbol navigation includes Go interface methods and refreshes cached symbols after grammar or query changes. Language-server messages match open files even when their paths use different capitalization on a case-insensitive filesystem.
- Search results no longer disappear when the query is cleared, delete the wrong entry, or reappear from an older search after the results have been reset.
- Agent summaries preserve text around
$and strip stray markup (@ejb711). - Agent sessions avoid repeatedly rereading unchanged file ranges. Matching-line content search is available again with OpenAI and Codex.
- Oversized image attachments are scaled down to supported dimensions. Reading an older part of a chat no longer makes the viewport jump when new content arrives.
- The Agent's configured
max_tokenslimit is restored after restart instead of being ignored. - Windows fixes cover PATH setup, extension sockets, data directories, process-tree management, instance-lock takeover, and the default launch mode (@ejb711). Linux release builds report the correct version and build date.
- Fixed concurrent package-install races, duplicate subscription streams, and storage followers failing to detect a lost leader.
- Closing a home-directory file or a workspace rooted at home no longer shuts down the shared home workspace and leaves its terminals failing with
context canceled. Failed file opens release file handles and workspace references, and streaming opens no longer race workspace bookkeeping. - Opening a workspace on a machine without the language package it needs now offers to install it instead of failing with “executable not found”.
- Remote workspaces get correct paths:
gui.envvariables such as$RUNE_DATADIRexpand on the workspace's host instead of at install time, and the Python extension writes its shims to that host's data directory. - OpenAI response streams no longer abort on keep-alive or data-less SSE events, which broke long turns before any output arrived.
- Fixed shell injection through arguments to typed
!and!!commands and appended alias arguments. - Error logs no longer include access tokens when a token source returns an expired token.
Removed
- Removed the
noise,trippy, andfadeshaders and several specializedshaderrunvariants. Command-prompt completion lists the available effects. - Removed the unused
models.defaultsetting. Select your default model withmodels alias set default <provider/model>instead.
See the full changes since v1.2.1 for the commit history, including documentation, tests, and build tooling.
Contributor program update
With the advent of AI, everything is speeding up considerably. Unfortunately, lawyers are not. We're working hard to iron out the details of the contributor program, and we'll share more about it soon. In the meantime, join us on Discord to get involved and help us build v1.4 and beyond.
For those of you who don't know, Unstable Build is creating a contributor program that will distribute a portion of Unstable Build's profits, and 100% of the donations we receive through our GitHub Sponsors profile, to our contributors. The rules and terms are still being defined. Subscribe to our newsletter to stay posted:
Subscribe
Written by
Founder, Unstable Build
← Older Rune is now open source
Subscribe to our newsletter
Subscribe
Product
Resources
Company
Community
Unstable Build LLC · © 2026
TermsPrivacyCookie preferences
RUNE
rune.build
main+0-0
unstablebuild
来源:Hacker News-首页 · rune.build