therefore is a cross-platform text editor (Windows, macOS, Linux) drawn entirely on the GPU.
Editing is local and synchronous, so every keystroke is zero-latency. The window idles at 0% CPU and wakes on input, while anything that could block — git, SSH, the shell — runs on a background thread so it never holds up the cursor.
Why did I make therefore?
I wanted an editor that felt instant and native rather than a browser wrapped in a window.
therefore is built on winit, wgpu and glyphon, configured entirely in Lua, and ships everything it needs compiled into a single binary.
What does this project contain?
- Native GPU rendering with winit + wgpu + glyphon — text, panels, icons and graphs all drawn on the GPU
- A separate git window: history with a commit graph, staging, diffs, branches, merging and stashes
- An embedded terminal — a real PTY with full ANSI colour, toggled with Ctrl+`
- Incremental tree-sitter syntax highlighting for Rust, Python, JS/TSX, C, C++, Go, Lua and more
- Remote files over SFTP — open user@host:/path, edit locally, save back over SSH
- Lua config for themes, fonts, sizes and keybindings, applied live on save
- Bundled themes and JetBrains Mono, plus a live markdown preview