Show HN: Toast, a beautiful by default in terminal IDE

Sep 12, 2026 12:54 AM - 4 days ago 1

toast is simply a beautiful developer situation correct successful your terminal. vim, nvim, and emacs person you build your editor from scratch, while toast ships pinch managed LSPs, an integrated record tree, aggregate record tabs, and themes retired of the box. toast is for the developer who wants to enactment successful their terminal without spending hours getting it up to snuff.

⚠️ This task is successful early development, you whitethorn brushwood bugs. ⚠️

toast logo

brew instal paradise-runner/tap/toast
Editor No AI features No telemetry Built-in record tree Mouse support
toast
vim
emacs
vscode
zed
  • Multi-tab editing pinch unsaved-changes indicators, mouse-close buttons, and discontinue confirmation
  • Syntax highlighting via tree-sitter (Go, Python, JavaScript, TypeScript, Rust, CSS, HTML, YAML, Bash, Markdown)
  • Managed connection servers — Toast offers to instal missing servers for Go, Rust, Python, JavaScript, TypeScript, and Markdown (harper), pinch an extensible config for different languages
  • Spell checking — misspelled words successful Markdown and plain-text files are underlined successful the theme's diagnostic colour via harper
  • Go to definition — clasp Ctrl and hover to underline symbols pinch a target, past Ctrl-click to jump to the nonstop definition
  • File character sidebar pinch git status, ignored-file dimming, create/delete actions, record watching, and draggable resizing
  • Project-wide search powered by rg (ripgrep)
  • In-file find/replace pinch next/previous navigation, match-case, and whole-word options
  • Command palette — Ctrl+Shift+P fuzzy hunt complete each action, pinch keybinding hints, unrecorded toggle state, MRU ordering, and a status-bar confirmation flash
  • Markdown preview for .md, .markdown, and .mdx files
  • Theme system — built-in strategy (derived from terminal colors astatine runtime), toast-dark, and toast-light, positive a VSCode taxable importer
  • Auto-save — soiled files are written to disk aft a configurable inactivity hold (default 300 ms), pinch an optional manual-save mode
  • Configurable via ~/.config/toast/config.json

Homebrew (macOS)

brew instal paradise-runner/tap/toast

Download a release

Grab a zip for your level from the releases page, unzip it, and spot the binary connected your $PATH:

# illustration for Apple Silicon curl -Lo toast.zip https://github.com/paradise-runner/toast/releases/latest/download/toast-darwin-arm64.zip unzip toast.zip install -m755 toast-darwin-arm64 /usr/local/bin/toast

Standalone macOS app

⚠️ Experimental: this bundles toast wrong a libghostty terminal window and has much bugs than the terminal version. The TUI — Homebrew aliases the release binary supra — is the primary, best-tested measurement to tally toast.

Prefer a autochthonal app complete the terminal? Each merchandise besides ships Toast.app — a complete desktop app pinch its ain terminal model (libghostty), autochthonal menu bar, and dock icon. No terminal, Homebrew, aliases Go required.

  1. Grab the zip for your Mac from the releases page: toast-app-darwin-arm64.zip for Apple Silicon (M1/M2/M3/M4), toast-app-darwin-amd64.zip for Intel.
  2. Unzip it and resistance Toast.app into your Applications folder.
curl -LO https://github.com/paradise-runner/toast/releases/latest/download/toast-app-darwin-arm64.zip unzip toast-app-darwin-arm64.zip mv Toast.app /Applications/

First launch: the app is not code-signed aliases notarized yet, truthful macOS Gatekeeper will artifact a plain double-click. Right-click Toast.app in Finder and take Open, past Open again — it launches good from then on. Or clear the quarantine emblem once: xattr -dr com.apple.quarantine /Applications/Toast.app

open -a Toast ~/src/foo.go open -a Toast ~/src/myproject

Build from source

Requires Go 1.25.2+.

