Release Notes
App Store version history for webRios, most recent first.
v1.2.0 | Coming soon
This is the next release. It is on its way to the App Store and is not available yet. The version you can install today is v1.1.2.
Stop Running Code
- A loop that never ends no longer means restarting the app. Tap Stop, or press Cmd+. on a keyboard, and R stops where it is with your variables intact. See Stopping running code.
- Stop works for code started anywhere: the Console, the Editor, Files, History and Help examples. The Editor’s Run button becomes Stop while R runs.
- A banner in the Console and the Editor explains long runs, steps that can’t be interrupted, and code cancelled before it started, and offers Restart R when that is the way out.
- Runs never overlap. A command submitted while R is busy stays in the input field.
Whole Scripts
- Running a script prints every result, as desktop R does, instead of only the last one. Syntax errors point at the line you wrote.
- In the iPad 4-Pane Workspace, Run sends the whole script at once, so a plot and an
abline()after a blank line share one plot. - Scripts with Windows (CRLF) line endings run.
R 4.6.0
- Upgraded from R 4.5.1 to R 4.6.0, via webR 0.6.0.
- Installed packages must be re-downloaded. Packages from the previous R version are incompatible and removed automatically on first launch, and the app offers to reinstall them in one tap.
Getting Started
- An empty console suggests a few commands to run with a tap, and three example scripts are built into the Editor.
- When
library()can’t find a package, the error offers to install it.
Network Access from R
- Packages built on
curl, including httr2 and its dependents, now work and can reach any server. download.file(),url()andread.csv()can read from servers that allow cross-origin requests. See Known Issues for details on what is and is not covered.- By default, all requests go directly from your device through an on-device proxy. Nothing is relayed through a third-party server.
- If the on-device proxy can’t start,
curlrequests are blocked rather than rerouted, and the app tells you. Settings → R Session → Network can allow a public proxy as a fallback, or always. - After a long time in the background, the on-device proxy is restarted automatically if iOS closed it.
- Made possible by webR, which tunnels R’s connections through a SOCKS proxy over WebSockets. webRios supplies the on-device half.
Plots
- Plots can appear in the Console as well as the gallery (Settings > Appearance > New Plots).
- Widgets from
plotly,leaflet,DTand other htmlwidgets packages now render and appear under Interactive Plots. Previously they produced no output. - Pinned plots are kept between launches. You can pin up to 20, and pins no longer take room from new plots.
- Each plot is named after the code that drew it, for VoiceOver and as the full-size view’s title.
- Clear All asks first and keeps pinned plots. Restarting R or a low-memory warning no longer removes plots. Share sends the full-size image.
- The badge on Plots counts every plot and widget a run makes. After a run that drew several plots into an empty gallery, it could show fewer.
- The full-size view shows a plot as a card on the app’s background, with the Plot Background (White by default) as a mat around it. The Plot Background used to fill the whole screen, so in dark mode a White background, or a zoomed-in plot, could hide the view’s title and the status bar. Compare, a plot opened from the Console, and plot windows on iPad show the same card.
Editor
- Much faster on long scripts: typing, scrolling and folding no longer slow down with length.
- Tabs, split view, the output panel and Undo history survive switching screens and restarting R, and tabs are saved a moment after each change.
- Undo covers Replace, Toggle Comment, Duplicate Line, snippets, completions and Rename Variable. Find uses the system Find bar.
- Save checks whether the file changed elsewhere first, and offers Overwrite or Keep Both. Files keep their text encoding.
- Completion works from a hardware keyboard (arrows, Tab, Escape), and editor and console fonts go up to 30 pt.
- On iPad, each window has its own editor tabs.
- Fixed a crash when typing on a line containing emoji. Added auto-indent on Return, with brace expansion. Closing a tab with unsaved changes asks first.
Files and Projects
- Open R scripts, R Markdown, Quarto,
.rds/.RDataand CSV/TSV files in webRios from Files, Mail and other apps. - PDFs open in Quick Look, and
.rdsand.RDatafiles load into R. The long-press menu adds Open in Editor, Import into R, Load into R and Share. - Run Script shows the script in the Console, can be stopped, and reports its result.
- Renaming, moving or deleting a file updates open editor tabs, Recent Files, R’s working directory and Spotlight.
- Folders created under Projects become projects, and switching projects with Save Workspace on swaps R’s variables.
- Fixed a bug where opening a folder could freeze and crash the app. Affected every device on v1.1.2. New R Script no longer replaces an existing file, and the file browser can no longer navigate above your Documents folder.
Data
- The data frame viewer opens large data frames quickly, shows row names, and treats tibbles as data frames. Filtering, sorting and search run in R.
- Export as CSV saves to the current project and opens the share sheet; Export Current View saves only the rows shown.
- Compare Data Frames is back in the Environment menu.
- CSV import uses the delimiter and decimal mark it detects, and reads files in other encodings. Import to R in the CSV preview now actually loads the file.
Help
- Help pages have Back after following a link, show every section (including what a function returns), and render tables.
- See Also links open pages in packages that are installed but not loaded, and
?pkg::topicin the Console opens that page.
Packages
- Browse shows what each package does, search matches those descriptions, and the list works offline once loaded.
- Restoring saved packages at launch is several times faster.
remove.packages()also removes the saved copy. - A failed install no longer reports “Installation complete!”.
iPad
- File, Code, Run and View menus in the menu bar, with Restart R on Ctrl+Cmd+0 and each section on Cmd+1 to Cmd+8. Go to Line is now Cmd+L. See Keyboard Shortcuts.
- The 4-Pane Workspace adds Projects and History tabs and a Layout button, and its dividers follow your finger.
- Files can be opened in their own window from the file browser.
iPhone
- A new install starts in the Tab Bar layout, with the app’s own More tab for Files, Packages, Projects, History, Help and Settings.
iCloud Drive
- Syncing scripts to iCloud Drive now works. The feature was present in earlier versions but had no effect.
- Scripts appear in the Files app under iCloud Drive > webRios, accessible from any device. See iCloud Sync.
Themes
- Export custom themes as
.json. Import accepts VS Code themes with comments, shorthand colors and pasted text. - A 1.1.2 editor theme carries over: a dark theme sets the app to Dark, a light one to Light.
- When you create a theme, the line-number gutter and current-line highlight follow the Background color you pick rather than keeping the base theme’s, and the line numbers keep their contrast against it.
- The pickers in Settings > Appearance switch to the theme’s accent color as soon as you change Appearance or a theme, without a relaunch.
- Sharing a custom theme shows a small picture of it in the share sheet.
Accessibility
- Every control now has a spoken name. Icon-only buttons that VoiceOver previously read as their SF Symbol name are labeled for their action.
- VoiceOver announces run results, errors, new plots and finished installs. History, Search in Files and Code Outline rows can be opened with VoiceOver, Voice Control and Full Keyboard Access.
- Rows read their contents in one pass. Console output announces its kind, so an error reads as “Error: …” rather than relying on color alone.
- Long-press quick actions are available in VoiceOver’s Actions rotor.
- Increase Contrast raises any theme to WCAG AA, including custom and imported themes.
- Reduce Motion replaces sliding and springing with cross-fades.
- Differentiate Without Color marks console errors and warnings with a symbol as well as color.
- Larger accessibility text sizes no longer clip the editor’s output pane or overlap its tab strip, and data grids and the import wizard grow with them.
- Default Light theme colors were darkened to meet AA. The previous values (Apple’s standard fills) measured as low as 2.2:1 on white.
See the Accessibility guide for details.
Security
- GitHub tokens for gist export are now stored in the Keychain. Existing tokens migrate automatically on next launch.
Requirements
- webRios now requires iOS 26 or later.
v1.1.2 | March 2, 2026
Startup Reliability
- Fixed a bug that could cause repeated startup failures by leaking server connections on each retry
- Initialization errors are now detected and reported immediately instead of silently timing out after two minutes
Memory Pressure Handling
- The app now detects when iOS reclaims memory and shows a clear message with the option to restart R
- Plot caches are automatically trimmed when memory is low
Background Save Protection
- Workspace saves when switching apps are now protected from interruption
Other Improvements
- Packages tab added to the iPhone tab bar
- History tab and workspace settings restored
v1.1.1 | February 16, 2026
Bug Fixes
- Fixed a threading crash that could occur during startup on some devices
- Fixed function signature display showing a stray “NULL” in Variable Details
Improved Startup Experience
- Phased startup with a determinate progress bar showing real-time status
- Redesigned error screen when R fails to start, with clearer messaging and a direct “Report Issue” button
- Startup diagnostic log for troubleshooting
Feedback and Diagnostics
- Overhauled feedback system with email support and log attachments
- Separate startup log and error log viewers with copy-to-clipboard
- First-launch reset option in debug tools
v1.1.0 | February 11, 2026
Code Completion and Signature Help
- Intelligent autocomplete powered by R’s built-in completion engine
- Function argument suggestions appear when you type
(or a comma - Package completions after
::and variable completions after$ - Function signature tooltips show parameter hints while typing
- Popups auto-dismiss and follow the cursor
Customizable Keyboard Shortcuts
- Cmd+Enter to run a line, Cmd+Shift+Enter to run all, Option+Hyphen to insert the assignment arrow, and Cmd+Shift+M to insert the pipe operator
- Fully customizable in Settings
- iPad shortcut discoverability overlay when holding Cmd
Editor Improvements
- Unified context-aware Run button that runs a selection, the current line, or the entire script
- Line numbers and current line highlight toggled in Settings
- Per-tab undo and redo with toolbar buttons
- Code folding with inline previews
Plot Management
- Full-screen export flow with system share sheet
- Pin favorite plots to prevent cleanup
Data Tools
- Redesigned Data Import Wizard with full
read.csv()options - Column detail sheets with filtering, summary statistics, and charts
Workspace and Projects
- Per-project R workspace isolation
- Session persistence and working directory tracking
iPad Enhancements
- Improved four-pane layout with better sizing
- Inline help documentation in the Help tab
- Compact Environment panel
Reliability and Performance
- Restart R Session with unresponsive detection and recovery
- Hardened JavaScript interactions with improved error handling and version validation
- Fixed large package install truncation
- Security and stability improvements
v1.0.0 | January 23, 2026
Initial release of webRios! Run R directly on your iPhone or iPad.
- Full R console with syntax highlighting
- Code editor with R-specific keyboard
- Plot generation and export
- Package management (install from r-wasm.org)
- Variable environment inspector
- File management with Files app integration
- Works completely offline (no server required)