Fresh
Terminal based IDE & text editor: easy, powerful and fast
Install / Use
/learn @sinelaw/FreshREADME
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
| Category | Features |
|----------|----------|
| File Management | open/save/new/close, file explorer, tabs, auto-revert, git file finder |
| Editing | undo/redo, multi-cursor, block selection, smart indent, comments, clipboard |
| Search & Replace | incremental search, find in selection, query replace, git grep |
| Navigation | go to line/bracket, word movement, position history, bookmarks, error navigation |
| Views & Layout | split panes, line numbers, line wrap, backgrounds, markdown preview |
| Language Server (LSP) | go to definition, references, hover, code actions, rename, diagnostics, autocompletion |
| Productivity | command palette, menu bar, keyboard macros, git log, diagnostics panel |
| Extensibility | TypeScript plugins (sandboxed QuickJS), color highlighter, TODO highlighter, merge conflicts, path complete, keymaps |
| Internationalization | Multiple 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:
| Platform | Method | |----------|--------| | macOS | brew | | Bazzite/Bluefin/Aurora Linux | brew | | Windows | winget | | Arch Linux | AUR | | Debian/Ubuntu | .deb | | Fedora/RHEL | .rpm, Terra | | FreeBSD | ports / pkg | | Gentoo | GURU | | Linux (any distro) | AppImage, Flatpak | | All platforms | Pre-built binaries | | npm | npm / npx | | Rust users (Fast) | cargo-binstall | | Rust users | crates.io | | Nix | Nix flakes | | Developers | From source |
Brew
On macOS and some linux distros (Bazzite/Bluefin/Aurora):
Note: On macOS, see macOS Terminal Tips for recommended terminal configuration.
brew tap sinelaw/fresh
brew install fresh-editor
Windows (winget)
winget install fresh-editor
Alternatively, Windows users can use npm.
Arch Linux (AUR)
Binary package (recommended, faster install):
git clone https://aur.archlinux.org/fresh-editor-bin.git
cd fresh-editor-bin
makepkg --syncdeps --install
Build from source:
git clone https://aur.archlinux.org/fresh-editor.git
cd fresh-editor
makepkg --syncdeps --install
Using an AUR helper (such as yay or paru):
# 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:
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:
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:
emerge --ask app-editors/fresh
AppImage
Download the .AppImage file from the releases page and run:
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):
./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:
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.
npm
npm install -g @fresh-editor/fresh-editor
Or try it without installing:
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
cargo install cargo-binstall
Then install fresh
cargo binstall fresh-editor
Nix flakes
Run without installing:
nix run github:sinelaw/fresh
Or install to your profile:
nix profile add github:sinelaw/fresh
From crates.io
cargo install --locked fresh-editor
From source
git clone https://github.com/sinelaw/fresh.git
cd fresh
cargo build --release
./target/release/fresh [file]
Documentation
- User Guide
- macOS Tips - Terminal configuration, keyboard shortcuts, and troubleshooting for Mac users
- Plugin Development
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).
Related Skills
node-connect
349.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