git clone https://github.com/paradise-runner/toast cd toast make build # binary written to bin/toast
toast # unfastened existent directory toast path/to/dir # unfastened a circumstantial directory toast path/to/file # unfastened a record (auto-detects git root) toast new/file.go # unfastened a caller record buffer if the genitor directory exists toast --help toast --version

All keybindings tin beryllium remapped successful ~/.config/toast/config.json (see Configuration).

Key Action
Ctrl+Q Quit
Ctrl+S / Cmd+S Save
Ctrl+W / Cmd+W Close tab
Ctrl+P Quick-open record hunt (fuzzy)
Ctrl+Shift+P / Cmd+Shift+P Command palette
Ctrl+Alt+Right Next tab
Ctrl+Alt+Left Previous tab
Ctrl+B Toggle sidebar
Ctrl+Shift+E Toggle attraction betwixt editor and record tree
Ctrl+Shift+F Search
Ctrl+F / Cmd+F Find and switch successful the existent file
Ctrl+G / Cmd+L Go to line
Ctrl+Shift+M Toggle Markdown preview
Ctrl+Z / Cmd+Z Undo
Ctrl+Y / Ctrl+Shift+Z / Cmd+Y / Cmd+Shift+Z Redo
Ctrl+Space / Cmd+Space Trigger completion
Ctrl+Shift+K Show hover
Ctrl+hover / Ctrl-click Check for and travel a definition
F12 Go to the meaning astatine the cursor

Toast sounds ~/.config/toast/config.json connected startup. Missing keys autumn backmost to defaults.

{ "theme": "toast-dark", "editor": { "tab_width": 4, "auto_indent": true, "trim_trailing_whitespace_on_save": true, "insert_final_newline_on_save": true, "auto_save": "auto", "auto_save_delay_ms": 300, "bottom_padding": 3 }, "sidebar": { "visible": true, "width": 30, "confirm_delete": true, "file_icons": { "enabled": true, "color_mode": "accent" } }, "ignored_patterns": [".git", "node_modules", "__pycache__", ".DS_Store"] }

auto_save selects the prevention mode: "auto" (default) writes soiled buffers to disk aft auto_save_delay_ms milliseconds of inactivity, while "manual" requires an definitive prevention (ctrl+s / super+s).

All default keybindings tin beryllium overridden pinch the keybindings object. Each action accepts a database of cardinal strings (supports ctrl, alt, shift, ace modifiers). An quiet database unbinds the action.

{ "keybindings": { "save": ["ctrl+s"], "quick_open": ["ctrl+o"], "next_tab": ["ctrl+tab"], "prev_tab": ["ctrl+shift+tab"], "quit": [] } }

Available actions: quit, toggle_sidebar, save, new_file, close_tab, undo, redo, next_tab, prev_tab, search, find_replace, quick_open, command_palette, theme_picker, go_to_line, go_to_definition, toggle_focus, markdown_preview, show_hover, trigger_completion.

Omit lsp to usage Toast's managed defaults for Go, Rust, Python, JavaScript, TypeScript, and Markdown; group "lsp": {} to disable each connection servers.

{ "lsp": { "zig": { "command": "zls", "args": [], "extensions": [".zig"] } } }

Built-in themes: system, toast-dark, toast-light. Custom themes unrecorded successful ~/.config/toast/themes/.

Import a VSCode theme:

toast migrate-theme vscode path/to/theme.json # writes ~/.config/toast/themes/<theme-name>.json

Then group "theme": "<theme-name>" successful your config.

Found a bug aliases person a characteristic request? We'd emotion to perceive from you! Please unfastened an issue connected GitHub pinch arsenic overmuch item arsenic possible. Your feedback helps make Toast better.

make build # compile make tally # spell tally ./cmd/toast . make test # spell trial ./... make test-integration # tally opt-in Ghostty/tmux terminal integration tests make test-integration-update # refresh aureate screenshots
More