Welcome to Fresh
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.Installation
Get started with Fresh using your preferred package manager
Quick Start
Learn the basics in 5 minutes with our interactive tutorial
Features
Explore multi-cursor editing, LSP support, and more
Configuration
Customize themes, keybindings, and editor settings
Why Fresh?
Zero Configuration
Zero Configuration
Fresh works perfectly out of the box. No configuration files to edit, no plugins to install. Start editing immediately with sensible defaults that just work.
Familiar Experience
Familiar Experience
If you’ve used VS Code, Sublime Text, or any modern editor, you already know Fresh. Standard keybindings (
Ctrl+C, Ctrl+V, Ctrl+F, etc.) work exactly as expected.High Performance
High Performance
Edit multi-gigabyte files with ease. Fresh uses advanced memory mapping and lazy loading techniques to handle massive files with minimal memory overhead.
Full Mouse Support
Full Mouse Support
Click to position the cursor, drag to select, scroll with your mouse wheel. Fresh supports all the mouse interactions you’re used to in graphical editors.
IDE-Level Features
IDE-Level Features
Language Server Protocol (LSP) integration provides go-to-definition, autocomplete, diagnostics, hover documentation, and code actions — all in your terminal.
Extensible
Extensible
Write plugins in TypeScript using a sandboxed QuickJS runtime. Extend Fresh with custom commands, UI overlays, language support, and more.
Key Features at a Glance
Command Palette
One shortcut (
Ctrl+P) to find files, run commands, switch buffers, and jump to any lineMulti-Cursor Editing
Select and edit multiple occurrences simultaneously with
Ctrl+DFile Explorer
Built-in sidebar with gitignore support and fuzzy file search
Split Panes
View multiple files side-by-side with horizontal and vertical splits
Integrated Terminal
Run shell commands without leaving the editor
Git Integration
Git grep, file finder, and branch display in status bar
Themes
Browse and apply color themes instantly with built-in theme selector
Remote Editing
Edit files on remote servers via SSH (experimental)
Session Persistence
Detach and reattach to editing sessions (experimental)
Complete Feature Set
| 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 with plugin translation system |
Quick Start
Get Fresh up and running in seconds:Community & Support
GitHub
Star the project and report issues
Discord
Join the community chat
Documentation
Browse the full documentation
Open Source
Fresh is open source software licensed under GPL-2.0. Contributions are welcome! See the Contributing Guide to get started.Fresh checks for new versions daily to notify you of available upgrades. It sends basic anonymous telemetry (version, OS/architecture, terminal type) to help understand usage patterns. No personal data or file contents are collected. Disable with
--no-upgrade-check or set check_for_updates: false in your config.