red

codersauceMIT活跃维护

用 Rust 写的 Vim 风格模态文本编辑器,内置 AI 编码 Agent 和 LSP 支持,适合想要 Neovim 式操作又需要 AI 辅助写代码的开发者。

:memo: Vimlike Modal Text Editor in Rust

v0.12.0发布于 2026-11-07 18:21 UTC288star +12 / 7 天19fork同步于 2026-11-10 12:02 UTC

怎么上手

由 README 提炼,执行前请确认
brew install codersauce/tap/red
硬件要求按 README 说明

README 未说明硬件要求;为自包含 Rust 二进制,在终端中运行,Nix flake 支持 x86-64 Linux、ARM64 Linux 与 Apple Silicon macOS

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

Rust 写的 Vim 风格终端编辑器,把 Codex 编码代理接进编辑器里干活

用 Rust 写的 Vim 风格模态文本编辑器,内置 AI 编码 Agent 和 LSP 支持,适合想要 Neovim 式操作又需要 AI 辅助写代码的开发者。

核心能力

  • 保留 Vim 模式、动作、操作符与文本对象
  • 代理通过编辑器事务读写缓冲区,能看到未保存改动与诊断
  • Space i 对选区或所在函数做内联审查、解释与重构
  • 内置 Tree-sitter 高亮与多语言 LSP 默认配置
  • macOS/Linux 支持可分离会话,断连后保留缓冲区与 LSP 状态

容易踩的坑

