代理功能为可选,需另装 Codex CLI 0.144.1 或更新版本并完成 codex login;Scoop 安装的包提供的是 red-editor 命令而非 red;v0.8.2 之前安装或手动解压的版本需重跑官方安装脚本才能启用自动更新
red
codersauceMIT活跃维护用 Rust 写的 Vim 风格模态文本编辑器,内置 AI 编码 Agent 和 LSP 支持,适合想要 Neovim 式操作又需要 AI 辅助写代码的开发者。
:memo: Vimlike Modal Text Editor in Rust
brew install codersauce/tap/redREADME 未说明硬件要求;为自包含 Rust 二进制,在终端中运行,Nix flake 支持 x86-64 Linux、ARM64 Linux 与 Apple Silicon macOS
Rust 写的 Vim 风格终端编辑器,把 Codex 编码代理接进编辑器里干活
用 Rust 写的 Vim 风格模态文本编辑器,内置 AI 编码 Agent 和 LSP 支持,适合想要 Neovim 式操作又需要 AI 辅助写代码的开发者。
核心能力
- 保留 Vim 模式、动作、操作符与文本对象
- 代理通过编辑器事务读写缓冲区,能看到未保存改动与诊断
- Space i 对选区或所在函数做内联审查、解释与重构
- 内置 Tree-sitter 高亮与多语言 LSP 默认配置
- macOS/Linux 支持可分离会话,断连后保留缓冲区与 LSP 状态
容易踩的坑
- 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/redmacOS
curl --proto '=https' --tlsv1.2 -fsSL https://getred.dev/install.sh | shLinux
curl --proto '=https' --tlsv1.2 -fsSL https://getred.dev/install.sh | shWindows
irm https://getred.dev/install.ps1 | iexInstall Codex separately and run
codex loginto enable agent support.Checksums
Download
SHA256SUMS.txtfrom this release to verify archives. Its signature,SHA256SUMS.txt.minisig, verifies with minisign:minisign -Vm SHA256SUMS.txt -P RWRNnsasbTdAjgpMwO4feHrX57Rr4uPupGSKZxVZRDTi3IuRON8kF3hEFull Changelog
- 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/redmacOS
curl --proto '=https' --tlsv1.2 -fsSL https://getred.dev/install.sh | shLinux
curl --proto '=https' --tlsv1.2 -fsSL https://getred.dev/install.sh | shWindows
irm https://getred.dev/install.ps1 | iexInstall Codex separately and run
codex loginto enable agent support.Checksums
Download
SHA256SUMS.txtfrom this release to verify archives. Its signature,SHA256SUMS.txt.minisig, verifies with minisign:minisign -Vm SHA256SUMS.txt -P RWRNnsasbTdAjgpMwO4feHrX57Rr4uPupGSKZxVZRDTi3IuRON8kF3hEFull Changelog
- 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
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
- 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
- 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/redmacOS
curl --proto '=https' --tlsv1.2 -fsSL https://getred.dev/install.sh | shLinux
curl --proto '=https' --tlsv1.2 -fsSL https://getred.dev/install.sh | shWindows
irm https://getred.dev/install.ps1 | iexInstall Codex separately and run
codex loginto enable agent support.Checksums
Download
SHA256SUMS.txtfrom this release to verify archives.Full Changelog
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
red
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.

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

- 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.
gxopens files, headings, andfile:linereferences,Ctrl-w xkeeps the document beside them, andgTtoggles a task. - Explore code without asking a model.
Space e eopens 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 toSpace D. - Change a setting for one launch.
red -c theme=onedark.jsonsets 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.
| Key | Action |
|---|---|
Space ? | Discover commands and their effective keymaps |
Space m | Browse notifications and recent messages |
Ctrl-p | Find a file with fuzzy search and live preview |
Ctrl-e, then / | Open the file tree and search files or directories |
Space G | Open the Git status workspace |
Space A | Ask the agent with editor context |
Space i | Review, explain, or refactor the enclosing function or exact selection |
Space t | Browse 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

The full Agent workspace
- Ask. Press
Space A; Red provides a bounded source excerpt, current selection, relevant diagnostics, and authoritative unsaved buffer contents. - 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.
- 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:
- Embedded defaults
config.toml($XDG_CONFIG_HOME/red/config.toml, or~/.config/red/config.toml)-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
| Guide | Covers |
|---|---|
| Getting started | Editing, keymaps, LSP, Git, CLI, and troubleshooting |
| Markdown | Rendered tables, hidden markup, inline images, links, and tasks |
| Code explore | Reading mode: symbol follow, sidebar, skeleton dimming, review trail |
| Husk language server | Husk editor features, external crates, configuration, and safety boundaries |
| Language extensions | Custom syntax, trusted Tree-sitter grammars, language packs, LSP settings, and live reload |
| Vim compatibility | Supported behavior and intentional differences |
| Agent workflow | Codex prerequisites, review model, commands, and safety |
| Plugin system | Husk lifecycle, runtime architecture, and validation |
| Plugin API | Versioned host API for plugin authors |
| Detach and attach | Persistent Unix sessions |
| Session recovery | Atomic recovery and dirty-buffer restoration |
| Performance | Measurement, budgets, and regression process |
| Debugging | Invariant owners, logs, diagnostic commands, and tracing paths |
| Releasing | Release 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.
- Follow development on the CoderSauce YouTube channel.
- Join the Discord community.
- Report bugs and request features in GitHub Issues.
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.