Fresh - The Terminal IDE
Features<br>Install<br>Docs<br>Blog<br>Changelog<br>Discord<br>GitHub
Fresh
A powerful terminal text editor and IDE.
Intuitive keys & mouse
Fast & light
Huge files
Themes
TypeScript plugins
Open source
Multi-cursor
Keyboard macros
LSP
Magit-style git review
Fuzzy file finder
Project-wide grep
SSH remote editing
Vim mode
and more!
Linux<br>macOS<br>Windows
Install:
curl https://raw.githubusercontent.com/sinelaw/fresh/refs/heads/master/scripts/install.sh | sh
Copied
More options…
Fast & light
Instant startup. Text appears as you type. Small memory footprint. Stays responsive on multi-GB files and remote editing over SSH.
Instant startup, low-latency input
Low memory footprint
Multi-GB files open without blocking the UI
SSH remote editing transfers only the diff — small edits to huge remote files stay snappy
Project-wide search & replace, even across unsaved buffers
Git review & diff
Split-panel review with staged / unstaged / untracked files on the left and the selected diff on the right. Stage, unstage or discard individual hunks; leave line comments and review notes; export to Markdown. Side-by-side diff view for file comparisons.
Hunk-level stage / unstage / discard
Side-by-side diff view
Line comments and review notes
Git gutter, git log viewer, git grep
Language Server Protocol
Run multiple LSP servers per language (for example pylsp + pyright) with feature routing and merged completions. Per-project workspace roots detected from configurable markers like Cargo.toml or package.json.
Configs shipped for Python, TypeScript, Rust, Go, Java, C/C++, Ruby, PHP, Bash, Vue, Svelte, Terraform, Haskell, OCaml, Elixir and many more
Goto, references and hover in library paths (node_modules, site-packages, .cargo)
Code actions with workspace edits
Detachable daemon
Start a named daemon, detach and reattach across terminal disconnects. The --wait flag blocks until the buffer is closed, which lets Fresh serve as git core.editor or $EDITOR. Hot Exit persists every buffer across restarts and crashes.
Named and directory-based daemons (fresh -a myproject)
--wait for commit messages, rebases and scripted flows
Hot Exit with crash recovery, including unnamed scratch buffers
# Use Fresh as your git editor<br>git config --global core.editor "fresh --wait"
# Attach a persistent daemon<br>fresh -a myproject
# Open a file in the running daemon<br>fresh --cmd daemon open-file myproject src/main.rs:42
SSH remote editing
Open files on an SSH host with fresh user@host:path. Connections reconnect in the background if they drop. Saves to large files transfer only the patch, not the whole file.
Password and key authentication, sudo save
Remote file finder (Ctrl+P) and remote grep
Background reconnect with disconnected-state indicator
# Open /etc/nginx/nginx.conf on prod<br>fresh deploy@prod:/etc/nginx/nginx.conf
# Ctrl+P fuzzy-finds remote files<br># Save over SSH with sudo<br># Auto-reconnects on drops
TypeScript plugins
Plugins are compiled with OXC and run in an embedded QuickJS VM, sandboxed and shipped inside the same binary. No node_modules on disk. Packages are installed from the official registry; language packs bundle a grammar, settings and LSP config together.
Plugin API for buffers, splits, cursors, processes, virtual buffers and overlays
Custom keybinding modes and embedded terminals
Package scaffolding with --init
Themes, status bar & i18n
Both sides of the status bar are configurable via a visual picker, with reorderable elements including a {clock}, git branch and LSP status. Themes are edited live. The interface is translated into several languages including Japanese, Korean, Chinese and Vietnamese.
Live theme editor with "Inspect Theme at Cursor"
Built-in themes: high-contrast, Gruvbox, Dracula, Nord, Solarized, Tokyo Night and more
Vertical rulers, whitespace indicators, rainbow brackets, per-language wrap
Nerd-font icons and CJK-safe rendering
Keyboard & editing
Command palette with prefix routing (> commands, # buffers, : lines). Keybinding editor with conflict detection and per-context bindings. Full mouse support.
Vim mode with operators, motions, text objects and colon commands
Multi-cursor, block selection, surround, smart home and smart backspace
Keyboard macros and regex find & replace with capture groups
Integrated terminal with persistent scrollback
Installation even more options →
Linux / macOS (quick install)
curl https://raw.githubusercontent.com/sinelaw/fresh/refs/heads/master/scripts/install.sh | sh
One-line install. No toolchain required.
macOS (Homebrew)
brew install fresh-editor
Windows (winget)
winget install fresh-editor
Debian / Ubuntu
Grab the .deb from Releases, then:
sudo dpkg -i fresh-editor_*.deb
Arch Linux (AUR)
yay -S fresh-editor
View on AUR — aarch64 supported.
npm / npx (no install)
npx @fresh-editor/fresh-editor
Or global: npm install -g @fresh-editor/fresh-editor
Pre-built Binaries
Linux, macOS, Windows,...