代理功能为可选,需另装 Codex CLI 0.144.1 或更新版本并完成 codex login;Scoop 安装的包提供的是 red-editor 命令而非 red;v0.8.2 之前安装或手动解压的版本需重跑官方安装脚本才能启用自动更新

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.12.0
  1. v0.12.0Red Editor v0.12.0最新正式版2026-11-07 · 2026-11-07 18:21 UTC

    Red v0.12.0: Find in Files without ripgrep, and new ways to install Red

    Red v0.12.0 bundles FFF for Find in Files, so project-wide search works on a fresh install with nothing else on PATH, and both search pickers now show which filters are on. Red can also be installed with Nix, Scoop, or a DEB or RPM package.

    Highlights

    • Improved: Find in Files without ripgrep. Space g searches with FFF built into Red instead of launching rg, so it works on a fresh install with no external tools and an empty process allowlist. A background index skips files that cannot match, ignore rules are checked on every query, and the first matching line appears as soon as it is found. On Red's own checkout on macOS, a typical search completes in 11 ms, against 22 ms with rg. Smart case, regex and literal search, and Unicode-correct jumps to the match all work as before.
    • New: See which search filters are on. When a filter changes what a picker searches, its name appears on the picker's footer line, next to the result count: +hidden and +ignored after Alt-h and Alt-i in Find in Files or Ctrl-e in the file picker, +symlinks after Alt-f, and literal when Alt-r turns regex off. Default settings show nothing, so the footer stays clear until a filter is on.
    • New: Install with Nix, Scoop, DEB, or RPM. nix run github:codersauce/red runs Red from its flake on Linux and Apple Silicon macOS. On Windows, scoop bucket add codersauce https://github.com/codersauce/red and then scoop install codersauce/red-editor. Each release now includes DEB and RPM packages for x86-64 Linux. These packages install the command as red-editor, so it does not clash with the red command from GNU ed.

    What's Changed

    Features

    • picker: Show active search filters as divider badges by @fcoury in #440
    • search: Bundle FFF for Find in Files by @fcoury-oai in #438

    Documentation

    • release: Write the v0.12.0 campaign by @fcoury in #441

    Other

    • Add Nix, Scoop, DEB/RPM and AUR packaging by @fcoury in #439

    Contributors

    • @fcoury in #442
    • @fcoury-oai in #438

    Installation

    Homebrew

    brew install codersauce/tap/red
    

    macOS

    curl --proto '=https' --tlsv1.2 -fsSL https://getred.dev/install.sh | sh
    

    Linux

    curl --proto '=https' --tlsv1.2 -fsSL https://getred.dev/install.sh | sh
    

    Windows

    irm https://getred.dev/install.ps1 | iex
    

    Install Codex separately and run codex login to enable agent support.

    Checksums

    Download SHA256SUMS.txt from this release to verify archives. Its signature, SHA256SUMS.txt.minisig, verifies with minisign:

    minisign -Vm SHA256SUMS.txt -P RWRNnsasbTdAjgpMwO4feHrX57Rr4uPupGSKZxVZRDTi3IuRON8kF3hE
    

    Full Changelog

    https://github.com/codersauce/red/compare/v0.11.1...v0.12.0

  2. v0.11.1Red Editor v0.11.12026-11-05 · 2026-11-05 04:41 UTC
    查看更新说明

    Red v0.11.1: Faster cursor movement, and Markdown images that stay put

    Red v0.11.1 is a performance release. Moving the cursor redraws only the rows that changed, and Markdown images already on screen are reused instead of sent to the terminal again while you type and scroll. It also fixes a Windows startup problem and a scrolling edge case.

    Highlights

    • Improved: Faster cursor movement. Indentation guides are reused while the cursor stays in the same scope, and a cursor move redraws only the rows that changed since the last frame. Median latency for moving within the screen fell from 1.76 to 0.98 ms on macOS, and p95 fell from 1.82 to 1.15 ms on Linux. Scrolling p95 on Linux fell from 2.47 to 2.20 ms.
    • Improved: Markdown images stay on screen while you edit. An image already drawn is reused while you type, move the cursor, or scroll, instead of being encoded and sent to the terminal again. In Kitty-protocol terminals, an image entering or leaving the view no longer makes Red upload the others again.
    • Improved: Steadier on Windows and with wrapped lines. On Windows, the terminal's reply to Red's graphics check no longer arrives as keystrokes at startup. With scrolloff set and long lines wrapping, moving into the top margin scrolls up exactly one row.

    What's Changed

    Performance

    • Reduce cursor redraw work and benchmark native editor navigation by @fcoury-oai in #436
    • Reuse Markdown image pixels during editing and scrolling by @fcoury-oai

    Contributors

    • @fcoury in #437
    • @fcoury-oai in #436

    Installation

    Homebrew

    brew install codersauce/tap/red
    

    macOS

    curl --proto '=https' --tlsv1.2 -fsSL https://getred.dev/install.sh | sh
    

    Linux

    curl --proto '=https' --tlsv1.2 -fsSL https://getred.dev/install.sh | sh
    

    Windows

    irm https://getred.dev/install.ps1 | iex
    

    Install Codex separately and run codex login to enable agent support.

    Checksums

    Download SHA256SUMS.txt from this release to verify archives. Its signature, SHA256SUMS.txt.minisig, verifies with minisign:

    minisign -Vm SHA256SUMS.txt -P RWRNnsasbTdAjgpMwO4feHrX57Rr4uPupGSKZxVZRDTi3IuRON8kF3hE
    

    Full Changelog

    https://github.com/codersauce/red/compare/v0.11.0...v0.11.1

  3. v0.11.0Red Editor v0.11.02026-11-03 · 2026-11-03 18:33 UTC
    查看更新说明

    Red v0.11.0: Markdown that reads like the document, and a new way to explore code

    Red v0.11.0 shows Markdown the way it reads: tables as grids, links without their URLs, and images right in the buffer, while every line stays editable source. Code explore is a new reading mode that follows names, dims a function to the calls that matter, and keeps a trail of where you have been, without sending your code to a model.

    Highlights

    • New: Markdown that reads like the document. Pipe tables draw as aligned grids, and link URLs, emphasis markers, and backticks take no space, so paragraphs wrap on the words you see and gj and gk move over them. The file never changes: move onto a line, or enter Insert or Visual mode, and that line shows its raw Markdown. :markdown-tables and :markdown-conceal toggle each split.
    • New: Images in your Markdown. A line that holds only ![alt](path) shows the picture in the buffer, at full resolution in Kitty, Ghostty, WezTerm, iTerm2, and Sixel terminals, including through Herdr, Zellij, and tmux passthrough, and as smoothed block characters elsewhere. Moving onto the line shows its source above the picture without shifting the text below, and scrolling crops the image instead of squashing it. Set markdown_images to choose the protocol or turn it off.
    • New: Follow links and tick tasks. gx follows a link to a web page, a local file, a heading, or a file:line reference, and Ctrl-o comes back. Ctrl-w x opens a link in a split beside the document and reuses that split for the next link. gT toggles a task checkbox as one undoable edit.
    • New: Explore code without asking a model. Space e e opens Code explore: a sidebar that follows the cursor with the enclosing function, the name under it, its definition, and its matches. Space e f follows a name, Space e s dims a function to the calls into your project and the system, and Space e d and Space e b jump to a definition and back along a review trail. The error list moved from Space e to Space D.
    • Improved: Change any setting for one launch. red -c theme=onedark.json -c languages.rust.indent_width=2 sets dotted keys for a single run, and quotes are optional for plain words. Later flags win, a mistyped key suggests the closest setting, and red --print-config shows the merged result.
    • Improved: Scrolling that remembers its distance. A count before Ctrl-d or Ctrl-u sets how far later presses move, as in Vim, until the window is resized. Ctrl-y and Alt-e scroll the view one line and leave the cursor in place.
    • Improved: Steadier under failure. A language server that fails or is missing no longer interrupts editing, an update retries when macOS still reports the new binary busy, and a saved Agent conversation is found again on macOS workspaces under /var and /private/var. Intel Mac builds now come from Intel runners.

    What's Changed

    Features

    • editor: Add a deterministic code explore mode by @fcoury in #426
    • editor: Remember counted half-page scrolling by @fcoury in #432
    • editor: Render markdown images inline by @fcoury in #430
    • cli: Override config with repeatable -c key=value flags by @fcoury in #431
    • editor: Wrap markdown lines on concealed text by @fcoury in #429
    • markdown: Render tables and follow links in the editor by @fcoury-oai in #424

    Bug Fixes

    • explore: Call a called method a call, not a field by @fcoury
    • ci: Build Intel macOS artifacts on Intel runners by @fcoury in #428
    • deps: Update audited dependencies to patched releases by @fcoury in #427
    • markdown: Reuse grapheme counts in table layout by @fcoury-oai
    • editor: Keep lsp failures from aborting editing by @fcoury-oai in #423

    Documentation

    • Prepare the v0.11.0 release around Markdown and Code explore by @fcoury in #433

    Tests

    • lsp: Wait for server exit before checking failure by @fcoury-oai

    Contributors

    • @fcoury in #434
  4. v0.10.0Red Editor v0.10.02026-10-23 · 2026-10-23 18:31 UTC
    查看更新说明

    Red v0.10.0: Pick up any Codex conversation, and updates that install themselves

    Red v0.10.0 keeps Agent conversations going across relaunches, lets you resume or continue any previous Codex session from the Agent pane, and makes agent edits gentler on your work. Updates now install in the background with signed checksums, and copying works over SSH, Herdr, and tmux.

    Highlights

    • New: Pick up a previous Codex conversation. Press Alt-s in the Agent pane, or run :AgentSessions, to browse previous Codex sessions from Red, this workspace, or all of Codex, switching with Tab. Type to search titles, then conversation text; Alt-p peeks at the latest exchange. A Red session from this workspace resumes in place, and any other conversation continues in a new thread with its recent history.
    • New: Keep the conversation after a relaunch or a crash. Quitting and reopening Red in a workspace resumes the same Codex thread instead of starting over. If Codex stops in the middle of a reply, the pane keeps what streamed, holds queued follow-ups, and asks whether to retry, continue, or leave it. Only one editor can drive a workspace's conversation at a time.
    • Improved: Install updates in the background. Official standalone installations now install a new stable release in the background, verified like red update, and new sessions use it. Release checksums are signed with minisign, and the updater checks the signature before installing. Set [updates] mode = "notify" to install yourself, or "off" to stop checking. Homebrew and source builds keep their own update process.
    • Improved: Agent edits that respect your work. Agent edits change only the lines they need, so your cursor and view stay put and one u undoes the whole edit. When the agent edits a buffer with unsaved changes, Red asks before saving them. :AgentHistory shows readable diffs across every file the agent touched.
    • Improved: An Agent pane that fits your terminal. The Agent pane now opens on the left, beside the file tree, and sizes itself to the terminal; on a narrow one it takes the whole screen while you use it. Sessions, New, and Clear sit under the composer, and a turn that fails on its own offers Retry and Continue.
    • New: Copy over SSH, Herdr, and tmux. Yanks, transcript copies, and plugin clipboard writes reach your local clipboard through OSC 52 when Red runs over SSH, inside Herdr, or in tmux, and use the native clipboard on a local desktop. Set [clipboard] backend to override the choice.
    • Improved: Messages that need your attention. :messages is now an inbox of problems that need you, such as a failed save or a file changed on disk, and each one clears when it is fixed. Routine feedback stays in the status line, and shell and update output moved to :jobs.
    • Improved: Finish the Essentials lessons. All four Essentials lessons in :learn now run, covering editing, finding commands, and saving a practice file. Red remembers your progress, and :learn next, :learn restart, and :learn quit move you through it without touching your project.

    What's Changed

    Features

    • messages: Keep only actionable issues in the inbox by @fcoury-oai in #418
    • clipboard: Forward copies through Herdr and SSH by @fcoury-oai in #417
    • agent: Resume previous conversations by @fcoury-oai in #414
    • learn: Complete the essentials track by @fcoury-oai in #413
    • agent: Make the pane fit any terminal and feel friendlier by @fcoury
    • agent: Minimal agent edits, ask before saving unsaved work, readable history by @fcoury
    • agent: Resume conversations on relaunch and ask after a mid-turn crash by @fcoury
    • agent: Track turn phases, scope terminal events to turns, and surface turn state by @fcoury
    • update: Sign release checksums and install updates automatically by @fcoury

    Performance

    • history: Find a transaction to revert without cloning the tree by @fcoury
    • history: Cap wor
  5. v0.9.1Red Editor v0.9.12026-10-15 · 2026-10-15 20:17 UTC
    查看更新说明

    Red v0.9.1: More reliable completion, symbol search, and plugins

    Red v0.9.1 fixes completion after punctuation and keeps large language-server results from stopping plugins. It also makes plugin failures easier to diagnose and improves terminal command output.

    Highlights

    • Improved: Keep member completion working as you type. Typing through a completion and continuing with punctuation preserves the period and requests members after the updated text reaches the language server. Late completion responses no longer discard punctuation or dismiss the new member menu.
    • Improved: Search large symbol lists without stopping the plugin. Large symbol and reference results are trimmed to fit the receiving plugin's memory budget, with the original count retained for truncated-result messages. Other oversized request results produce a warning rather than stopping the plugin. Shared arrays and maps are counted once against the Husk heap while new copies still respect the limit.
    • New: Inspect plugin state and understand startup failures. Run :plugin-status to inspect plugins in the current editor session, including starting, active, disabled, and quarantined states. Startup notices explain pending commands, executable failures retain their cause, and commands from stopped plugins explain why they are unavailable.
    • Improved: Read terminal command output more easily. Plugin lists and catalog results use aligned columns measured in terminal display width, including Unicode text. Utility commands share consistent styling, and closed output pipes exit quietly.

    What's Changed

    Features

    • plugins: Show each plugin's session state and report RPC startup by @fcoury in #400
    • cli: Style utility command output with shared CLI helpers by @fcoury
    • cli: Style plugin tables with shared ANSI helpers by @fcoury

    Bug Fixes

    • husk: Charge shared arrays and maps once against the plugin heap by @fcoury in #399
    • plugins: Trim or drop request results too large for a plugin's heap by @fcoury in #398
    • plugins: Surface quarantined-command explanations from any focus by @fcoury
    • plugins: Tell the user when a plugin is quarantined by @fcoury
    • lsp: Keep large symbol results from exhausting the lsp_symbols heap by @fcoury
    • cli: Measure table cells in terminal display columns by @fcoury
    • cli: Exit quietly on closed stdout and silence eh_frame linker note by @fcoury
    • cli: Align plugin catalog and list output into padded columns by @fcoury
    • completion: Clear the snapshot when rejecting a stale accept by @fcoury
    • completion: Preserve punctuation during deferred resolution by @fcoury-oai

    Documentation

    • plugins: Add Node.js JSON-RPC example and align host API 0.19.0 by @fcoury

    Tests

    • update: Retry lock reacquisition after releasing the session lock by @fcoury

    Contributors

    • @fcoury in #401
    • @fcoury-oai

    Installation

    Homebrew

    brew install codersauce/tap/red
    

    macOS

    curl --proto '=https' --tlsv1.2 -fsSL https://getred.dev/install.sh | sh
    

    Linux

    curl --proto '=https' --tlsv1.2 -fsSL https://getred.dev/install.sh | sh
    

    Windows

    irm https://getred.dev/install.ps1 | iex
    

    Install Codex separately and run codex login to enable agent support.

    Checksums

    Download SHA256SUMS.txt from this release to verify archives.

    Full Changelog

    https://github.com/codersauce/red/compare/v0.9.0...v0.9.1

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    red

    CI Plugin System Check Release Latest release License: MIT Discord

    The Vim-style terminal editor where your coding agent works through your editor.

    Vim muscle memory, editor-aware Codex agents, focused inline assistance, and modern code intelligence in one self-contained Rust binary. Red works without configuration; optional agent support requires an installed, authenticated Codex CLI.

    Website · Download · Getting started · Documentation · Community

    The current documented release is v0.12.0.

    Red editing its Rust rendering pipeline with the project tree open

    Install

    Homebrew

    brew install codersauce/tap/red
    

    Nix

    Run Red directly from this repository:

    nix run github:codersauce/red
    

    To install the red-editor command in your profile, run nix profile add github:codersauce/red. The flake supports x86-64 Linux, ARM64 Linux, and Apple Silicon macOS.

    Scoop

    scoop bucket add codersauce https://github.com/codersauce/red
    scoop install codersauce/red-editor
    

    Run red-editor to open the editor. Use scoop update red-editor to upgrade.

    macOS and Linux

    curl --proto '=https' --tlsv1.2 -fsSL https://getred.dev/install.sh | sh
    

    The installer selects the correct macOS or x86_64 glibc Linux archive, verifies its published SHA-256 checksum, installs to ~/.local/bin, and runs Red's built-in self-check.

    For native x86-64 Linux packages, download the DEB or RPM from a Red release that includes it, then install the downloaded file with the command for your distribution:

    sudo apt install ./red-editor_*_amd64.deb
    # Fedora
    sudo dnf install ./red-editor-*.x86_64.rpm
    

    Both packages provide the red-editor command.

    Windows

    irm https://getred.dev/install.ps1 | iex
    

    The PowerShell installer verifies the release checksum, installs to %LOCALAPPDATA%\Programs\Red\bin, and adds that directory to your user PATH.

    To pin a release or choose another directory:

    RED_VERSION=0.12.0 RED_INSTALL_DIR="$HOME/bin" \
      sh -c "$(curl --proto '=https' --tlsv1.2 -fsSL https://getred.dev/install.sh)"
    

    You can also download a prebuilt archive or build from source. Red's editor, default configuration, themes, and plugins are bundled into the executable.

    Official standalone installations can check or install the latest stable release:

    red update --check
    red update
    

    Inside the editor, use :update or Update Red in the command palette. By default Red checks once per day and installs a newer stable release in the background after verifying its signed checksums; running sessions keep their version until restarted. Use your package manager to upgrade packaged installations. For Homebrew, run brew upgrade codersauce/tap/red. For source builds, use your existing build process. If you installed Red before v0.8.2 or extracted an archive manually, rerun the official installer once into the same directory to enable managed updates. See Updating Red for migration commands, restart behavior, and switching to notify-only or disabling automatic checks.

    Agent support is optional. It requires Codex CLI 0.144.1 or newer and a completed codex login.

    Why Red

    • Keep your Vim muscle memory. Familiar modes, motions, operators, text objects, splits, and keyboard-first pickers work alongside Tree-sitter and LSP.
    • Give your agent the real editor. Codex sees open buffers, unsaved changes, diagnostics, and selections. Its validated edits pass through Red's editor transactions and save paths instead of modifying files behind the editor.
    • Ask right where you are. Inline assistance reviews, explains, or refactors an exact selection or enclosing function; code changes stay unsaved and undoable.
    • Keep the whole workflow in your terminal. File search, language servers, a full Git workspace, plugins, themes, and sessions are bundled with Red.
    • Reconnect without losing your work. On macOS and Linux, detachable sessions retain buffers, plugins, LSP state, and running agents across terminal or SSH disconnects.

    New in v0.11.0

    A Markdown file in Red with hidden link markup, an inline chart, and a rendered table

    • Markdown that reads like the document. Tables draw as grids, link URLs and emphasis markers take no space, and images appear in the buffer at full resolution in terminals that support graphics. Move onto a line to edit its source. See the Markdown guide.
    • Follow links and tick tasks. gx opens files, headings, and file:line references, Ctrl-w x keeps the document beside them, and gT toggles a task.
    • Explore code without asking a model. Space e e opens a sidebar that follows names, dims a function to the calls that matter, and keeps a trail back. See Code explore. The error list moved to Space D.
    • Change a setting for one launch. red -c theme=onedark.json sets any dotted key for a single run.

    See the release notes for everything else.

    First five minutes

    Open a file:

    red path/to/file
    

    The first interactive launch offers a guided tour, release highlights, and an immediate exit into the editor. The tour uses a disposable practice buffer and safe Git/agent demonstrations; reopen it with :welcome or :tutorial. Starter configuration remains optional: embedded defaults, plugins, and themes are enough to begin editing.

    KeyAction
    Space ?Discover commands and their effective keymaps
    Space mBrowse notifications and recent messages
    Ctrl-pFind a file with fuzzy search and live preview
    Ctrl-e, then /Open the file tree and search files or directories
    Space GOpen the Git status workspace
    Space AAsk the agent with editor context
    Space iReview, explain, or refactor the enclosing function or exact selection
    Space tBrowse themes with live preview

    See Getting started for editing, navigation, configuration, language servers, Git, CLI, and troubleshooting guidance. The Vim compatibility matrix is the precise, versioned behavior contract.

    Agents that understand your editor

    Red preparing a contextual agent prompt over the active source file

    The full Agent workspace

    1. Ask. Press Space A; Red provides a bounded source excerpt, current selection, relevant diagnostics, and authoritative unsaved buffer contents.
    2. Work through the editor. Codex reads and changes files only through Red's workspace-confined, revision-checked editor tools. Agent edits are attributed to their conversation and saved to disk through Red.
    3. Keep the conversation. Follow tool progress, queue another request, and resume the same conversation without losing editor context. Source-linked annotations turn explanations into navigable code walkthroughs.

    File-tool playback is optional and disabled by default; set [agent] follow_tool_calls = true to reveal each target and pause before the operation. Full Agent writes still save to disk.

    Focused inline assistance

    Press Space i to review, explain, or refactor the enclosing function, falling back to the current line when syntax is unavailable. In Visual or Visual Line mode, the target is exactly the selected text. Requests use an ephemeral Codex thread with bounded read-only project context; visual-block targets are not supported. Inline code edits form one unsaved, undoable editor transaction.

    An exact-target edit may apply immediately when its original popup is in the foreground; set [agent] auto_apply_inline_edits = false to review it first. Background results and wider same-file proposals always require an explicit review and approval. Use Space H to revisit inline history or A to prepare a full Agent follow-up without sending it automatically.

    The agent workflow and safety contract explains prerequisites, path protections, exact boundaries, commands, and failure modes.

    What Red ships today

    The current release includes:

    • Normal, Insert, Visual, Visual Line, Visual Block, and Command modes with expanding Vim motion and editing compatibility
    • tree-sitter highlighting for Rust, Markdown, JavaScript, TypeScript/TSX, JSON, TOML, YAML, Bash, PowerShell, Lua, and Husk
    • a first-party Husk language server plus built-in LSP defaults for Rust, TypeScript/JavaScript, Markdown, JSON, TOML, YAML, and Lua
    • command and keymap discovery, fuzzy files, buffer navigation, symbols, references, project search, and diagnostics
    • native Git gutter signs, hunk actions, and a full-screen workspace for staging, commits, Codex-generated commit messages, branches, remotes, stashes, logs, and rebases
    • a persistent full Agent workspace and bounded inline assistance with source-anchored comments, retained history, and reviewable local edits
    • an embedded Husk runtime with bundled file tree, search, Git, progress, inlay-hint, symbol, theme, and agent plugins
    • a branded startup splash, the Red theme, accessible selection and cursor contrast, and optimized rendering hot paths
    • atomic crash recovery on every platform and detachable sessions on macOS and Linux

    See the latest release notes or the complete changelog for details.

    After installing a new version, Red opens a themed What’s new panel once. Reopen it whenever you like with :whats-new, :changelog, or the command palette. Release notes are bundled for offline use and refreshed from the exact matching GitHub release in the background.

    Configuration

    Red layers your settings over embedded defaults, so a configuration file can contain only the values you want to change:

    # ~/.config/red/config.toml
    theme = "red.json"
    scrolloff = 8
    # Disable the automatic release panel or its optional GitHub refresh:
    # show_whats_new = false
    # fetch_release_notes = false
    
    [updates]
    # "auto" installs new stable releases in the background, "notify" only announces
    # them, and "off" disables the daily check.
    mode = "auto"
    
    [search]
    ignorecase = true
    smartcase = true
    
    [keys.normal]
    "Ctrl-s" = "Save"
    

    The commented default_config.toml documents every setting that ships with Red. Custom themes go in ~/.config/red/themes/, and custom Husk plugins go in ~/.config/red/plugins/. Run red --runtime-files to see every visible runtime asset and its source.

    Override settings for a single launch with repeatable -c or --config flags. The key is a dotted path. The value is TOML, and a value that is not valid TOML is used as a plain string, so ordinary words do not need quotes. Later flags win. --config-override is the same flag and still accepts a TOML document.

    red -c theme=onedark.json -c languages.rust.indent_width=2 src/main.rs
    red -c 'disabled_plugins=["indent_guides"]' -c 'search={ignorecase=true}'
    red --print-config -c scrolloff=8
    

    Precedence, from lowest to highest:

    1. Embedded defaults
    2. config.toml ($XDG_CONFIG_HOME/red/config.toml, or ~/.config/red/config.toml)
    3. -c / --config / --config-override

    Red does not read configuration from an environment variable. XDG_CONFIG_HOME only chooses the directory that contains config.toml. red --print-config prints the merged result, and :config-diagnostics lists startup overrides next to any configuration problems. :set relativenumber still toggles that option for the current session after startup.

    Markdown reads like the rendered document and edits as source. In Normal mode, pipe tables draw as aligned grids, link URLs and emphasis markers are hidden so paragraphs wrap on the words you see, and a line holding only an image shows the picture in the buffer, at full resolution in Kitty, Ghostty, WezTerm, iTerm2, and Sixel terminals. Move onto a line and its raw Markdown comes back. gx follows links to files, headings, and file:line references, Ctrl-w x keeps the document open beside what it links to, and gT toggles a task. See the Markdown guide.

    Add new highlighting, exact filenames, comment syntax, indentation, and language servers through a unified [languages.<id>] configuration or an installable language pack. Native Tree-sitter grammars require explicit digest-bound trust; :languages reload applies validated changes without restarting the editor. See the language extensions guide.

    Husk language

    The source tree contains the extracted Husk embedding API, standalone CLI, local package resolver, and portable WebAssembly Component extension runtime. Start with the language and embedding guide. The research and implementation plan and card-by-card status explain the dynamic Rust-crate design, completed work, and remaining release-hardening tasks.

    Plugins and themes

    Bundled plugins and themes are embedded in the binary and upgrade with Red. They are parsed and typechecked against the versioned Husk host contract before activation; an incompatible plugin is quarantined without preventing editor startup.

    You can disable bundled plugins, configure them in config.toml, or eject a copy for customization:

    red --eject plugins/fidget.hk
    red --eject themes/red.json
    

    An ejected asset shadows the bundled copy until you delete it. See the plugin system guide, host API, and bundled plugin source for details and examples.

    Sessions

    On macOS and Linux:

    red --detach path/to/file
    red --detach=work path/to/project
    red --attach work
    

    Leave a detachable session with Ctrl-\. Read Detachable sessions and Session recovery for lifecycle, recovery, and platform details.

    Documentation

    GuideCovers
    Getting startedEditing, keymaps, LSP, Git, CLI, and troubleshooting
    MarkdownRendered tables, hidden markup, inline images, links, and tasks
    Code exploreReading mode: symbol follow, sidebar, skeleton dimming, review trail
    Husk language serverHusk editor features, external crates, configuration, and safety boundaries
    Language extensionsCustom syntax, trusted Tree-sitter grammars, language packs, LSP settings, and live reload
    Vim compatibilitySupported behavior and intentional differences
    Agent workflowCodex prerequisites, review model, commands, and safety
    Plugin systemHusk lifecycle, runtime architecture, and validation
    Plugin APIVersioned host API for plugin authors
    Detach and attachPersistent Unix sessions
    Session recoveryAtomic recovery and dirty-buffer restoration
    PerformanceMeasurement, budgets, and regression process
    DebuggingInvariant owners, logs, diagnostic commands, and tracing paths
    ReleasingRelease preparation, publication, and verification

    Status and community

    Red is an early, pre-1.0 release and is evolving quickly. Bring curiosity and keep backups for critical work.

    Development

    Red requires a recent stable Rust toolchain and Git:

    git clone https://github.com/codersauce/red.git
    cd red
    cargo build
    cargo test --all-targets --all-features
    cargo clippy --all-targets --all-features -- -D warnings
    

    Use narrower commands while iterating on a specific crate or test:

    cargo test -p red --lib editor::tests::
    cargo test --workspace --exclude red --all-features --tests
    python3 scripts/doctest_packages.py --no-default-features
    

    cargo test is the default runner because Red's many short tests complete faster in shared test-binary processes. Install cargo-nextest when per-test isolation, timing, retries, or JUnit reports are useful, then compare both runners with python3 scripts/test_performance.py --runner both --timings. Add --package husk-lexer for a short, focused comparison. The manual Rust Test Performance GitHub Actions workflow provides the same comparison on Linux, macOS, or Windows and can optionally enable sccache or the Linux mold linker.

    Use RED_RUNTIME=. while iterating on bundled plugins or themes without rebuilding the executable:

    RED_RUNTIME=. cargo run -- path/to/file
    

    Contributions are welcome. For major changes, open an issue before investing in an implementation. Release maintainers should follow docs/RELEASING.md.

    License

    Red is available under the MIT License.

    Built with love for the Rust community and inspired by Vim, Neovim, and Helix.