rune.build · quick start · hack on rune


https://github.com/user-attachments/assets/4ab84f7f-47c8-47af-9d32-7c69afd02669

Rune is a fast, GPU-accelerated, full-featured IDE and terminal multiplexer, suitable both for automatic and manual programming.

  • continue working from anywhere: All your Rune instances form an e2e-encrypted network of peers, powered by our headscale network. Connect to your workstation from your laptop, and to your laptop from your workstation.
  • batteries included: Production-grade language intelligence, out-of-the-box. Check the list of supported languages.
  • a new organizing model: Stay in the flow for longer. Rune's UI is a screen multiplexer that allows you to organize it freely. Nine workspace slots. Infinite terminals, tabs and windows. A built-in agent or IDE-grade skills for yours.
  • plugins and extensions: Extend Rune's functionality with official packages → or install community ones straight from a Git repository pkg install github.com/unstablebuild/rune-extension-themebuilder.
  • native application: A native graphics pipeline: OpenGL on Linux, Metal on macOS. No Electron.

install

curl -fsSL https://rune.build/install.sh | sh

development

git clone git@github.com:unstablebuild/rune.git

Then run:

go run ./cmd/rune

To create a macOS application bundle:

make rune-dmg

See prerequisites for more details.

Makefile

The Makefile has a few rules for common operations needed during development.

make                 # build all binaries into bin/
make debug           # build with the race detector and debug-only commands enabled
make clean           # remove bin/ and target/

make rune            # the editor (bin/rune)
make rune-agent      # the agent extension binary (bin/rune-agent)

# testing and code quality
make test            # run the test suite with the race detector
make test-e2e        # also run the e2e suites (requires docker)
make test-no-race    # run the test suite without the race detector
make coverage        # generate a coverage report
make lint            # run golangci-lint
make format          # run go fmt
make generate        # regenerate generated files (protobufs, mocks, docs)