Fresh is a newly released open-source TUI text editor written in Rust, designed to combine modern usability features with a command-line workflow. What sets it apart from similar applications is that it targets developers who want IDE-style functionality while remaining entirely inside the terminal.
The editor runs entirely in a terminal emulator and does not use graphical toolkits such as GTK or Qt. Menus, panels, split views, the file explorer, and the integrated terminal are all built using terminal features. Even so, the editor offers a structured, GUI-like experience with mouse support, a command palette, and contextual menus.
Files are handled as buffers, which can be displayed simultaneously via horizontal or vertical splits, and a persistent status bar provides contextual in…
Fresh is a newly released open-source TUI text editor written in Rust, designed to combine modern usability features with a command-line workflow. What sets it apart from similar applications is that it targets developers who want IDE-style functionality while remaining entirely inside the terminal.
The editor runs entirely in a terminal emulator and does not use graphical toolkits such as GTK or Qt. Menus, panels, split views, the file explorer, and the integrated terminal are all built using terminal features. Even so, the editor offers a structured, GUI-like experience with mouse support, a command palette, and contextual menus.
Files are handled as buffers, which can be displayed simultaneously via horizontal or vertical splits, and a persistent status bar provides contextual information such as the cursor position, file name, and Git branch.
Fresh terminal text editor.
Editing features include multi-cursor support, advanced text selection modes, and unlimited undo and redo backed by a full edit history. Navigation is enhanced through position history and Language Server Protocol integration, enabling go-to-definition and other code intelligence features commonly found in graphical editors.
Fresh also includes a built-in file explorer that operates entirely within the TUI. It supports keyboard navigation, respects .gitignore rules by default, and allows files to be opened directly from the project tree without leaving the editor.
A standout feature of Fresh is its built-in terminal emulator. You can open several terminal tabs as buffers, switch between input and scrollback modes, and search or copy terminal output with regular editor controls. Terminal sessions stay active after restarts, keeping running processes and scrollback history.
Native LSP support provides real-time diagnostics, code completion, and symbol navigation. While Fresh includes built-in language definitions for Rust, JavaScript, TypeScript, and Python, additional languages can be configured manually through a JSON-based configuration file. The same configuration system allows users to impose CPU and memory limits on LSP servers to prevent excessive resource usage.
Extensibility is handled through a TypeScript plugin system. Fresh ships with several plugins enabled by default, including tools for highlighting TODO comments and performing Git-based searches. Additional plugins can be added manually, with platform-specific considerations documented for macOS installations. A dedicated Clangd helper plugin is included for C and C++ workflows.
Finally, configuration is centralized in a single config.json file stored in standard platform-specific locations. This file controls editor behavior, themes, LSP settings, plugin behavior, and process limits.
For more information, visit the project’s website or refer to the user guide documentation.
If you want to give it a try, the editor is cross-platform and officially supported on Linux, macOS, and Windows. Prebuilt binaries are provided for all major platforms, with additional installation options via Homebrew, the Arch User Repository, .deb and .rpm packages, npm, crates.io, or manual builds from source. On Windows, Fresh runs in modern terminals, but you can also use WSL if you prefer a Linux setup.
Image credits: Fresh