Rune is now open source

(rune.build)

84 points | by ernestrc 5 hours ago

19 comments

  • threecheese 29 minutes 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 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 :).

  • rao-v 2 hours ago
    I like the idea of making it trivial to work across multiple machines but I’d really prefer not to have to trust your coordination server and encryption approach etc.

    Could this (optionally) just run over Tailscale (I suppose ssh is always an option)

    https://docs.rune.build/learn/network

    • ernestrc 1 hour ago
      Yes, SSH is always an option, but it could totally work with a Tailscale network. In fact, we embed tsnet in Rune and use headscale as the coordination server, so there's nothing special about Rune's network. In the future, we're planning on adding more clients (iOS, Android), so hopefully it'll be more compelling then.
  • _bent 1 hour ago
    > we will give participating contributors a contractual right to share in the revenue generated by Rune, directly or indirectly.

    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.

  • purpleidea 2 hours ago
    (I will try this as soon as there is a package in Fedora... That's my personal subjective bar to choosing a new EDITOR. But I definitely hope this succeeds, I'm a fan so far.)
    • ernestrc 2 hours ago
      It’s a long process to get into Fedora, but we’re gonna give it a shot for sure.
      • Conan_Kudo 1 hour ago
        Since it's written in Go, you might want to reach out to the Fedora Go SIG and see if they can help you. :)
      • jmmv 57 minutes ago
        It is, but you can start with a COPR repo instead.
      • criticalfault 2 hours ago
        what about flatpak?
        • ernestrc 1 hour ago
          I've been using Arch Linux and macOS for the longest time, so I never saw the appeal with flatpak. It could be a good option until Rune is popular enough. fwiw I'm also working on a cask for homebrew.
  • robert-zaremba 41 minutes ago
    Go is my the most favourite language, so I'm happy to see a Go based editor. However this days I'm writing code mainly in typescript (for Cloudflare workers). TS is the most popular language and you guys will definitely need to prioritize TS.
    • adastra22 31 minutes ago
      Most popular in what field. Not every industry uses typescript.
  • ramon156 2 hours ago
    Lovely write-up! Will take a look at rune as an alternative to my Zed setup.

    Not because I dislike Zed, I'm just addicted to trying out IDEs :)

    • ernestrc 2 hours ago
      Thanks! We spend so many hours staring at these UIs.. I totally get it. It’s like driving a new car.
  • einpoklum 6 minutes ago
    I have a couple of questions:

    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.

  • ernestrc 5 hours ago
    Author here! The post explains some of the details behind using Go as the primary language for building an IDE. It also introduces our novel contributor program, which will distribute some of Unstable Build's proceeds amongst participating developers, as opposed to making them sign a CLA to surrender their rights to a company. Happy to answer questions!
  • anigbrowl 2 hours ago
    The open ledger and profit-sharing for contributors might be an even more interesting innovation than the IDE itself. I like my existing IDE but Rune looks very nice so I'll certainly give it a whirl.
    • ernestrc 1 hour ago
      Thanks! We're still working on the legal details, but should have something finalized in the coming weeks.
  • bobajeff 2 hours ago
    I'm always looking for new gui code editors. For me right now Vscode is still the top (and since I've been trying Lean out it's required). Zed is a very close second.

    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?

    • ernestrc 1 hour ago
      > One thing I would like to see on the home page is a video showing it being used. Fair point. I've been meaning to record a video for a while, but I hate being in front of a camera.

      > 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

      • bobajeff 25 minutes ago
        Thanks. A video of the editor itself is more what I'm thinking of. Something to show how it looks to work with it and explain what itch it's scratching etc.
  • elcritch 1 hour ago
    vtebench is just what I've been wanting! Rune looks pretty cool too. Awesome to see people working on polishing things.

    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.

  • pmontra 1 hour ago
    Claude in a terminal is becoming more and more my IDE. I use emacs to do some edits or to look at some files, but orders of magnitude less than when I wrote all the code.

    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.

    • ceehex 1 minute ago
      vim buffers also work very well with agents
    • ernestrc 1 hour ago
      That’s exactly why Rune is also a terminal multiplexer. Rune acts as a bridge between automated and manual programming. You can fuzzy-search for symbols and files and reference them right from the chat UI, without having to copy and paste. When the agent is working, it uses Rune’s symbol index and IDE-grade toolset instead of greping the codebase. It also gets compilation errors right after applying patches.

      And this is just the beginning. I think there’s so much more to explore in this space.

    • natnatenathan 1 hour ago
      I have found that I need more than this. A document viewer is critical so I can see HTML prototypes, review docs and other output and give feedback contextually inline (through a commenting system). I also need a task lists for my project/ agents so I can see where things are. I created an app like this for myself that is built around an integrated terminal, after I had the epiphany that VS Code (and VIM) were becoming the wrong tool because I am not actually spending time _writing_ the code.
    • lantry 48 minutes ago
      What about search, and "find usages", and other affordances for navigating the codebase? I know vi can search within a file, but I think with larger codebases you need something more powerful.
  • microflash 45 minutes ago
    Do I have to use Rune Network? Can it can run offline?
  • woolion 28 minutes ago
    The idea of the reverse rug-pull is fantastic, I hope it will work out! The ways people abuse open-source is appalling, yet the risible funding that goes to open-source makes thing really difficult for everyone.

    The whole write-up is quite interesting so I'll definitely try it out.

  • raggi 26 minutes ago
    The build time claim in the blog post is dubious, part of the problem is CGO isn't fast, but also if build time was really a motivator the null build path is entirely unoptimized for objects with long build times:

    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.
    • raggi 15 minutes ago
      Similar reflection, I ran `kitten __benchmark__ --render` in rune, the CPU time spent was 1:55. I ran the same in a libghostty based terminal emulator and spent 0:44 on CPU.

      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.

  • fishgoesblub 2 hours ago
    Lovely to see, this was my main gripe the last I saw it. Also great to see it under the GPLv3, and not some crap like MIT.
  • collabs 2 hours ago
    [dead]
  • purpleidea 2 hours ago
    [dead]
  • p0larpatch 1 hour ago
    [dead]