# Fresh

> Terminal text editor with VS Code-style keybindings, mouse support, LSP, multi-cursor editing, and a command palette that requires no configuration.

Stars: 9.3k · Language: Rust · License: GPL-3.0 · Categories: Editor

- Repository: https://github.com/sinelaw/fresh
- Website: https://getfresh.dev/
- Page: https://www.trmn.sh/tools/fresh

## Install

- Homebrew: `brew install fresh-editor`
- npm: `npm install -g @fresh-editor/fresh-editor`
- Install script (Linux universal build): `curl -fsSL https://raw.githubusercontent.com/sinelaw/fresh/refs/heads/master/scripts/install.sh | sh`

## Overview

Fresh is a terminal text editor and IDE-style environment that uses conventional keybindings, menus, mouse support, and a command palette instead of modal editing. It follows the interaction model of VS Code and Sublime Text and is intended to work without configuration. It is also documented to handle multi-gigabyte files with low memory overhead and consistent input latency regardless of file size.

Editing features include multi-cursor editing, block selection, undo/redo, smart indent, incremental search, query replace, git grep, split panes, bookmarks, keyboard macros, and markdown preview. A single command palette and fuzzy finder opens files, runs commands, switches buffers, and jumps to lines. Language Server Protocol support provides go to definition, references, hover, code actions, rename, diagnostics, and autocompletion. Themes can be browsed and applied in the editor, and there is a settings UI and an interactive keybinding editor.

The Orchestrator is a multitasking feature that gives each git worktree its own workspace, with terminals and long-running commands per workspace. It can run coding agents (claude, codex, opencode, aider) with resumable sessions, and supports remote/SSH workspaces. Extensions are written as TypeScript plugins running in a sandboxed QuickJS runtime.

Fresh is aimed at developers who work in terminals or over SSH and want a familiar editor experience. On Linux the installer provides a statically linked binary that updates itself with `fresh --cmd update`. Packages are also available for macOS, Windows, and several Linux distributions.

### Installation

```bash
# via Homebrew
brew install fresh-editor
```

```bash
# via npm
npm install -g @fresh-editor/fresh-editor
```

```bash
# via Install script (Linux universal build)
curl -fsSL https://raw.githubusercontent.com/sinelaw/fresh/refs/heads/master/scripts/install.sh | sh
```

![Fresh demo](https://media.trmn.sh/cached/58d8c0fef426b50bc63e52e7f0595fe25ed664b32c1d2a7318a2dab6c06ed690.gif)

![Command palette](https://media.trmn.sh/cached/7facda8063b64bd706dbc265015f28da3bcf0d7cce649db9d706bfe32608c344.gif)

![Orchestrator](https://media.trmn.sh/cached/e16fb31eea16d3345d502c870cace7a97f819dbef9b24775f856db18181adf6d.gif)

## Alternatives

- [Edit](https://www.trmn.sh/tools/edit.md): Terminal text editor written in Rust, modeled on the MS-DOS Editor with VS Code-style input controls. Runs on Windows, macOS, and Linux. (Rust, 14.7k stars)
- [Helix](https://www.trmn.sh/tools/helix.md): A terminal-based text editor written in Rust, inspired by Kakoune and Neovim with built-in language server support (Rust, 46.7k stars)
- [Kakoune](https://www.trmn.sh/tools/kakoune.md): Modal code editor inspired by Vim that uses multiple selections as its core editing model, with a client-server architecture and external tool integration. (C++, 11.1k stars)
- [amp](https://www.trmn.sh/tools/amp.md): Vi/Vim-inspired terminal text editor built in Rust with simplified interaction model and modern features. (4.1k stars)
- [flowcontrol](https://www.trmn.sh/tools/flowcontrol.md): TUI text editor built with Zig, featuring tree-sitter syntax highlighting, LSP support, and multiple keybinding modes (Zig, 2.5k stars)

---

Canonical: https://www.trmn.sh/tools/fresh
