Pixel art: the ninja reads a glowing book in an armchair in a Speicherstadt warehouse library at night, while little robots fetch books from the shelves.

The manual · Rune 1.0

Every pane, every key.

From the first launch to agents, settings and shortcuts. Read it top to bottom, or jump in from the contents.

Contents

Chapter 1

Get started

Rune is a native macOS IDE for R. It runs the R you have installed as a separate process and gives it an editor, a console, a data viewer, interactive plots, R's help, a viewer for reports and widgets, a debugger and optional AI agents.

What you need

WhatNeeded forNotes
macOS 26 on Apple siliconRuneThe release build is arm64 only.
R 4.x from CRANEverythingHomebrew R and a custom path (Settings › R) work too.
Claude Code CLI 2.1.76 or laterAgents (optional)Uses your Claude account. Rune finds it on its own.
Pandoc and the rmarkdown packageKnitting R Markdown (optional)Rune offers to install Pandoc with Homebrew and uses the copy inside RStudio or Quarto when present.
QuartoRendering .qmd (optional)
readxl packageOpening Excel files (optional)

Your first five minutes

  1. Open a project folder with File › Open Folder… (⇧⌘O). R starts in that folder, so its .Rprofile and renv load.
  2. Make a script with ⌘N, type some R and press ⌘↩ to run the current line. The result appears in the console below.
  3. Watch the chips under the console cell: they show which objects the run added or changed. Click one to open it.
  4. Point at a name for a moment to see its hover card. ⌘-click it to open the data, the help page or the package.
  5. Press ⌘K to find any command, object, file or help topic, and ⌘0 to call the assistant.

Chapter 2

Install

  1. Download Rune-1.0.0.dmg and, if you like, its checksum file. Check the download in Terminal with shasum -a 256 -c Rune-1.0.0.dmg.sha256.
  2. Open the disk image and drag Rune onto Applications.
  3. Start Rune from Applications.

If macOS blocks the first launch

A build that is not notarized by Apple is blocked on first launch with "Apple could not verify “Rune” is free of malware". To open it anyway, once:

  1. Open Rune and click Done in that dialog.
  2. Go to System Settings › Privacy & Security, scroll to "“Rune” was blocked to protect your Mac" and click Open Anyway.
  3. Confirm with Open Anyway and your password or Touch ID.

NoteRight-click › Open used to skip this dialog. Since macOS 15 it shows the same dialog, so use System Settings. Notarized builds open without any of this.

If R is missing

Without R, Rune shows "R is not installed" with Download R (to CRAN) and Try Again. Rune looks for R in the CRAN framework, /usr/local/bin, /opt/homebrew/bin and /usr/bin. To use another R, choose it in Settings › R.

Chapter 3

The window

Every window is its own workspace with its own R session. It has three columns and a toolbar.

The Rune window: workspace on the left, an R script and the console in the middle, a plot on the right.

Left: navigator or assistant

The navigator has six tabs. ⌘0 swaps it for the assistant and back; View › Show Sidebar hides the column.

TabKeysWhat it holds
Files⌘1The project folder as a tree.
Workspace⌘2Objects in your session, and the workspace map.
Packages⌘3Installed packages: load, update, install, remove.
History⌘4Every command you ran in this project.
Debugger⌘5Call stack and variables while R is paused. The icon turns orange then.
Find⌘6Search and replace across files.

Centre: documents and console

Open documents sit in tabs. A dot marks unsaved changes; the + button makes a new R script, and its menu offers R Markdown, Quarto and Open…. Below the tabs, the jump bar shows the path and the current section or function, and its outline menu lists every section, function, chunk and heading in the file.

The console sits below the editor. Drag the divider to resize it; double-click the divider to reset it. With no document open, the console fills the centre.

Right: the inspector

TabKeysWhat it shows
Plots⌥⌘1Your plots, with history and export. The tab shows how many there are.
Help⌥⌘2R's documentation.
Viewer⌥⌘3Knitted reports, htmlwidgets, Shiny apps, HTML, PDF and images.

⌥⌘0 shows or hides the inspector.

Toolbar and activity

On the left, Run sources the script or knits a document (⇧⌘S) and Stop interrupts R (⌘.). In the middle, the activity capsule shows the project, the R version and what R is doing: running with a timer and queue, ready or failed with the last run, waiting for input, paused in the debugger, or starting.

