Krishnan2 downloadsAn IDE in your code blocks: smart Enter and indentation, closing brackets, suggestions and templates, coloured brackets and sticky headers; on desktop, checking as you type, quick fixes.
An IDE in your code blocks. Smart Enter and indentation, closing brackets, suggestions as you type, live templates, coloured brackets, sticky headers and go to definition, in every code block of your notes. On desktop it also checks your code as you type, offers quick fixes, talks to language servers, formats, and edits with a local AI model. Text outside code blocks is left alone.

tot and total is suggested; xs.for + Tab becomes a whole for loop.def you're in stays pinned at the top.Every feature has a switch in the settings.
: in Python, {, then/do in the shell and if/for/function in MATLAB, Ruby, Lua and Julia. Between brackets, Enter opens the pair onto its own lines. else:, } and end move back a level as you type them.""" docstrings. Enter after if x in MATLAB adds the end (and fi/done in the shell, end in Ruby, Lua and Julia).#, %, //, --.| Keys | Does |
|---|---|
| ⌥↑ / ⌥↓ | Move the line or the selected lines, within the block |
| ⌘D | Duplicate the line or the selection (in code blocks) |
| ⌃G | Select the next occurrence of the word, to type in several places |
| ⇧F6 | Rename a name everywhere in the block |
| ⌘B or ⌘-click | Go to where a name is defined (on the definition: its next use) |
| ⇧⌥F | Format the block (desktop) |
| ⌥↩ | Quick fixes for the problem on the line (desktop) |
| ⌘I | Describe a change; a local model makes it (desktop) |
| ⌘I in an equation | Write it as a function, with a quick check (desktop) |
On Windows and Linux, ⌘ is Ctrl.
class …:, def …:, for … {) stay pinned at the top, up to three deep. Click one to go there.gTN finds getTotalNumber), but the first letter has to match. Where you're naming something new (import numpy as np, def area(width, int count) no list appears. Enter takes a suggestion only when it starts with what you typed; Tab always takes it. Names come from the block, the note's other blocks of the same language and the language's keywords; what you pick often moves up.fori, main, psvm, sout, def, cls, func, iferr, plt… then Tab, and Tab again through the blanks. About twenty languages, and you can add your own.xs.for becomes for item in xs:; cond.if, x.not, len(xs).print, x.var, items.log, A.disp work the same way, per language.np, pd, plt, Path, defaultdict and more; clang's and clangd's fix-its in C, C++ and Objective-C; a missing ; in Java. The problem's card has them as buttons too.$$ … $$ or $ … $ equation, ⌘I writes it as a Python, MATLAB, Julia or C++ function, named after your notes, with a quick check against the formula written out with loops. With Tahoe Run, the check runs straight away, and a failure goes back to the model once.The AI features use Ollama on your computer (a small coding model such as qwen2.5-coder:1.5b is enough for ghost text; ⌘I prefers 7B or more), or Apple Intelligence through Tahoe Intelligence.
Developed and tested on macOS; the desktop tools are written for Windows and Linux too, but that's untested. On phones and tablets, everything above On desktop works.
Tahoe is a set of plugins and a theme that work on their own and fit together.
| Tahoe Run | Run the code in your notes, like a notebook: Python with a debugger and variables view, MATLAB, and ~25 other languages. | available |
| Tahoe Math | A calculator in your notes: type an expression ending in = and the answer appears. |
available |
| Tahoe | A clean, Mac-like theme, in light and dark. | available |
| Tahoe Code | An IDE in your code blocks: suggestions, checking as you type, quick fixes, go to definition, formatting and AI edits. | this one |
| Tahoe Glass | Real refraction for the Tahoe theme's glass, and System Settings–style settings pages. | coming soon |
| Tahoe Organize | Keep a growing vault tidy: inbox triage, smart folders, colored tags, link suggestions, vault health, literature notes and text from images. | available |
| Tahoe Intelligence | On-device AI for your notes: ask your notes, related notes, distilling permanent notes and more. | available |
Better together
Tahoe Code is an independent project. It isn't affiliated with, or endorsed by, Apple, MathWorks or JetBrains.
MIT © 2026 Krishnan Adaikkappan
npm ci
npm run build # writes main.js
Releases are built by GitHub Actions: push a tag that matches the version in manifest.json, then publish the draft release it creates.
Other plugins can add suggestions through app.plugins.plugins["tahoe-code"].api.registerCompletionProvider(…); Tahoe Run uses it for its running sessions.