arf console

eitsupi·eitsupi.arf

Alternative R Frontend — a modern R console written in Rust

arf is a modern, cross-platform R console written in Rust. It provides a rich interactive experience with fuzzy help search, intelligent history navigation, and syntax highlighting—all with fast startup times.

winget install --id eitsupi.arf --exact --source winget

Latest 0.5.0·August 19, 2026

Release Notes

Release Notes Added

  • Experimental: arf ipc session and arf headless --json now report an ipc_policy object describing the active IPC policy, including the silent-eval allowlist and whether visible requests require human approval. :info meta command shows the same information for the running session. arf ipc list remains discovery-only; use arf ipc session to inspect policy details (#316). Changed
  • Breaking: Reprex mode is now a single three-state setting (off, on, or format) instead of separate reprex and auto-format switches (#318, #319).
    • Set the startup mode with [startup] reprex, start arf in it with --reprex=<off|on|format>, and switch during a session with :reprex on|off|format.
    • Static reprex settings moved from [mode.reprex] to a top-level [reprex] table, which also gained the formatter setting.
    • format mode now passes code to the formatter over stdin instead of writing a temporary file, and supports the Arity CLI alongside the Air CLI. Air 0.9.0 or later and Arity 0.18.0 or later are supported; formatter configuration is discovered from arf's working directory.
    • formatter = "auto" (the default) prefers Air and then Arity when available. Explicit "air" or "arity" selections are strict and never fall back to the other backend.
    • If formatting fails, arf reports the formatter's stderr and does not evaluate the unformatted code.
    • The old keys and the --auto-format, :autoformat, and :format interfaces are removed without compatibility aliases. arf config check reports all removed reprex keys in a single run.
  • Breaking: History storage now has explicit persistent and volatile modes, selected with [history] mode (#314).
    • --no-history now means volatile, session-only history rather than no history: recall, search, the browser, metadata, and IPC history queries all keep working, but nothing is read from or written to disk.
    • When a persistent database cannot be opened, arf falls back to volatile history and reports why instead of silently continuing without history. :info, startup warnings, and the history_runtime object in headless JSON carry the cause.
    • history.disabled and top-level history.dir are still accepted with a migration warning when mode is omitted. With an explicit mode, disabled is ignored and reported, while top-level dir is an error.
  • Meta command classification is now stored in history (#312).
  • Experimental/Breaking: arf ipc eval without --visible now refuses R code unless every function it calls is allowlisted, so a program with access to the socket can no longer use this path to run arbitrary function calls in the session. Literals and object references still evaluate without configuration. Allow calls with [ipc.eval].allowed_functions or --ipc-eval-allow-function, or opt out for a session with --ipc-eval-unrestricted at startup. The check is syntactic, not an R sandbox (#303).
  • Experimental/Breaking: arf ipc send and arf ipc eval --visible now show the submitted code and ask for confirmation before running it in an interactive REPL. :ipc send-policy allow disables the prompt until arf restarts. Headless sessions run visible requests immediately, and the eval allowlist does not apply to either visible path (#303).
  • Experimental/Breaking: session_type is now required in session metadata. Session files written by an older arf that lack this field are no longer accepted by arf ipc list or other client commands. Such files are deleted once their process is gone and left untouched while it is still running (#317). Migration Guide If you have a configuration file from 0.4.x, apply the following changes. arf config check reports removed reprex keys, and arf warns at startup about deprecated history keys. ──────────────────────────────────────────────────────────┬─────────────────────────────────────── 0.4.x key │0.5.0 key ──────────────────────────────────────────────────────────┼─────────────────────────────────────── startup.mode.reprex = true │startup.reprex = "on" ──────────────────────────────────────────────────────────┼─────────────────────────────────────── startup.mode.reprex = true + startup.mode.autoformat = │startup.reprex = "format" true │ ──────────────────────────────────────────────────────────┼─────────────────────────────────────── mode.reprex.comment │reprex.comment ──────────────────────────────────────────────────────────┼─────────────────────────────────────── prompt.indicators.autoformat │prompt.indicators.reprex_format ──────────────────────────────────────────────────────────┼─────────────────────────────────────── history.disabled = true │history.mode = "volatile" ──────────────────────────────────────────────────────────┼─────────────────────────────────────── history.dir = "/custom/path" │history.mode = { dir = "/custom/path" } ──────────────────────────────────────────────────────────┴─────────────────────────────────────── Before (0.4.x): [startup.mode] reprex = true autoformat = true [mode.reprex] comment = "#> " [prompt.indicators] reprex = "[reprex] " autoformat = "[format] " [history] disabled = false dir = "/custom/path" After (0.5.0): [startup] reprex = "format" # "off", "on", or "format" [reprex] comment = "#> " formatter = "auto" # "auto", "air", or "arity" [prompt.indicators] reprex = "[reprex] " reprex_format = "[format] " [history] mode = { dir = "/custom/path" } # or "persistent" / "volatile" The command-line and meta command interfaces changed accordingly: ──────────────────────┬────────────────────── 0.4.x │0.5.0 ──────────────────────┼────────────────────── --reprex │--reprex=on ──────────────────────┼────────────────────── --reprex --auto-format│--reprex=format ──────────────────────┼────────────────────── :reprex (toggle) │:reprex on, :reprex │off

──────────────────────┼────────────────────── :autoformat, :format │:reprex format ──────────────────────┴────────────────────── Fixed

  • A command that prompted for input (readline(), menu(), browser()) recorded its success or failure against the answer typed at that prompt instead of against the command itself (#312).
  • A history database error while saving a command no longer aborts the session (#312).
  • Importing an arf history database now preserves session, hostname, working directory, duration, exit status, and metadata instead of only the command and timestamp (#313).
  • Re-importing a source repairs those columns on entries an earlier import left empty without replacing values already recorded (#313).
  • Importing a history database no longer writes to the source database (#313).
  • Importing a file that is not an arf history database now reports an error instead of silently importing nothing (#313).
  • macOS binaries no longer fail to start with a missing liblzma library error (#304).
  • Experimental: IPC approval prompts previously showed only the first few hundred characters of submitted code while arf ran all of it, allowing executable code to be hidden beyond the visible portion. The prompt now shows the complete submitted code with control characters escaped (#315). Install arf-console 0.5.0 Install prebuilt binaries via shell script curl --proto '=https' --tlsv1.2 -LsSf https://github.com/eitsupi/arf/releases/download/v0.5.0/arf-console-installer.sh | sh Install prebuilt binaries via powershell script powershell -ExecutionPolicy Bypass -c "irm https://github.com/eitsupi/arf/releases/download/v0.5.0/arf-console-installer.ps1 | iex" Download arf-console 0.5.0 ──────────────────────────────────────────────────┬───────────────────┬───────────── File │Platform │Checksum ──────────────────────────────────────────────────┼───────────────────┼───────────── arf-console-aarch64-apple-darwin.tar.xz │Apple Silicon macOS│checksum ──────────────────────────────────────────────────┼───────────────────┼───────────── arf-console-x86_64-apple-darwin.tar.xz │Intel macOS │checksum ──────────────────────────────────────────────────┼───────────────────┼───────────── arf-console-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum ──────────────────────────────────────────────────┼───────────────────┼───────────── arf-console-x86_64-pc-windows-msvc.zip │x64 Windows │checksum ──────────────────────────────────────────────────┼───────────────────┼───────────── arf-console-aarch64-unknown-linux-gnu.tar.xz │ARM64 Linux │checksum ──────────────────────────────────────────────────┼───────────────────┼───────────── arf-console-x86_64-unknown-linux-gnu.tar.xz │x64 Linux │checksum ──────────────────────────────────────────────────┼───────────────────┼───────────── arf-console-aarch64-unknown-linux-musl.tar.xz │ARM64 MUSL Linux │checksum ──────────────────────────────────────────────────┼───────────────────┼───────────── arf-console-x86_64-unknown-linux-musl.tar.xz │x64 MUSL Linux │checksum ──────────────────────────────────────────────────┴───────────────────┴─────────────

Installer type: zip

x64D0103B852FEF9BB6500CC301F1648ADCBADC83E5B54ECC2A8874B443852D1D15
arm647CAF471924E4B2C02A62D7574F28CA3B712021936083B4432C75863795B5894B

Details

Homepage
https://github.com/eitsupi/arf
License
MIT
Publisher
eitsupi
Support
https://github.com/eitsupi/arf/issues
Copyright
Copyright (c) 2026 arf authors
Moniker
arf

Tags

consolerrustterminal

Older versions (20)

0.4.5
x64048916F09D4F85DD3712B91096E9851AEE487B57A9C72320F627047D09319215
arm647349C258B1AEA587A0640C4A087D320C098D875880D21A427110D1C4D1AF8DD6
0.4.4
x64F9CE1ACB028B8148A04F2184B94B54664A336C8063392197C6F0297CE8D63E9D
arm644DEF8B17C362714E452E0C9DBF14436F669F85130F378D24D314D99BDCDA20C7
0.4.3
x64476138FFB7586A40728AFD0C3E360172E1EB2B145676000A447296B158BC7881
arm643287F7FF4C2B0B5E5621A3FC0BD74E923F30046450E0D2811C54535991956136
0.4.2
x64AB50192B3CB3867271948D7BB569E7659EA561B385591F4D37CF96D47DCF6477
arm6496ABB1239A793796B3F9E79777E0DDB565F6D639351D5EE4CB13F760B0FAAFB2
0.4.1
x647B5B71F0C08DE98BFE49F6642B04F4A122F13DB68EC9C1BEBD7BD760F16BEAE4
arm648C7E52F21F34D9E31FE41CF2748492EC3F194C8DAA6C2CD234BB39AD27FEA23A
0.4.0
x64A832D92CC1A4194D37D2B24E0F96BC196A6145A3B541FE673475DC5414043EB9
arm64CEC94E26445A22CE4452E34CB20502FCA50053C8A7133FEF4806868025CED926
0.3.4
x64D423F5B1A8C68CEB98F864F24AA6C654453F0611D65670FB11839BF92175E4C3
arm640C68F50FABF8669AF734FB677DD36C769099B9912735D158D6DC6653410C7417
0.3.3
x6443C3556EA68CEBD58FA44CA3BB50E203A899C3A36E4C34054E54EB3A4A5B1938
arm649E1A0D34969C9734EBA718AD5CDBD4C050C089FA5B4EC9C76096E673227055CA
0.3.2
x640D8B88E93242F31DBA711C5A5D3118E8DC8F2283140AC111D0D15DF564C55DC6
arm644C1A6C9D6875ACCDA6A6E8CE974F9B13505CD2633889EB83C3A79D2F67065D83
0.3.1
x641FB5E29F9A65B9D86F46B3325F6BC21E963EA015A456EFE6D002B00F082D1ED8
arm6421C5845CA177B7E617C088A1E4C09919364B15308A89FBB6D27A62CDF69277CA
0.3.0
x6479EE6EB6786C21C6D60FF1AEEA0B38D2525997FE5C8D4DBF3B80900B59092F2A
arm64DDD570BE003651F3B27B6433D8F611E3A8965DFBDF6F49CEEE8BD4CCC11CE07F
0.2.7
x644633EEBD432C4C7FF6BFBD0847083E267C2B4E620BDC2AF258A54259DDC08A03
arm6470A4F682B77A23BE5AEB273694A0402215A4C4A1571F02F8027946F19361C90F
0.2.6
x64A4A3DF03034AA30B80D3958A26D0FDBBA4B24E27315B46BBE95019FF2B53DA5A
arm64775BD72EDEE3F218B2AAD6783F406373FF26B02B5AA556F4D9473E99A6E93581
0.2.5
x641A406B288BDA0036B3214963DB1D3995B2D2A448D7DC097BAC03CFE4D23B8C35
arm64BC84F269525B1276B5E6918851038B848AAF7EDD6DA5FAAA82B56130B240D990
0.2.4
x640845B2B8BC10DFF5515AFBFDD69865B138A8C138B72311BE79800E6359F60B73
arm6408EED7EEB5F2129530D9C36EA81E3710B35B356D8F139F7C8CEF77DE20D87101
0.2.3
x6450C13DC1F862C09ABEF78BB0EFCF4F2F2BB6B19C481A890400615DC721FD6060
arm64088109B2CE9F7D344CEDABEAD28BCFCE874A07B509F825A705F9B6D05A99A36E
0.2.2
x6428A7A06F0C276CF96CA3B1713673C22669A76C20BF3530F53960F00417898F1C
arm64A427A7B46AD6A4F00F20AF04D8FAE2C125B0657C6F22A26AFF96F900C9FA6FA9
0.2.1
x6467DF7595292E3450F09A2752D85204E84DA455CC9E9349868B70A6DE943FBE45
arm6403E4A0A9587CBC903FDC186EAF7CD1B3AC5210C875A2455395C23A0BBB262CF1
0.2.0
x645770E79F52CBF0654F61C1E088ABC4E7CAFB17590A5ED5E907B1FE538B5B0965
arm64268DD69FF9B3BA3E184F955E3FD22E3371646538B6BDD5245F553A01681E0EC8
0.1.1
x64BF472DB9FECDD5D3C9916AAE8A6A95D306355D3B456714FADA095A7B5E5DDE8F
arm64218BDAE4381920DCC3442327E9567417ADE4BC8D1BFD15E304C57FAE38D621B4