If you’ve ever cracked open a multi-gigabyte log only to watch your editor choke, this’ll feel like cheating.
Fresh is a new terminal-based editor written in Rust that behaves like a modern GUI editor — command palette, mouse support, LSP, multi-cursor — yet stays tiny and fast enough to open a 2GB ANSI-colored log in about 600ms while sipping ~36MB RAM (author’s benchmark). It’s open-source and solo-built.
Rust Production Cheatsheet: https://tobiweissmann.gumroad.com/l/pvaqvy
Why Fresh exists (and why it’s interesting)
Most terminal editors trade power for a steep learning curve or for plugin sprawl. Fresh aims for a different triangle: discoverable UX, modern extensibility, and zero-latency feel — inside the terminal.
Discoverable UX. Menus, a Command Palette (Ctrl+P), familiar keybindings, mouse & scrollbars. If you can use VS Code, you can use Fresh.
Batteries included. Built-in LSP client, multi-cursor, and syntax highlighting out of the box.
Extensible with TypeScript. Write plugins in TS; they run in a sandboxed Deno environment. Today there are examples like Git Log navigation and a Git Blame inspector.
Built for huge files. Fresh was engineered to lazy-load and display even multi-GB files quickly — including rendering ANSI colors properly so your log retains meaning.
The headline number: 2GB in ~600ms
In an early comparison on a 2GB ANSI-heavy log:
Fresh: ~600ms load, ~36MB RAM, ANSI colors shown
Neovim: ~6.5s, ~2GB RAM, ANSI as raw control codes
Emacs: ~10s, ~2GB RAM, ANSI as raw control codes
VS Code: ~20s, OOM-killed on a ~4.3GB-RAM machine
These are author-run, early benchmarks (configs and plugins can change results; e.g., specialized Emacs packages for large files may alter the picture). Still: Fresh’s lazy approach to big files is the point. Try reproducing locally (recipe below).
Quickstart (pick one)
macOS (Homebrew)
brew tap sinelaw/fresh
brew install fresh-editor
Debian/Ubuntu (.deb)
download from Releases
sudo dpkg -i fresh-editor_*.deb
Fedora/RHEL/openSUSE (.rpm)
download from Releases
sudo rpm -i fresh-editor-*.rpm
Arch (AUR)
yay -S fresh-editor
Rust users (crates.io)
cargo install fresh-editor
Just try it (Node)
npx @fresh-editor/fresh-editor
Releases & instructions are on the project’s README.
60-second tour
Ctrl+P: Command Palette for everything.
Mouse + Scrollbars: Select, resize splits, navigate — no modal gymnastics.
Multi-cursor: Hold your breath and edit 30 lines at once.
LSP: Go to definition, references, rename, code actions, diagnostics — works with the language servers you already use.
Extensibility that feels modern
Fresh’s plugin API uses TypeScript running in Deno. That means up-to-date tooling, a rich JS ecosystem, and a sandbox designed for stability. If you’ve ever wanted to script a terminal editor without learning a niche DSL, this is your on-ramp.
Ideas to build next:
“Triage Log” plugin: colorize severity, jump between error frames, extract request IDs.
“Git Time Machine”: blame + inline history slider.
“Code Navigation++”: cross-file symbol search powered by ripgrep + LSP.
Reproduce the big-file demo yourself
Create a synthetic 2GB log with ANSI colors, then time your editor:
# make a 2GB file with colored lines
python - <<'PY'
import os, sys
line = "\x1b[32mINFO\x1b[0m something happened id=1234\n"
target = 2 * 1024 * 1024 * 1024
written = 0
with open("huge.log","w") as f:
while written < target:
f.write(line)
written += len(line)
try Fresh
/usr/bin/time -v fresh huge.log
try your usual editor for comparison
/usr/bin/time -v nvim huge.log
(Performance will vary by disk, cache warmth, and terminal.)
Where Fresh fits today
Log triage & prod incidents. Open gargantuan logs instantly with colors intact, jump via Command Palette, and keep memory overhead tiny.
SSH & containers. A capable editor that doesn’t need a windowing system; npx makes it trivial to try in throwaway environments.
Roadmap vibes (my take)
Fresh already ships with documentation (User Guide, Plugin Development, Architecture) and regular releases under GPL-2.0. It’s early, but momentum looks real.
The bottom line
Fresh treats the terminal like a first-class editing surface: discoverable UI, modern language smarts, real extensibility, and the kind of big-file performance you usually get from bespoke viewers — not editors. If your week involves tailing logs, wrangling monorepos over SSH, or just craving snappy tools, give it a try.
Optimal setup for massive-log workflows (practical recipe)
If your goal is “open, search, annotate, and keep following a huge changing log” with minimal RAM:
Install Fresh using your platform’s method (above).
Enable auto-revert/auto-reload in Fresh so the file view updates as logs append (feature is listed in the README).
Combine with ripgrep for jumps:
rg -n "ERROR|WARN" huge.log > hits.txt && fresh hits.txt huge.log
Use the Command Palette to hop between matches.
Add a tiny TS plugin that:
Highlights \b(ERROR|WARN|FATAL)\b
Adds a “Next Error (Alt+E)” command
Extracts fields like request_id= into a side panel
(Plugin scaffolding is documented under “Plugin Development”.)
Keep memory flat. Avoid piping stdin to editors that buffer; work on the file directly so Fresh can lazily map/scan it.
This combo gives you instant open, colored log semantics, jump-to-signal navigation, and low memory.
Quick adoption playbook (for you, the author)
Ship reproducible benchmarks. Add a repo script that creates the synthetic 2GB ANSI log and records /usr/bin/time -v for Fresh and a few editors (with configs disclosed). Publish a “Benchmarks” page and version it with each release.
One-minute demo video + GIFs. Show (1) 2GB open, (2) Command Palette, (3) multi-cursor, (4) LSP. Link from README & website.
Extension gallery. Curate 5–8 “killer” plugins (Log Triage, Blame, TODOs, Color Highlighter, Merge Conflicts) and a template repo for new plugins.
Package everywhere. You already have Homebrew, AUR, .deb, .rpm, crates, and npx — great coverage. Add Scoop/winget for Windows terminals and a static MUSL build for Alpine.
Keymap packs. Offer VS Code / Sublime / Emacs-like keymaps so switching is painless. (Your README already lists keymap support — double down.)
Try Fresh, file an issue, or star the repo to nudge development forward. The project site and README have everything you need to get started.
Note: I would like to express my sincere gratitude to Noam Lewis, the maintainer of the Fresh Git repository, for his valuable work.
GithubLink : https://sinelaw.github.io/fresh/
Rust Production Cheatsheet: https://tobiweissmann.gumroad.com/l/pvaqvy
Top comments (0)