Click the capsule for the session details: R version, working directory, process ID, object and plot counts, recent project folders, and Restart R, Interrupt and Clear Console. On the right sit the command palette (⌘K) and the inspector toggle.

Chapter 4

Editor

The editor knows R scripts (.R, .Rprofile), R Markdown (.Rmd) and Quarto (.qmd), with R highlighting inside {r} chunks. Other text files such as Markdown, JSON, YAML, SQL or Python open as plain text. Files over 50 MB are not opened.

Typing

  • Highlighting that follows light and dark mode, line numbers, the current line and matching brackets.
  • Brackets and quotes close themselves. Typing a closer steps over it, typing an opener around a selection wraps it, and Backspace removes an empty pair.
  • Return keeps the indentation. Indent with 2 or 4 spaces; Backspace inside indentation goes back one step.
  • ⌥- types <- and ⇧⌘M types |> , but not in strings, comments or Markdown text.
  • Double-click selects a whole R name, such as data.frame.

Completion and signature hints

Completions come from your live session. They appear after three letters, after $, @ and ::, and for arguments inside a call. Ask for them with ⌃Space or Tab after a name; accept with Return or Tab. After you type name(, the function's signature shows above the line until you leave the call.

Hover cards

Rest the pointer on a name in the editor, the console, the workspace list, agent replies or help pages. The card depends on what the name is:

  • ObjectWhat it was made from, what uses it, the code that made it and a preview. View, Print, Ask Analyst.
  • ColumnValues, missing, unique, mean, median, SD, range and a histogram or top values. Summary, Plot.
  • FunctionSignature and help text. Open Help, Explain.
  • PackageIts documentation index.

⌘-click a name to open it: the data viewer for an object or column, help for a function, the index for a package. The delay is set in Settings › General.

A hover card in the Rune editor showing where a data frame came from, what uses it, the code that made it and its first rows.

Running code

CommandKeysWhat runs
Run Line or Selection⌘↩The selection, or the whole statement at the caret (even across lines). The caret moves to the next statement.
Run Section or Chunk⌥⌘↩The lines between section markers, or the current R chunk.
Run to Cursor⌥⌘BEverything up to the caret's line. In R Markdown, the R chunks up to there.
Run All⇧⌘↩The whole script, or every chunk.
Source / Knit⇧⌘SSaves, then source()s the script with its breakpoints, or knits the document.

Sections and the outline

A comment ending in four or more dashes, equals signs or hashes starts a section: # Clean the data ----. Sections, functions defined with name <- function(, chunks and Markdown headings all appear in the jump bar's outline menu.

Syntax errors while you type

After a short pause, R parses the script, or each chunk, without running it. The first error gets a mark in the gutter with R's message and a squiggle under the spot. Turn it off in Settings › Editor.

Editing commands

  • Code › Comment/Uncomment Lines ⌘/, Shift Right ⌘], Shift Left ⌘[, Reindent Lines ⌃I.
  • Go to Line… ⌘L accepts line or line:column.
  • Insert Chunk ⌥⌘I in R Markdown and Quarto; inside a chunk it splits the chunk at the caret.
  • Edit › Find: find ⌘F, find and replace ⌥⌘F, next ⌘G, previous ⇧⌘G, use selection ⌘E.
  • Edit › Transformations: upper case, lower case, capitalise.

Write or change code with ⌘I

Press ⌘I and describe the code to write at the caret, or how the selected code should change. Quick actions: Explain, Document (comments and a roxygen2 header), Fix and Tidy. The change comes back as a proposal in the review bar, like any agent edit (see Reviewing edits). Esc cancels.

Chapter 5

Console

The console input is a small editor with highlighting, completion, signature hints and hover cards. It grows up to eight lines.

Typing and running

  • Return runs the input when the code is complete; otherwise it adds a line. ⇧↩ always adds a line.
  • ↑ and ↓ on the first or last line step through history. History is kept per project across launches.
  • While R is busy, what you type is queued and runs next.
  • Input goes to R only while R asks for it: readline(), menu(), scan(), askYesNo() and the debugger. A keyboard icon replaces the prompt then.
  • Switch the R | Ask control to Ask to send the line to the Analyst instead of R.

Cells

Every run becomes a cell with its code and output. Output keeps its colours (cli and crayon get 256 colours), warnings get a label, and very long output keeps the first and latest lines. Plots appear as thumbnails; click one to open it in the Plots pane. Right-click a cell for Run Again, Copy Code, Insert into Script and Copy Output.

Workspace chips

Under each cell, chips show what the run did to your workspace.

A run that adds heavy shows + heavy data.frame · 11 × 12; filtering rows shows cars 1,204 → 987 rows; removing shows − tmp. New objects show their class and size; changes show rows, columns, length, class or value before and after. Click a chip to open the data or show the object. Turn chips off in Settings › General.

Errors

An error shows as a card with the message and a folded traceback; frames with a file location are clickable. Explain asks the Tutor, Fix asks the Analyst, and Debug runs the code again and pauses where it failed.

The console with a workspace chip for fit_heavy and an error card for object weight not found, with a folded traceback and the buttons Explain, Fix and Debug.

Session

  • Session › Interrupt R ⌘., Restart R ⇧⌘0, Clear Console ⌃L, Set Working Directory… and Clear Workspace… (asks first).
  • If R quits or crashes, Rune starts it again, at most three times a minute.
  • If R takes more than 20 seconds to start, Rune offers Restart Without .Rprofile.
  • file.edit() opens the file in a Rune tab. browseURL() sends HTML to the viewer and web links to your browser.

Chapter 6

Workspace

The Workspace tab (⌘2) lists the objects in your session in three groups: Data, Values and Functions. Data frames expand to their columns, each with a type badge and its own hover card.

  • Point at an object and the others light up as its inputs or as made from it.
  • Double-click or Return opens data in the viewer and prints anything else.
  • Drag an object into the editor to insert its name, quoted when needed.
  • Right-click for View Data, Print, Structure, Summary, Debug Next Call, Describe with Analyst, Ask About This…, Copy Name and Remove.
  • The filter field at the bottom narrows the list.

The workspace map

The workspace map: fit is a source, cars is step 1, best and heavy are step 2, fit_heavy is step 3, with lines between them. The console shows chips for new objects and the plot is on the right.

The map button in the filter bar draws your objects as a graph: sources on the left, then each step that was made from them, and a group for objects with no connection. Rune records these links from top-level assignments such as x <- f(a), x$col <- …, names(x) <- … and assign(). Hover, click and right-click work as in the list.

Chapter 7

Data viewer

Open a data frame with View(x), a double-click in the workspace, View on a hover card, ⌘-click or the command palette. It opens as a tab next to your scripts.

The data viewer showing the cars data frame with a small chart in every column header and the summary of mpg on the right: 32 values, none missing, 25 unique, minimum 10.4, maximum 33.9, mean 20.091, median 19.2 and a distribution chart.
  • Paging. Rows load in pages as you scroll, so millions of rows stay quick. The header shows rows and columns, or how many rows match the filter.
  • Sort. Click a column header: ascending, descending, unsorted.
  • Filter. Type in Filter rows to keep rows that contain the text in any column.
  • Copy. ⌘C copies the selected rows with a header as tab-separated text; the column menu can copy a column as an R vector.
  • Column summary. Every header shows its type and a small chart. Open the summary for values, missing, unique, min, max, mean, median, standard deviation, a histogram or the most frequent values.
  • Describe asks the Analyst to profile the data. Reload fetches it again; open views also refresh after each run and keep sort, filter and scroll position.

Opening data files

Opening one of these files imports it into your session. The code runs visibly in the console, and the object is named after the file.

FileCode Rune runs
CSVread.csv()
TSVread.delim()
Excel (xlsx, xls)readxl::read_excel()
RDSreadRDS()
RData, rdaload()

Chapter 8

Plots

An interactive scatter plot in Rune with a crosshair and a tooltip for the nearest point.

History

Every plot goes into the Plots pane (⌥⌘1). Step through them with the arrows or the thumbnail strip; remove one or clear them all. Plots redraw at the pane's size.

Theme

Modern (the default) uses the system font, your accent colour first and quiet axes, in light and dark. Classic R draws exactly like R.app. Your own colours and par() settings always win, and files you write with png() or pdf() get plain R. Choose in Settings › Plots.

Explore a plot

For base R graphics, a crosshair shows the position in data units, and the nearest point or the bar under the pointer shows in a callout. Drag across the plot to zoom; R redraws that range. Double-click, or Reset Zoom, to go back. Double-click an unzoomed plot to open it in its own sharp window.

Save and share

  • Save as PNG…, PDF… or SVG… asks for the size in inches (the pane's size to start with) and, for PNG, the resolution: 72, 144, 300 or 600 dpi, with the pixel size shown as you choose.
  • Copy Image, or drag the plot from its edge into any app.
  • Improve under the plot asks the Plot Designer; Explain This Plot asks the Tutor.

Chapter 9

Help

The Help pane (⌥⌘2) shows R's HTML documentation from your running session, in native type and your accent colour. help(), ?, vignette() and help.start() open here.

  • Back, forward, all packages, and a search field for every installed package.
  • Every code example has Run and Copy. Examples and demos only run when you click.
  • Names in code show hover cards for what they are in your session.
  • Long indexes get an A to Z bar and a filter.
  • Links to other sites open in your browser when you click them.
The native help pane in Rune showing the documentation of lm with Run and Copy buttons on the example.

Chapter 10

Viewer and knitting

The Viewer (⌥⌘3) shows knitted reports, htmlwidgets, Shiny apps running on your Mac, and HTML, PDF and image files. Its header has Reload, Show in Finder, Open in Browser and Clear.

An R Markdown report in the editor and the knitted result in the viewer: the title Fuel economy, a table of model coefficients and a scatter plot with a regression line.

Knitting

  • Press ⇧⌘S or Run in an R Markdown or Quarto document. Rune saves it, knits it and opens the result in the viewer, with progress while it works.
  • .Rmd knits with rmarkdown::render() in a fresh environment. .qmd renders with Quarto when it is installed, otherwise with rmarkdown.
  • If Pandoc is missing, Rune offers Install Pandoc with Homebrew and knits right after, or a download link.
  • If knitting fails, the viewer says so with Knit again and Ask the Analyst to fix it.

Widgets and Shiny

htmlwidgets such as plotly, leaflet, DT or dygraphs, and Shiny apps, open in the viewer instead of your browser. Reports and widgets can load scripts from the web, for example from a CDN.

Chapter 11

Packages

The Packages tab (⌘3) lists installed packages with their version.

  • Tick a package to load it with library(); untick to detach it.
  • Install… installs from CRAN. Separate several names with spaces or commas; names from the CRAN index are suggested as you type.
  • The ⋯ menu has Check for Updates, Update All and Refresh. Packages with an update show the new version.
  • Right-click for Show Documentation, Load or Detach, Update and Remove… (asks first).
  • The CRAN mirror is set in Settings › R.

Chapter 12

Files, find and history

Files

The Files tab (⌘1) shows the project folder, or the working directory without a project. Arrow keys move and expand, Return opens, ⌘⌫ moves to the Trash after asking. Rename in place, and drag files out to other apps.

Right-click a file for Open, Import Dataset, Open as Text, Source, Open with Default App, Rename, Reveal in Finder, Copy Path and Move to Trash. Right-click a folder for New File, New Folder, Set as Working Directory and Open as Project.

Files open by type: text in the editor; HTML, PDF and images in the viewer; data files are imported; other binary files such as Office documents, archives, SPSS, Stata, SAS, Parquet or SQLite open in their default app.

Find in files

Edit › Find › Find in Files… (⇧⌘F, or ⌥⇧⌘F with replace) opens the Find tab.

  • Options: Match Case, Whole Words, Regular Expression.
  • Scope: the Project, the Open Documents or the Current File. Your home folder is never searched as a whole, and .git, renv, packrat, node_modules and hidden files are skipped.
  • Results are grouped by file; click one to jump there.
  • Replace works on one match or one file; Replace All asks first. Open documents change in the editor, and other files keep their encoding and line endings.

History

The History tab (⌘4) lists every command, newest first, with time and where it came from. Search it, double-click to put a command back in the console, or select several and insert them into your script.

Chapter 13

Debugger

Breakpoints stop inside functions.

  1. In a saved script, click the line number of a line inside a function. A red marker shows the breakpoint.
  2. Source the script with ⇧⌘S. This defines the function with its breakpoints.
  3. Call the function, from the console or another script. R stops at the line, the toolbar says Paused in debugger, and the console prompt turns into Browse[1].
  4. The Debugger tab (⌘5) shows the call stack and the variables of the current frame. Inspect anything in the console.
Rune paused in the debugger: a breakpoint on line 5 of fit-models.R, the call stack and the variables data, model, n_cyl and subset on the left, and the debug bar with next, step into, finish, continue and stop above the console.

NoteLines at the top level of a script do not stop, and neither do calls made while the script is being sourced. For those, use Debug on an error card, Session › Debug on Error, or put browser() in the code.

ActionKeysIn the console
Next lineF10n
Step intoF11s
Finish function⇧F11f
Continue⇧F5c
Stop debugging⇧⌘F5Q

The same buttons appear in a bar above the console input while R is paused. Session › Debug on Error pauses whenever an error happens, and Debug on an error card reruns the failed code to pause there. Debug Next Call on a function in the workspace steps into its next call.

Chapter 14

Assistant and agents

The assistant (⌘0) holds five agents that run on the Claude Code CLI with your Claude account. They reach your live session only through Rune's own tools; they have no file or shell access of their own.

The five agents

AgentForMay
AnalystExplores data and answers questions by running R, in small verified steps.Run code, propose edits, install packages
TutorExplains errors, output and R concepts: the root cause, then a minimal fix.Propose edits
Plot DesignerTurns rough charts into clear, colour-blind-safe figures, with ggplot2 when installed.Run code, propose edits, install packages
ReviewerChecks correctness, reproducibility and clarity, with findings by severity and line.Propose edits
ReporterWrites an R Markdown report from your session and never invents results.Run code, propose edits
The Tutor explains the error object weight not found: the cars data frame has no column weight, the column is called wt, and a corrected line with Run, Insert and Copy.

All agents look before they act, never delete or overwrite your objects unless you ask, only report results they have seen, and reply in your language.

What agents can read

Reading never runs code and never asks. Agents can list your workspace, inspect an object (str, summary, head), read data rows, look at a plot as an image, read the open script with the caret and selection, read help pages, read the recent console and list packages.

Approvals and Auto-run

When an agent wants to run code, a card asks "Run this code in your session?" with the agent's reason as a quote. You can edit the code before it runs. Run is ⌃⌘↩; Skip needs a click, and Esc does not skip.

An approval card in the assistant: Run this code in your session? Analyst says: Correlate each numeric variable with mpg, sorted by strength. Below it the code, a checkbox Always run for this conversation, and Skip and Run.

Auto-runOff by default. Turn it on for new conversations in Settings, for this conversation in the header, or with "Always run for this conversation" on a card. Rune asks before turning it on, and Return cancels. Package installs always ask.

Reviewing edits

A proposed script edit is applied in place and tinted, with a bar that says which agent suggests it and why. Accept (⌥⇧⌘↩) keeps it, Discard (Esc) restores your text. Only one edit waits at a time. Until you decide, that script does not run, source, knit or save, and autosave leaves the change out. The Reporter writes new documents the same way.

Where to call them

  • Editor⌘I, Code › Explain Selection, Review Script
  • ConsoleAsk mode, Explain and Fix on errors
  • DataDescribe on a data frame, Ask About This…
  • PlotsImprove and Explain This Plot
  • Anywhere⇧⌘L Ask the Analyst, or ask in ⌘K
  • MenuAssistant › New Conversation, Write Session Report

The conversation

The Analyst reply after running its code: a table of correlations with mpg, a short explanation of the result and the code block with Run, Insert and Copy. The new plot of mpg against weight with a regression line is in the Plots pane.
  • The gallery shows each agent with starter questions. The + in the composer attaches the script or selection, the current plot, the last error or an object.
  • Return sends, ⇧↩ adds a line, and Stop ends a reply. Code blocks in replies have Run, Insert and Copy.
  • When an agent waits for you, the assistant button shows a badge and the Dock icon bounces.
  • Under the composer: the model, what the reply cost and how much of your five-hour limit is used. Turn this off in Settings › General.

Models and instructions

In Settings › Agents, pick the default model (Opus 5.5 to start with, or Fable 5.1, Sonnet 5, Haiku 4.5) and reasoning effort, and override both per agent. Set the reply language and instructions that every agent follows. Changes apply to new conversations.

Saved conversations

Conversations are kept per project folder, up to 50, and listed in the conversation menu when the project opens. The next message continues the same Claude Code session; if Claude Code no longer has it, the agent starts fresh and says so. Approvals that were waiting come back as Skipped, and Auto-run is off. Delete Conversation… and Delete All Conversations… remove them.

Chapter 15

Command palette

Press ⌘K and type. The palette matches loosely and searches:

  • Commands, from New Script and Knit to Restart R, Install Packages… and every pane.
  • Workspace objects: data opens in the viewer, anything else is printed.
  • Files in the project.
  • Help topics.
  • Ask: send what you typed to the Analyst or the Tutor.

↑ and ↓ choose, Return runs, Esc closes.

The command palette with the query cars: commands Clear Console and Clear Workspace, the workspace object cars, the help topic cars, and Ask the Analyst and Ask the Tutor.

Chapter 16

Projects and sessions

Projects

A project is a folder. Open it with Open Folder…, Open Recent, Open as Project in the Files tab, or by dropping a folder on Rune. R starts in the folder, so its .Rprofile and renv load. If the session still has objects or is running, Rune asks before it switches and restarts R. Each project keeps its own tabs, console history and conversations, and two windows never share one project's session.

What comes back

  • The first window reopens the last project (Settings › General).
  • Open tabs come back per project. Unsaved and untitled documents are autosaved every few seconds and when Rune goes to the background, and return as modified documents.
  • Closing a window or quitting with unsaved documents asks: Save All, Don't Save or Cancel.

Files that change on disk

When you come back to Rune, unmodified documents reload by themselves. A document you have changed shows a bar with Reload and Keep Mine, and saving over an outside change asks first. Deleted files are marked and keep their text.

Encodings and line endings

Rune keeps what it finds: UTF-8 (with or without BOM), UTF-16, Windows Latin 1 and ISO Latin 1; LF, CRLF and CR line endings. The jump bar shows them when they are not UTF-8 and LF. If a character does not fit the file's encoding, Rune offers to save as UTF-8.

Chapter 17

Settings

Open with ⌘,. Defaults are in the right column.

The Agents tab of Rune Settings: default model Opus 5.5, reasoning Agent default, a model and reasoning choice for each of the five agents, and the switch Let agents run R code without asking, turned off.

General

SettingChoicesDefault
AppearanceMatch System, Light, DarkMatch System
Reopen the last project folder at launchOn, offOn
Show hover detailsInstantly, Quickly, After a pause, NeverQuickly
Clear the console when R restartsOn, offOff
Show which objects each run added or changedOn, offOn
Show cost and usage under the conversationOn, offOn

Editor

SettingChoicesDefault
Editor font size9 to 24 pt13 pt
Console font size9 to 24 pt12.5 pt
Indentation2 spaces, 4 spaces2 spaces
Wrap long linesOn, offOff
Show line numbersOn, offOn
Highlight the current lineOn, offOn
Close brackets and quotes automaticallyOn, offOn
Show syntax errors while typingOn, offOn

R

SettingChoicesDefault
R executableAutomatic, or Choose… a pathAutomatic
Package mirrorAutomatic (cloud.r-project.org), Germany, Austria, Switzerland, Posit Package ManagerAutomatic
Significant digits in output3 to 157
Startup codeR code that runs quietly each time R startsEmpty

Plots

SettingChoicesDefault
Plot styleModern, Classic RModern

Agents

SettingChoicesDefault
Default modelOpus 5.5, Fable 5.1, Sonnet 5, Haiku 4.5Opus 5.5
ReasoningAgent default, Low, Medium, High, Extra high, MaximumAgent default
Per agent model and reasoningDefault or any of the aboveDefault
Let agents run R code without askingOn, off (asks before turning on)Off
Reply languageSame as my question, Deutsch, EnglishSame as my question
Your instructionsText every agent followsEmpty
Claude Code CLI pathAutomatic, or a pathAutomatic

Chapter 18

Keyboard shortcuts

The same list lives in Rune under Help › Keyboard Shortcuts, where you can search it.

The Keyboard Shortcuts window with a search field and the Run and Editing groups.

Run and session

ActionKeys
Run line or selection⌘↩
Run section or chunk⌥⌘↩
Run to cursor⌥⌘B
Run all⇧⌘↩
Source or knit⇧⌘S
Interrupt R⌘.
Restart R⇧⌘0
Clear console⌃L

Editing

ActionKeys
Assignment arrow <-⌥-
Pipe |>⇧⌘M
Complete⌃Space, or Tab after a name
Comment or uncomment⌘/
Shift right, shift left⌘] ⌘[
Reindent⌃I
Insert chunk⌥⌘I
Go to line⌘L
Write or change code with the assistant⌘I
Open what is behind a name⌘-click

Console

ActionKeys
Run input (when complete)↩
New line⇧↩
Previous, next command↑ ↓

Find

ActionKeys
Find, find and replace⌘F ⌥⌘F
Next, previous⌘G ⇧⌘G
Use selection for find⌘E
Find in files, with replace⇧⌘F ⌥⇧⌘F

View

ActionKeys
Command palette⌘K
Assistant or navigator⌘0
Inspector⌥⌘0
Files, Workspace, Packages, History, Debugger, Find⌘1 to ⌘6
Plots, Help, Viewer⌥⌘1 to ⌥⌘3
Focus editor, focus console⌃1 ⌃2
Next tab, previous tab⇧⌘] ⇧⌘[

Debugger

ActionKeys
Next, step into, finishF10 F11 ⇧F11
Continue, stop⇧F5 ⇧⌘F5

Assistant

ActionKeys
Ask the Analyst⇧⌘L
Run or install on an approval card⌃⌘↩
Accept, discard a proposed edit⌥⇧⌘↩ Esc

Files and windows

ActionKeys
New script, new window⌘N ⌥⌘N
Open, open folder⌘O ⇧⌘O
Save, save as, save all⌘S ⌥⌘S ⌥⇧⌘S
Close tab, close window⌘W ⇧⌘W
Settings⌘,
Move to Trash (Files tab)⌘⌫

Chapter 19

Privacy and security

Rune has no analytics, crash reporting, accounts or update checks, and the app itself makes no requests to the internet. Network traffic comes from these places only.

Agents

When you use the assistant, Rune starts the Claude Code CLI, which sends your messages and everything the agent reads through Rune's tools to Anthropic: workspace summaries, data rows, plots as images, the open script, the console, help pages, the package list and the output of code it runs. Claude Code's own terms and settings apply.

  • Claude Code keeps a transcript of every conversation, including what the tools returned, in ~/.claude/projects/-Users-<you>-Library-Application-Support-Rune-Agents. Delete that folder after working with sensitive data.
  • Rune keeps its own copy per project in ~/Library/Application Support/Rune/Conversations. Remove it with Delete Conversation… or Delete All Conversations….
  • Rune serves the agent tools on 127.0.0.1 on a random port, with a token per conversation. Nothing listens on other interfaces.

Everything else

  • R: your own code, and CRAN when you install packages, open the Install sheet or check for updates.
  • Homebrew, when you let Rune install Pandoc.
  • Web content in the viewer, such as scripts that reports or widgets load. Links to other sites open in your browser.

Safeguards

  • Agents ask before running code; installs always ask; script edits wait for Accept.
  • Object and column names from your data are always quoted as R names, never run as code.
  • Messages between R and Rune carry a secret per session, so printed text cannot imitate them.
  • Help never serves files outside R, its packages and the session's temporary folder, and runs examples only when you click. R's own help server is not started.

Chapter 20

Troubleshooting

"Apple could not verify Rune is free of malware"

This build is not notarized. Follow If macOS blocks the first launch: System Settings › Privacy & Security › Open Anyway.

Rune says R is not installed

Install R from CRAN, then click Try Again. If R lives somewhere else, choose it in Settings › R; Rune flags a path that is not an executable.

R takes forever to start

After 20 seconds Rune offers Restart Without .Rprofile. Something in the project's .Rprofile, or in the startup code in Settings › R, is usually waiting.

The assistant says Claude Code is missing or too old

Rune needs Claude Code 2.1.76 or later. Run claude update in Terminal. If it is installed in an unusual place, set the path in Settings › Agents.

Knitting asks for Pandoc

Click Install Pandoc with Homebrew, or install Pandoc yourself. Rune also uses the copy inside RStudio or Quarto. Make sure the rmarkdown package is installed.

Run and Save do nothing on a script

An agent edit is waiting for review. Accept or Discard it in the bar above the editor first.

Breakpoints do not stop

Breakpoints stop inside functions. Source the script (⇧⌘S), then call the function. Top-level lines, and calls made while the script is being sourced, do not stop; use Debug on an error or browser() there.

A data file opened in another app

Formats R cannot read without a package, such as SPSS, Stata, SAS, Parquet or SQLite, open in their default app. Read them in R with the matching package.

Chapter 21

Build from source

Only the Xcode Command Line Tools are needed (Swift 6.2 or later, macOS 26 SDK). There is no Xcode project and no third-party dependency.

CommandWhat it does
scripts/build-app.shBuilds build/Rune.app, ad-hoc signed.
swift run RuneRuns from the source tree without a bundle.
swift run RuneSelfTest --with-rSelf-checks, including live checks against R.
scripts/release.shSigns, optionally notarizes, and packages the disk image with a checksum.