Servers only while they're useful
Prettier stops after ten minutes without formatting and comes back on the next format. Tailwind's server starts only in projects that use Tailwind.
Luna is a macOS code editor built on Zed. It runs Ghostty's terminal engine, keeps your Claude Code and Codex limits in view, learns which completions you pick, and keeps language servers lean.
Windows version coming soonThis is a working mockup with Luna's own source. Open files, scroll the code, type in the terminal, or click the usage meter.
The built-in terminal runs on libghostty-vt, the engine inside Ghostty. vim, tmux and claude get the same key handling, colors and mouse modes they get in a standalone terminal, and any folder opens in a Ghostty window from the project panel.
Terminal panel · Project panel → Open in GhosttyThe status bar shows how much of your Claude Code and Codex five-hour and weekly limits you've used. Add more than one account and switch from the menu; Luna swaps which account Claude Code is signed in to.
Status bar → usage menuPick an account, add one, or remove one. Example accounts and numbers.
Luna indexes every symbol in your project in the background and offers them next to the language server's suggestions. Names you've picked before come first, weighted by how often and how recently. The index is cached, so reopening a project only reads the files that changed.
Any file → start typingPick a name further down the list. When the same letters are typed again, it comes first.
ESLint runs inside TypeScript's server instead of starting its own, rust-analyzer stops analyzing every crate up front, and a server that grows past 6 GB restarts once it's been idle for five minutes.
Default settings, nothing to set upPrettier stops after ten minutes without formatting and comes back on the next format. Tailwind's server starts only in projects that use Tailwind.
On save, rust-analyzer checks the package you edited instead of the whole workspace.
Symbol indexing waits while Low Power Mode is on or the Mac is running hot, then catches up.
Luna stops drawing frames when nothing on screen changes, and the cursor stops blinking after ten seconds, so an idle window lets the CPU sleep.
Every 30 seconds Luna hands memory it has freed back to the system instead of keeping it reserved.
One toggle stops file scanning, file watching and language servers for a huge folder. Turn it back on and Luna catches up.
For Apple Silicon Macs (M1 or later). Signed and notarized by Apple.
Download .dmg85 MBor use Homebrewbrew install --cask gk7734/tap/lunaA Windows build of Luna is on the way.
Once installed, Luna checks its releases and updates itself.