Rune is now open source
Posted by ernestrc 1 day ago
Comments
Comment by _hao 19 hours ago
Comment by sheepscreek 16 hours ago
Comment by dusted 5 hours ago
Tells us something about the age distribution on HN :D
Comment by shoo 10 hours ago
Comment by nailer 18 hours ago
You beat the minion, but to leave the area, you need to bathe in the same blood, and become corrupt like the monsters. You then return to your village, giant and powerful but no longer a person.
Comment by fineIllregister 4 hours ago
Comment by _bent 21 hours ago
this sounds like a terrible idea. the only incentive to contribute to your project should be to fix a bug or contribute a feature upstream you yourself need.
consider the fallout of Hacktoberfest, 'Tide' or the ai produced PR spam for social clout on GitHub as of today and then imagine what happens if someone provides a direct financial incentive to do it.
Comment by rao-v 22 hours ago
Could this (optionally) just run over Tailscale (I suppose ssh is always an option)
Comment by ernestrc 21 hours ago
Comment by threecheese 20 hours ago
I realized that your onboarding was also training, and that I could not do anything with Rune without going through that training, and so I immediately exited and uninstalled. The friction was much too much.
I’m not sure if the onboarding is still like that :) If it is, my feedback would be have much much lower friction to try (or warnings for those who claim to use vim :).
Comment by ernestrc 19 hours ago
> You mentioned “it’s like driving a new car” in another thread; I tried Rune in an earlier incarnation, and it was more drastic than a new car. I’m a vim user, and so enabled the Vim option in onboarding - that was a big mistake, because I literally could not do anything without using vim motions. I felt like a helpless noob on my first unix, how-do-I-exit-this-dam-text-editor.
I'm almost tempted to take this as a compliment. I personally hated every other editor's "vim mode". I wanted Rune to be more than a regular editor with vim mode. fwiw you can turn-off vim mode in the terminal (and iirc, console and agent as well) and keep it in the editor.
Comment by threecheese 16 hours ago
Good luck, I mean it.
Comment by aetherspawn 17 hours ago
It’s now really easy to spin a terminal emulator and make cross platform terminal apps that work the same on Windows, macOS and Linux regardless of users terminal. You can also make sure the term sends everything required to make the app “nice”, like mouse hover events.
I started using this paradigm for some of my own company’s apps around 3 months ago because it was neat to allow the app to spawn DWM windows for sub windows, dialogs etc. but the app can also fall back to standard TTY for using over SSH or from within a docker or any other terminal. Also, using your own terminal window gives proper taskbar integration (stacking windows) and you can set your own app name/icon.
(It’s possible to 1-shot this in Python using the prompt “use ghostling as a reference, write a terminal emulator in Python using raylib and libghostty that hosts my app” and the first pass was around half the speed of Ghostty.)
Comment by jval43 3 hours ago
What falls to the wayside are the actual and real productivity and usability improvements afforded by "real" GUI apps over the last 40-50 years.
Don't get me wrong I'm a huge terminal user and absolutely love the clarity of a terminal and flexibility of a shell. But if I have to "learn" to use a TUI app - and they're not as simple to use as their authors might believe - I might as well learn to use the full GUI app with all the niceties available because of it.
Comment by marcopolo 17 hours ago
Comment by ernestrc 1 day ago
Comment by kapilvt 3 hours ago
I’m intrigued overall by the terminal centric notion, I’ll check it out, thanks for building.
I’m curious how the remote capabilities work, I’m often / ssh/mosh into a tmux eMacs session.
Comment by lclc 4 hours ago
Comment by anigbrowl 22 hours ago
Comment by ernestrc 21 hours ago
Comment by ramon156 22 hours ago
Not because I dislike Zed, I'm just addicted to trying out IDEs :)
Comment by ernestrc 22 hours ago
Comment by dusted 5 hours ago
Comment by gregwebs 19 hours ago
I like the discoverability of the text prompt commands. I like that the terminal is more of a first class citizen. I like that I can run this with just `go run`.
The themes are pretty bad right now IMHO. I use solarized/gruvbox themes- both light and dark.
Comment by bobajeff 22 hours ago
One thing I would like to see on the home page is a video showing it being used. Also would like to see how it looks in a light theme. The repository says it's keyboard driven does that mean it's modal or can I still use it like a normal modeless editor?
Comment by ernestrc 21 hours ago
> Also would like to see how it looks in a light theme. Not great. I prefer dark themes so I haven't spent enough time making it look good on a light theme.
> The repository says it's keyboard driven does that mean it's modal or can I still use it like a normal modeless editor? There's three modes, vim, emacs and standard, which determine the key bindings not just when opening a file, but also everywhere else. https://docs.rune.build/learn/standard-editor
Comment by bobajeff 20 hours ago
Comment by pmontra 21 hours ago
Syntax highlighting? Yes, for readability. Completion? I noticed today that maybe I broke the language server for Ruby but I didn't bother to investigate. Maybe next week, or next month.
Git log, blame, diff, yes, as usual.
I don't see a bright future for IDEs. Vi or emacs from the 90s could be all we need.
Non developers using AIs to vibe code their projects maybe won't need any editor at all, nor an IDE.
Comment by ernestrc 21 hours ago
And this is just the beginning. I think there’s so much more to explore in this space.
Comment by natnatenathan 21 hours ago
Comment by ceehex 20 hours ago
Comment by natnatenathan 18 hours ago
Comment by ragchronos 17 hours ago
Comment by natnatenathan 15 hours ago
For context, I am a product manager at a big tech company who has been building side apps for fun (and profit) since the days of Palm OS. I am effectively an SDE1 with 20 years experience, who has deep expertise in a lot of obsolete tech (C, Objective-C, Perl) and some exposure to modern stuff (TS, React, Rust, Swift).
In the past year, I've been able to personally drive projects several orders of magnitude than what I could ever build myself. I'm not asking Fable to 1-shot grand theft auto, I am creating steering files, running adversarial reviews, prototyping, automating testing, and building my projects the slow way. Still, I don't write any code, just requirements and prompts and generate the rest. Our internal development teams at my company have arrived at a very similar process (much more sophisticated) by investing heavily in steering files that encode development approaches, harness and other mechanisms to automate best practices. It is getting to the point where our development process are becoming really similar, and many of the SDE do not need to review code for the majority of their deliverables, instead they are working on the framework (harnesses) and auditing. (Of course they still do look at the code because the love coding. But they usually don't need to)
Comment by lantry 20 hours ago
Comment by pmontra 19 hours ago
Comment by ceehex 20 hours ago
Comment by purpleidea 22 hours ago
Comment by ernestrc 22 hours ago
Comment by Conan_Kudo 21 hours ago
Comment by ernestrc 20 hours ago
Comment by akho 7 hours ago
Lol.
Worked after a couple of tries. Love how the pictured creepy furry pushes blame on the "administrator".
Comment by jmmv 21 hours ago
Comment by criticalfault 22 hours ago
Comment by ernestrc 21 hours ago
Comment by Arrowmaster 45 minutes ago
Comment by lovrocolic 5 hours ago
Comment by elcritch 22 hours ago
I've been building my own editor and gui toolkit, but modeled on Cocoa/OpenStep and similarly found tuning terminal performance involved more about tuning memory access and storage. That sounds somewhat similar to the experience in TFA.
Comment by melodyogonna 18 hours ago
Comment by robert-zaremba 20 hours ago
Comment by ernestrc 19 hours ago
Comment by adastra22 20 hours ago
Comment by microflash 20 hours ago
Comment by ernestrc 20 hours ago
Comment by woolion 20 hours ago
The whole write-up is quite interesting so I'll definitely try it out.
Comment by ernestrc 19 hours ago
Comment by einpoklum 20 hours ago
1. Wouldn't writing everything from scratch mean a huge waste of effort? And can they really expect to replicate a lot of functionality for C++, Java, Rust, etc. that in other IDEs relies on libraries and compilers external tools doing a lot of heavy lifting?
2. What is this quote about? :
> What has happened in parts of the open-source community over the past few years is appalling. Companies have built projects in the open, benefited from their users and contributors, and then changed the license once the project became valuable.
Comment by raggi 20 hours ago
cached null (no changes) build:
~github/unstablebuild/rune % make
pre-commit not installed; skipping git hook setup
cd cmd/buildstamp && CGO_ENABLED=1 go build -ldflags="-X unstable.build/rune/internal/debug.Tag=$(git describe --tags) -X unstable.build/rune/internal/debug.Commit=$(git rev-parse --short HEAD) -X unstable.build/rune/internal/debug.BuildDate=2026-09-11T20:16:22Z -X unstable.build/rune/internal/debug.Package=six" -o ../../bin/buildstamp
cd cmd/extension_chaos && CGO_ENABLED=1 go build -ldflags="-X unstable.build/rune/internal/debug.Tag=$(git describe --tags) -X unstable.build/rune/internal/debug.Commit=$(git rev-parse --short HEAD) -X unstable.build/rune/internal/debug.BuildDate=2026-09-11T20:16:22Z -X unstable.build/rune/internal/debug.Package=six" -o ../../bin/extension_chaos
cd cmd/extension_color_palette && CGO_ENABLED=1 go build -ldflags="-X unstable.build/rune/internal/debug.Tag=$(git describe --tags) -X unstable.build/rune/internal/debug.Commit=$(git rev-parse --short HEAD) -X unstable.build/rune/internal/debug.BuildDate=2026-09-11T20:16:22Z -X unstable.build/rune/internal/debug.Package=six" -o ../../bin/extension_color_palette
cd cmd/extension_fuzzy_search && CGO_ENABLED=1 go build -ldflags="-X unstable.build/rune/internal/debug.Tag=$(git describe --tags) -X unstable.build/rune/internal/debug.Commit=$(git rev-parse --short HEAD) -X unstable.build/rune/internal/debug.BuildDate=2026-09-11T20:16:22Z -X unstable.build/rune/internal/debug.Package=six" -o ../../bin/extension_fuzzy_search
cd cmd/extension_go && CGO_ENABLED=1 go build -ldflags="-X unstable.build/rune/internal/debug.Tag=$(git describe --tags) -X unstable.build/rune/internal/debug.Commit=$(git rev-parse --short HEAD) -X unstable.build/rune/internal/debug.BuildDate=2026-09-11T20:16:22Z -X unstable.build/rune/internal/debug.Package=six" -o ../../bin/extension_go
cd cmd/extension_python && CGO_ENABLED=1 go build -ldflags="-X unstable.build/rune/internal/debug.Tag=$(git describe --tags) -X unstable.build/rune/internal/debug.Commit=$(git rev-parse --short HEAD) -X unstable.build/rune/internal/debug.BuildDate=2026-09-11T20:16:22Z -X unstable.build/rune/internal/debug.Package=six" -o ../../bin/extension_python
cd cmd/extension_rtc && CGO_ENABLED=1 go build -ldflags="-X unstable.build/rune/internal/debug.Tag=$(git describe --tags) -X unstable.build/rune/internal/debug.Commit=$(git rev-parse --short HEAD) -X unstable.build/rune/internal/debug.BuildDate=2026-09-11T20:16:22Z -X unstable.build/rune/internal/debug.Package=six" -o ../../bin/extension_rtc
cd cmd/extension_rust && CGO_ENABLED=1 go build -ldflags="-X unstable.build/rune/internal/debug.Tag=$(git describe --tags) -X unstable.build/rune/internal/debug.Commit=$(git rev-parse --short HEAD) -X unstable.build/rune/internal/debug.BuildDate=2026-09-11T20:16:22Z -X unstable.build/rune/internal/debug.Package=six" -o ../../bin/extension_rust
cd cmd/extension_zig && CGO_ENABLED=1 go build -ldflags="-X unstable.build/rune/internal/debug.Tag=$(git describe --tags) -X unstable.build/rune/internal/debug.Commit=$(git rev-parse --short HEAD) -X unstable.build/rune/internal/debug.BuildDate=2026-09-11T20:16:22Z -X unstable.build/rune/internal/debug.Package=six" -o ../../bin/extension_zig
cd cmd/runefox && CGO_ENABLED=1 go build -ldflags="-X unstable.build/rune/internal/debug.Tag=$(git describe --tags) -X unstable.build/rune/internal/debug.Commit=$(git rev-parse --short HEAD) -X unstable.build/rune/internal/debug.BuildDate=2026-09-11T20:16:22Z -X unstable.build/rune/internal/debug.Package=six" -o ../../bin/runefox
cd cmd/sshshop && CGO_ENABLED=1 go build -ldflags="-X unstable.build/rune/internal/debug.Tag=$(git describe --tags) -X unstable.build/rune/internal/debug.Commit=$(git rev-parse --short HEAD) -X unstable.build/rune/internal/debug.BuildDate=2026-09-11T20:16:22Z -X unstable.build/rune/internal/debug.Package=six" -o ../../bin/sshshop
cd cmd/walkbench && CGO_ENABLED=1 go build -ldflags="-X unstable.build/rune/internal/debug.Tag=$(git describe --tags) -X unstable.build/rune/internal/debug.Commit=$(git rev-parse --short HEAD) -X unstable.build/rune/internal/debug.BuildDate=2026-09-11T20:16:22Z -X unstable.build/rune/internal/debug.Package=six" -o ../../bin/walkbench
make 35.90s user 5.88s system 191% cpu 21.846 total 1975848 rss
vs. cached non-null (changed) build: ~github/zed-industries/zed % touch crates/zed/src/zed.rs
~github/zed-industries/zed % cargo build
Compiling zed v1.18.0 (/home/raggi/src/github.com/zed-industries/zed/crates/zed)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.42s
cargo build 10.15s user 9.34s system 228% cpu 8.531 total 7930312 rss
Build times are a valid thing to care about and talk about, but the claims implied don't stand up to scrutiny.Comment by marcopolo 17 hours ago
On a warm build on my machine, after editing a string in Zed's `crates/zed/src/zed.rs` and editing a string in Rune's `./cmd/rune/main.go`
Zed: `cargo build --release`: 284s (debug 30s)
Rune: `go build ./cmd/rune`: 15s
note I'm using a release build in Cargo to make it a bit fairer as all builds are "release" builds in Go.
Comment by raggi 20 hours ago
I say this only because yes you can do engineering to meet the benchmark without dropping to deeper systems layers, but closing the gap on efficiency is hard. I'm not saying this to be a downer on your project - an IDE and VTE in Go are a fun project to have around, but the blog post makes implied claims of equivalence with moderate investment - but I think that's limited to single benchmark chasing. I say this as a polyglot who's day job is a Go based program that would be far easier to optimize in a systems language.
Comment by ernestrc 19 hours ago
rune --version Rune v1.2.1 (HEAD is 40bf9cc1)
Results: Only ASCII chars : 1.13s @ 177.2 MB/s Unicode chars : 1.44s @ 123.2 MB/s CSI codes with few chars : 2.95s @ 33.9 MB/s Long escape codes : 6.25s @ 125.5 MB/s Images : 2.76s @ 193.1 MB/s
/Applications/Alacritty.app/Contents/MacOS/alacritty --version alacritty 0.13.1 (fe2a3c5)
Results: Only ASCII chars : 1.97s @ 101.4 MB/s Unicode chars : 1.26s @ 140.3 MB/s CSI codes with few chars : 1.26s @ 79.3 MB/s Long escape codes : 5.22s @ 150.1 MB/s Images : 1.34s @ 399.3 MB/s
ghostty --version Ghostty 1.3.2-main-+aa21caeaa
Results: Only ASCII chars : 354.9ms @ 563.5 MB/s Unicode chars : 815.42ms @ 217.0 MB/s CSI codes with few chars : 1.23s @ 81.6 MB/s Long escape codes : 6.39s @ 122.8 MB/s Images : 680.84ms @ 783.4 MB/s
Ran just now, on a Macbook Pro M4 Max 128Gb.
Rune doesn't support the kitty graphics protocol, so ignore the Images bench results.
Comment by ernestrc 19 hours ago
Comment by vivzkestrel 11 hours ago
- what exactly is first principles?
- does everyone even agree upon what it is supposed to constitute?
Comment by purpleidea 22 hours ago
Comment by collabs 22 hours ago
Comment by p0larpatch 21 hours ago
Comment by fishgoesblub 22 hours ago