Marunja CleeCode

clee — ~/project

CleeCode

your terminal IDE

Your agent. Your subscription.
Inside your editor.

claude · codex · opencode · gemini — live in your buffers. No API keys. No GUI editor can say that.

Subscription login and API keys both work. The agent is the real CLI and authenticates itself. CleeCode never sees a credential.

Install GitHub

macOS, Linux and Windows · MIT · release notes

CleeCode in action: editing a file with the tree on the left and terminals below

The agent inside

One key. Zero configuration.

Ctrl+Shift+A. The agent opens beside your work — the real CLI, in a real terminal. It sees your cursor. Its edits land live in your buffers. It asks before it writes.

Seven MCP tools, consent rules, one-line setup for agents outside the drawer: the tour on GitHub.

The agent drawer opening on its launcher — claude, opencode, codex, gemini — then claude running in it, and the edit it makes landing in the open main.py with the changed lines lit

Pictures, PDFs, Markdown

A terminal that shows you the picture.

Real pixels. Even over ssh.

Two photographs open as tabs in CleeCode, with the same picture rendered through chafa in a terminal pane below
The same file twice: pixels in the tab, blocks in the pane. The difference is the point.

Best in Ghostty, kitty, WezTerm or iTerm2; graceful fallback anywhere. Details in the tour.

Markdown & LaTeX

Render your documents.

Markdown becomes a live document beside its source — typing moves both. LaTeX re-typesets to the page on Run.

Markdown source on the left and the rendered document on the right, two tabs onto one file
One file, two tabs: source and document. No save needed.
A LaTeX source on the left and its typeset PDF page on the right, inside CleeCode
Edit the .tex, press Run. The page re-renders in place.

Octave & Python

Your interpreter, with the panel no terminal has.

Every variable, live. Plots as tabs. Your transcript stays yours.

The Octave workspace: the script on the left, a figure as a tab, the prompt below and the variables panel beside
clee -w octave: script, figure, prompt, and every variable listed without asking.
The pylab workspace: a matplotlib figure as a tab, the session below and its variables beside
clee -w pylab: the same, in Python. Run feeds the session that is already there.

Cells, breakpoints, frame variables: the walkthrough.

The day's work

Rename. References. Format. Code actions.

The language server's power, with git's discipline: every rewrite shows you a diff first, then applies as one undo. And Ctrl+Shift+D is a full git panel — history as a graph, hooks running, commits signed.

200 languages, project-wide replace, column editing, folding: the full list.

Crash safety

It does not close on you.

kill -9 the editor. Your unsaved text comes back. Tested on the real binary, really killed.

The far end of an ssh

Nothing to install at the far end.

One binary. The mouse works. The compiler's output is clickable. Nine themes, English and Italian.

The nine themes: CleeCode, Turbo, Solarized Dark, Eighties, Mocha, CleeCode Light, Solarized Light, Ocean Light and GitHub
Five dark, four light. The theme you chose is the theme you get.

Install

Three lines on macOS and Linux.

brew tap msavox/clee
brew trust msavox/clee
brew install clee

Older Homebrew has no brew trust and does not need it — skip it.

Two on Windows.

scoop bucket add clee https://github.com/msavox/scoop-clee
scoop install clee

Prebuilt binaries

Attached to every release.

From source

cargo install --locked --git https://github.com/msavox/cleecode

Rust 1.85+. Then clee --install-font for the icons; on macOS, clee --install-app for the Dock.

Everything on this page is built and tested — nothing is a plan. Some of it sits on master ahead of the last tag; the release notes say which is which.