Back to Fresh

Fresh

README.md

0.3.28.6 KB
Original Source

Fresh

A modern, full-featured terminal text editor, with zero configuration. Familiar keybindings, mouse support, and IDE-level features — no learning curve required.

Official Website  ·  Documentation  ·  Discord  ·  Contributing

Quick Install:   curl https://raw.githubusercontent.com/sinelaw/fresh/refs/heads/master/scripts/install.sh | sh


Fresh brings the intuitive UX of VS Code and Sublime Text to the terminal. Standard keybindings, full mouse support, menus, and a command palette — everything works the way you'd expect, right out of the box. No modes, no memorizing shortcuts.

Built for real-world performance: Fresh handles multi-gigabyte files with negligible memory overhead and delivers consistently low-latency input, regardless of file size.

Command Palette & Fuzzy Finder

One shortcut to find files, run commands, switch buffers, and jump to any line.

Multi-Cursor Editing

Select and edit multiple occurrences simultaneously — the same workflow you know from graphical editors.

Themes & Customization

Browse and apply color themes instantly. Full settings UI and interactive keybinding editor included.

See more feature demos: Editing (search & replace, block selection, sort lines, ...) · Productivity (file explorer, split view, integrated terminal, ...) · Themes


Feature Overview

CategoryFeatures
File Managementopen/save/new/close, file explorer, tabs, auto-revert, git file finder
Editingundo/redo, multi-cursor, block selection, smart indent, comments, clipboard
Search & Replaceincremental search, find in selection, query replace, git grep
Navigationgo to line/bracket, word movement, position history, bookmarks, error navigation
Views & Layoutsplit panes, line numbers, line wrap, backgrounds, markdown preview
Language Server (LSP)go to definition, references, hover, code actions, rename, diagnostics, autocompletion
Productivitycommand palette, menu bar, keyboard macros, git log, diagnostics panel
ExtensibilityTypeScript plugins (sandboxed QuickJS), color highlighter, TODO highlighter, merge conflicts, path complete, keymaps
InternationalizationMultiple language support (see locales/), plugin translation system

Installation

Quick install (autodetect best method):

curl https://raw.githubusercontent.com/sinelaw/fresh/refs/heads/master/scripts/install.sh | sh

Or, pick your preferred method:

PlatformMethod
macOSbrew
Bazzite/Bluefin/Aurora Linuxbrew
Windowswinget
Arch LinuxAUR
Debian/Ubuntu.deb
Fedora/RHEL.rpm, Terra
FreeBSDports / pkg
GentooGURU
Linux (any distro)AppImage, Flatpak
All platformsPre-built binaries
npmnpm / npx
Rust users (Fast)cargo-binstall
Rust userscrates.io
NixNix flakes
DevelopersFrom source

Brew

On macOS and some linux distros (Bazzite/Bluefin/Aurora):

Note: On macOS, see macOS Terminal Tips for recommended terminal configuration.

bash
brew tap sinelaw/fresh
brew install fresh-editor

Windows (winget)

bash
winget install fresh-editor

Alternatively, Windows users can use npm.

Arch Linux (AUR)

Binary package (recommended, faster install):

bash
git clone https://aur.archlinux.org/fresh-editor-bin.git
cd fresh-editor-bin
makepkg --syncdeps --install

Build from source:

bash
git clone https://aur.archlinux.org/fresh-editor.git
cd fresh-editor
makepkg --syncdeps --install

Using an AUR helper (such as yay or paru):

bash
# Binary package (recommended, faster install)
yay -S fresh-editor-bin

# Or build from source
yay -S fresh-editor

Debian/Ubuntu (.deb)

Download and install the latest release:

bash
curl -sL $(curl -s https://api.github.com/repos/sinelaw/fresh/releases/latest | grep "browser_download_url.*_$(dpkg --print-architecture)\.deb" | cut -d '"' -f 4) -o fresh-editor.deb && sudo dpkg -i fresh-editor.deb

Or download the .deb file manually from the releases page.

Fedora/RHEL/openSUSE (.rpm)

Download and install the latest release:

bash
curl -sL $(curl -s https://api.github.com/repos/sinelaw/fresh/releases/latest | grep "browser_download_url.*\.$(uname -m)\.rpm" | cut -d '"' -f 4) -o fresh-editor.rpm && sudo rpm -U fresh-editor.rpm

Or download the .rpm file manually from the releases page.

Gentoo (GURU)

Enable the repository as read in Project:GURU/Information for End Users then emerge the package:

bash
emerge --ask app-editors/fresh

AppImage

Download the .AppImage file from the releases page and run:

bash
chmod +x fresh-editor-VERSION-x86_64.AppImage
./fresh-editor-VERSION-x86_64.AppImage

For faster startup (recommended): Extract the AppImage instead of running it directly. This avoids the FUSE mount overhead on each launch (~10x faster):

bash
./fresh-editor-VERSION-x86_64.AppImage --appimage-extract
mkdir -p ~/.local/share/fresh-editor ~/.local/bin
mv squashfs-root/* ~/.local/share/fresh-editor/
ln -sf ~/.local/share/fresh-editor/usr/bin/fresh ~/.local/bin/fresh

Ensure ~/.local/bin is in your PATH. Available for x86_64 and aarch64 architectures.

Flatpak

Download the .flatpak bundle from the releases page and install:

bash
flatpak install --user fresh-editor-VERSION-x86_64.flatpak
flatpak run io.github.sinelaw.fresh

See flatpak/README.md for building from source.

Pre-built binaries

Download the latest release for your platform from the releases page.

Using mise

bash
mise use github:sinelaw/fresh

npm

bash
npm install -g @fresh-editor/fresh-editor

Or try it without installing:

bash
npx @fresh-editor/fresh-editor

Using cargo-binstall

To install the binary directly without compiling (much faster than crates.io):

First, install cargo-binstall if you haven't already

bash
cargo install cargo-binstall

Then install fresh

bash
cargo binstall fresh-editor

Nix flakes

Run without installing:

bash
nix run github:sinelaw/fresh

Or install to your profile:

bash
nix profile add github:sinelaw/fresh

From crates.io

bash
cargo install --locked fresh-editor

From source

bash
git clone https://github.com/sinelaw/fresh.git
cd fresh
cargo build --release
./target/release/fresh [file]

Documentation

Contributing

See CONTRIBUTING.md for guidelines.

Privacy

Fresh checks for new versions daily to notify you of available upgrades. Alongside this, it sends basic anonymous telemetry (version, OS/architecture, terminal type) to help understand usage patterns. No personal data or file contents are collected.

To disable both upgrade checks and telemetry, use --no-upgrade-check or set check_for_updates: false in your config.

License

Copyright (c) Noam Lewis

This project is licensed under the GNU General Public License v2.0 (GPL-2.0).