A fast, modern terminal text editor — feels familiar, but has a few tricks worth knowing •
getfresh.dev
Welcome to Fresh! If you've used a regular editor before, you'll feel right at home — most standard shortcuts work (Ctrl+S, Ctrl+Z, Ctrl+F…).
The main things to learn: everything is discoverable via the Command Palette (Ctrl+P),
Fresh runs as a persistent background server (so sessions survive disconnects),
and the editor lives in your terminal while still supporting a full mouse, menus, and GUI-style settings.
⌕/ to search
Getting Started
📦 Installation
macOSbrew install fresh-editor
npm/bunnpm i -g @getfresh/editor
Cargocargo install fresh-editor
AURyay -S fresh-editor
Debian.deb package via GitHub Releases
RPM.rpm package via GitHub Releases
📂 Opening Files
fresh
Open empty buffer
fresh src/main.rs
Open a file
fresh src/main.rs:42
Open file at line 42
fresh file.rs:42:10
Open at line 42, col 10
fresh a.rs b.rs:100
Open multiple files
fresh user@host:/path
Open remote file via SSH
fresh user@host:~/proj
Open remote directory via SSH
🎯 Command Palette — Ctrl+P
(no prefix)File finder — fuzzy search project files
> command nameSearch & run editor commands
# filenameSwitch between open buffers
: 42Jump to line number
💡 Tip
From anywhere, press Ctrl+P to discover any feature — it's your main navigation tool
⚡ Essential Shortcuts
Ctrl+S
Save file
Ctrl+Z
Undo
Ctrl+Y
Redo
Ctrl+F
Find in current file
Ctrl+R
Find & replace in current file
Ctrl+P
Command Palette / file finder
Ctrl+H
Show keybindings reference
Ctrl+Q
Quit (closes client & server)
Esc
Dismiss popup / remove extra cursors
Editing
✦ Multi-Cursor Editing
Ctrl+D
Add cursor at next match of selection
Ctrl+Alt+↑
Add cursor above current line
Ctrl+Alt+↓
Add cursor below current line
Esc
Remove all secondary cursors
Alt+Shift+↑/↓
Block (column) select up/down
Alt+Shift+←/→
Block (column) select left/right
💡 Tip
Select a word, then press Ctrl+D repeatedly to select each next match and edit them all at once
▌ Selection
Ctrl+W
Select word under cursor
Ctrl+L
Select current line
Ctrl+A
Select all
Shift+Arrow
Extend selection
Ctrl+Shift+←/→
Select word left/right
Shift+Home/End
Select to line start/end
Ctrl+Shift+Home/End
Select to document start/end
Triple-click
Select entire line
☰ Line Operations
Alt+↑
Move line(s) up
Alt+↓
Move line(s) down
Ctrl+/
Toggle line comment
Tab
Indent line(s)
Shift+Tab
Dedent line(s)
Ctrl+K
Delete to end of line
Ctrl+T
Transpose characters
Alt+U
Convert selection to UPPERCASE
Alt+L
Convert selection to lowercase
✂ Delete & Clipboard
Ctrl+C
Copy
Ctrl+X
Cut
Ctrl+V
Paste
Backspace
Delete backward
Del
Delete forward
Ctrl+Backspace
Delete word backward
Ctrl+Del
Delete word forward
✨ Smart Editing (Auto)
Auto-indent
Preserves indentation; adds extra level after {(:
Auto-surround
Select text → type ([{" or ` to wrap it
Smart Home
First press → first non-whitespace char; second press → column 0
Smart Backspace
Removes one full indent level when in leading whitespace
Hot Exit
Unsaved changes are auto-restored on next launch (on by default)
Ctrl+Right-click
Inspect theme scope at cursor position
⏺ Keyboard Macros
Ctrl+P > Record
Start recording a macro
F5
Stop macro recording
F4
Play last recorded macro
💡 Tip
Use macros to repeat complex edits across many lines without multi-cursor
Navigation
🧭 Cursor Navigation
Ctrl+Home
Jump to document start
Ctrl+End
Jump to document end
Ctrl+G
Go to specific line number
Ctrl+P :42
Go to line 42 via Command Palette
Alt+←
Navigate back in position history
Alt+→
Navigate forward in position history
💡 Tip
Position history tracks where you've been — great for jumping between definition and callsite
🔖 Bookmarks
Ctrl+Shift+0–9
Set bookmark 0–9 at current position
Alt+0–9
Jump to bookmark 0–9
💡 Tip
Set bookmark 1 at your primary work location and 2 at a reference file to jump between them instantly
🗂 File Explorer
Ctrl+B
Toggle sidebar (show/hide file explorer)
Ctrl+E
Switch focus: explorer ↔ editor
↑ / ↓
Navigate file tree
Enter
Open file (keep focus on explorer)
Double-click
Open file and focus editor
💡 Tip
Explorer shows Git status indicators (modified/untracked files). Respects .gitignore by default
🍎 macOS Readline Shortcuts
Ctrl+A
Move to line start
Ctrl+E
Move to line end
Ctrl+Shift+A
Select to line start
Ctrl+Shift+E
Select to line end
Ctrl+K
Kill (delete) to end of line
Ctrl+U
Kill (delete) to start of line
Ctrl+Y
Yank (paste from kill ring)
💡 Tip
macOS Terminal.app may intercept some keys — configure escape sequences in terminal preferences if shortcuts don't work
Search & Replace
🔍 Search & Replace
Ctrl+F
Search in current buffer
Ctrl+R
Find & replace in current buffer
Ctrl+Alt+R
Interactive replace (y/n/!/q per match)
F3
Find next match
Shift+F3
Find previous match
Alt+N / Ctrl+F3
Find next occurrence of selection
Alt+P / Ctrl+Shift+F3
Find previous occurrence of selection
Alt+Enter
Project-wide search/replace
⚙ Search Options & Regex
Case Sensitive
Toggle in search toolbar
Whole Word
Toggle in search toolbar
Regex
Toggle in search toolbar
$1, $2
Regex capture groups in replacement
${name}
Named capture group in replacement
💡 Tip
Use Alt+Enter to search across the whole project — it opens a panel with all matches you can jump through
🐚 Shell Commands on Buffer
Alt+|
Run shell command on buffer/selection; show output
Alt+Shift+|
Run shell command; replace selection with output
💡 Tip
Select some text and pipe it through sort, jq, or any shell tool — the result replaces your selection
Code Intelligence (LSP)
🧠 LSP & Diagnostics
F8
Jump to next error/diagnostic
Shift+F8
Jump to previous error/diagnostic
Alt+.
Open code actions (quick fix, refactor)
Ctrl+Space
Trigger autocomplete (explicit mode)
Ctrl+P > "Go to Definition"
Jump to symbol definition
Ctrl+P > "Find References"
List all references to symbol
Ctrl+P > "Rename Symbol"
Rename across all files
Ctrl+P > "Format Buffer"
Auto-format current file
Ctrl+P > "Show Diagnostics"
Open diagnostics panel
💡 Tip
Install the language server for your stack (e.g. rust-analyzer, typescript-language-server) — Fresh picks it up automatically
Views, Splits & Terminal
⧉ Split Views
Ctrl+P > "Split Vertical"
Split editor vertically
Ctrl+P > "Split Horizontal"
Split editor horizontally
Ctrl+P > "Next Split"
Move focus to next pane
Ctrl+P > "Previous Split"
Move focus to previous pane
Ctrl+P > "Close Split"
Close current pane
Ctrl+P > "Toggle Scroll Sync"
Sync scroll for same-buffer splits
Ctrl+K
Cycle focus between split panes
⬛ Integrated Terminal
Ctrl+P > "Open Terminal"
Open terminal in editor
Ctrl+Space
Toggle Terminal ↔ Scrollback Mode
Ctrl+]
Exit terminal mode (alternative)
F9
Toggle key capture (all keys → terminal)
↑/↓, PgUp/PgDn
Scroll output (in Scrollback Mode)
Ctrl+Home / End
Jump to start/end of scrollback history
Ctrl+F
Search through terminal output
💡 Tip
Terminal Mode = shell input. Scrollback Mode = read-only review of output (auto-exits when new output arrives)
Session Persistence
💾 How Sessions Work
Ctrl+Shift+D
Detach (client exits, server keeps running)
Ctrl+Q
Quit (closes both client and server)
💡 Concept
Fresh runs a background server per directory. Closing your terminal doesn't kill your session — just re-run fresh to reattach
🔌 Session CLI Commands
fresh -a
Attach to current directory's session
fresh -a <name>
Attach to a named session
fresh --cmd session list
List all active sessions
fresh --cmd session new <name>
Create a new named session
fresh --cmd session kill
Kill current directory's session
fresh --cmd session kill <name>
Kill a named session
fresh --cmd session kill --all
Kill all sessions
fresh --cmd session open-file . file:line:col
Open file in running session at position
Customization & Config
⌨ Keybinding Editor
Ctrl+P > "Keybinding Editor"
Open the visual keybinding browser
↑ / ↓
Navigate bindings list
/
Text search (by action, key, context)
r
Record a key combo to search by it
c
Cycle context filter (global/normal/prompt…)
Enter
Edit selected binding
a
Add new custom binding
d / Del
Delete custom binding
Ctrl+S
Save all changes to config file
⚙ Configuration
~/.config/fresh/config.json
User config (Linux/macOS)
%APPDATA%\fresh\config.json
User config (Windows)
.fresh/config.json
Project-level config (in repo root)
auto_save
Off by default (interval: 30s)
hot_exit
On — unsaved changes restored on next launch
tab_size
Default: 4
line_wrap
Off by default
bracket_matching
On by default
💡 Tip
Project config overrides user config — commit .fresh/config.json to share settings with your team
Git Integration
🌱 Git Features
Ctrl+P > "Git Log"
View git commit log
Ctrl+P > "Git Grep"
Search across git history
Ctrl+P > "Review Diff"
Split-panel magit-style diff viewer
Tab (in diff view)
Switch between files and diff panels
Gutter indicators
Shows modified/added/removed lines inline
File explorer
Shows modified/untracked file status
💡 Tip
The Review Diff view lists staged/unstaged/untracked files on the left — navigate with arrow keys, Tab to switch panels