Download v0.1.114 ↓
v0.1.114 · Now Available · Linux · Windows · macOS

The code editor built for the AI era

Tiny native binary (~12 MB bare, ~4.4 MB compressed on Linux). C++ and Rust. 238 file types · 82 language lexers. JSON / HTML / SQL fixers — regex first, local AI as fallback. Local AI by default; cloud LLMs opt-in. Or pick the Local AI build for a binary that physically refuses to talk to public endpoints.

$ curl -fsSL https://notepatra.org/install.sh | sh
$ curl -fsSL https://notepatra.org/install.sh | sh
PS> irm https://notepatra.org/install.ps1 | iex
Download Binaries View on GitHub
Notepatra Welcome tab — Dark theme
Welcome tab — 10-icon toolbar, hero card, recent-files placeholder
Notepatra editor — C++ source with 9-hue canonical syntax highlighting
Editor — C++ source, 9-hue canonical palette

Designed for people who write code.

9-hue canonical color palette across 82 lexers. Native Qt5 widgets. No Electron, no telemetry.

Memory-mapped at every scale.

Rust memory-mapped loading avoids a double read on open; the file is then held in the editor buffer (peaks at roughly 3x file size in RAM during load (~1-2x once loaded)). Files up to ~1.86 GB load fully; larger files open truncated and read-only. 82 language lexers, 238 file types. Native execution — not Electron.

🛡

Private by design.

Local-first AI. Default backends are Ollama / llama.cpp on your own machine. No telemetry, no analytics, no mandatory API key. Cloud LLMs (OpenAI / OpenRouter / Anthropic-via-proxy / Gemini-via-OpenRouter) are opt-in via the OpenAI-compatible backend — pick your runner in Preferences → AI. Your code stays on your machine unless you opt into a cloud backend or click "git push".

Built-in tools.

AI · Compare with word-level diff · Git · Terminal · JSON/HTML/SQL formatters · REST client · Macros. No plugins to hunt for. Works on first launch.

~12 MB
Bare Binary
238
File Types
82
Language Lexers
2 GB
Max File Size
67
Regression Suites
0
Electron
Download v0.1.114
One-command install or direct download
Auto-detecting installer scripts, or pick your platform from GitHub Releases. No telemetry. No tracking. Just a binary.
🌐

Notepatra

DEFAULT

Local AI out of the box · cloud LLMs opt-in. Talk to Ollama or llama.cpp locally by default, or any OpenAI-compatible server via the llama.cpp entry's user-configured URL. Paste an OpenAI / Anthropic / OpenRouter / Mistral / Azure URL in Settings if you want cloud — fully optional, no key required for local use.

Pick this if you want maximum flexibility — local first, with cloud available when you need a flagship model on a hard problem. Most users.

.tar.gz .deb .rpm .AppImage .dmg .msi .exe .zip
Get Notepatra v0.1.114 →
🔒

Notepatra Local AI

CLOUD-FREE

Physically cannot talk to any public LLM endpoint. api.openai.com · api.anthropic.com · openrouter.ai · api.mistral.ai · api.groq.com · everything else — refused at the network layer. Ollama / llama.cpp / LAN-hosted LLMs continue to work.

For regulated industries (finance, healthcare, legal, gov), data-sovereignty regions (EU GDPR, India RBI, China), air-gapped engineering networks. Built via -DNOTEPATRA_NO_CLOUD=ON — auditable, no setting to flip.

notepatra-local-ai_*_amd64.deb notepatra-local-ai_*_arm64.deb notepatra-local-ai-*.msi
Get Notepatra Local AI v0.1.114 →

Both flavors are local-first by default. The regular build adds optional cloud LLM URLs you paste in Settings; the Local AI build refuses them at the network layer for auditable compliance. notepatra --version tells you which flavor you have installed.

🐧

Linux x64

Binary · 4.4 MB .tar.gz

.tar.gz
🐧

Linux ARM64

aarch64 · Raspberry Pi 5 · 4.1 MB .tar.gz

.tar.gz
🍎

macOS Apple Silicon

M1 / M2 / M3 / M4 · 27.7 MB .dmg

.dmg
🪟

Windows x64

37.4 MB zip · 42.7 MB MSI · 32.8 MB setup.exe

.zip / .msi / .exe
💼 Portable .zip = most-downloaded format. Extract anywhere — USB stick, locked-down work laptop, cloud sync folder. Zero registry, zero admin. Ships with two one-click helpers: register-associations.bat adds Notepatra to Windows "Open with" for 27 file extensions (.txt .md .json .py .cpp .js .rs .go .sql .html .css and more), unregister-associations.bat undoes it. HKCU-only — never asks for admin.
See it in action
Welcome → editor → search.

Welcome screen · C++ source with full syntax highlighting · Project Search streaming results incrementally. Captured from running Notepatra on Linux + Windows.

Notepatra tour — Welcome screen, then editor.cpp source with syntax highlighting, then Project Search with live streaming results
Real capture — not a mockup. More on GitHub →
Your AI. Your machine. Your choice.

Notepatra's AI runs locally by default — pick Ollama, llama.cpp (loads any GGUF), or any OpenAI-compatible server (any OpenAI-compatible server). When you'd rather use a frontier model, four cloud backends are wired in too: Ollama Cloud, OpenRouter, OpenAI, Azure OpenAI — six total backends in the dropdown alongside the local Ollama + llama.cpp entries. No mandatory API key. No subscription. No telemetry.

When the regex fixer can't repair your broken JSON — the AI can. Hybrid approach: speed of regex, intelligence of AI.

Explain Code Find Bugs Refactor Write Tests Fix JSON Fix HTML Fix Brackets Add Comments Generate Docs Optimize Translate Py↔JS
Supported backends — 6 in the dropdown, plus OpenAI-compat
🏠 Local (no account, no key)
Ollama
localhost:11434 · default
llama.cpp (GGUF)
localhost:8080 · llama-server
Cloud (API key)
100+ models — Claude, GPT, Gemini, Llama, Mistral, DeepSeek, Qwen, Grok, Kimi
gpt-oss:120b · qwen3-coder:480b · deepseek-v3.1:671b
OpenAI
ChatGPT API · GPT-4o, GPT-5, o-series
enterprise Azure resource + deployment
Plus any OpenAI-compatible server — point the llama.cpp entry at any URL/port via Settings → Preferences → AI. Notepatra speaks the standard OpenAI /v1/chat/completions protocol.
// Broken JSON input
{users: [{'id': 1, name: 'Alice',}

// Notepatra fixes it instantly:
// ✓ single quotes → double quotes
// ✓ unquoted keys quoted
// ✓ trailing commas removed
// ✓ missing braces added

{
  "users": [
    {
      "id": 1,
      "name": "Alice"
    }
  ]
}|
Features
Everything you need. Nothing you don't.
Built on QScintilla — a battle-tested Scintilla-based editor engine. Hot-path file I/O and search use Rust for memory safety on untrusted input.
🤖

AI Assistant (Ctrl+Shift+A) NEW

Local-first AI. Two local dropdown backends: Ollama and llama.cpp (any GGUF). The llama.cpp entry accepts a user-configured URL, so it can reach anything that speaks OpenAI's /v1/chat/completions — any OpenAI-compatible server (those are separate programs you install, not bundled). Explain · Find Bugs · Refactor · Write Tests · Fix JSON · Add Comments · Optimize · Translate. No mandatory API key, no telemetry. Default is local — your code stays on your machine. Cloud LLMs (OpenAI, OpenRouter, Ollama Cloud, Azure OpenAI) are opt-in from the dropdown.

🔎

Project Search (Ctrl+Shift+G) NEW

Recursive search across file names AND file contents, project-wide. Streams line by line so memory use stays flat regardless of file size — tested on 2 GB logs. Exact line:col coordinates, double-click a match to jump the caret to the exact character. Any text-based language. Skips binary files with a NUL-byte heuristic.

🗒️

Noter — meeting notes NEW

A local-first, two-pane notes workspace — notes list on the left, editor on the right. No accounts, no bots; notes live in plain files under ~/Documents/Notepatra/Noter/. AI Extract (Ctrl+Alt+E) pulls a summary plus action items, decisions, questions, and risks. Set reminders on any note — or straight from Extract — and they're all collected in a central Reminders list (Overdue · Today · This week · Later) with desktop notifications at the due time while Notepatra is running.

📐

Diagram tool (.npd) NEW

Flow charts, ER diagrams and system designs from a tiny text DSL — the .npd source is the truth, the canvas is a live projection. Describe it in plain English and a local model writes it (review before it touches the canvas), start from a template, or type it yourself — Import Mermaid too. 5 shapes, ~55 hand-drawn icons, labelled + bidirectional arrows, 4 palettes (+ a default fallback), infinite pan/zoom. Export to PNG / JPEG / PDF on every build (plus SVG / HTML / WebP where your Qt supports them). Opens from the toolbar next to Noter. Renders natively in the default binary — every platform, no WebEngine.

🔍

AI Interaction Log NEW

Audit exactly what your AI did — transparency, not just a promise. Every request and response to any backend — local (Ollama / llama.cpp) or cloud (OpenRouter / OpenAI / Azure / Ollama Cloud), including Noter's Extract — is recorded to a local SQLite log you can open and read: timestamp, backend, model, full prompt + response, tokens, latency. Entries auto-prune after 7 days; a credential scrubber masks API keys / tokens / PEM keys before writing. The viewer has filters, Export JSON, and Prune-now. On by default with one-click opt-out in Settings. Zero network egress — purely local. Open from Features → AI Interaction Log…

Rust-Powered Core

Memory-mapped file I/O. Aho-Corasick search. Myers diff. Tested on 2 GB files. The heavy lifting runs in compiled Rust — no garbage collector, no runtime.

🔄

Safe auto-update NEW

Click Download in the in-app "update available" dialog and the right artifact for your OS + architecture is fetched, SHA-256 verified against the release's SHA256SUMS, and handed to the native installer (MSI on Windows, DMG in Finder on macOS, file manager on Linux). Your current install is never touched by the updater — the OS installer does the swap under its own transactional rollback. Checksum mismatch, cancelled download, network drop, disk full — any failure leaves the running app exactly as it was.

📅

Insert Date / Time

Edit → Insert, or Ctrl+F5. Five formats: 2026-04-20 13:45, 2026-04-20, April 20, 2026, 13:45:09, ISO-8601. Saves keystrokes in logs, changelogs, meeting notes.

🖱

Clickable status bar

Click Language, Encoding, or EOL indicators in the status bar to pop the matching change-menu right where you clicked.

📂

Clean menu organization

Three clear menus — Tools (everything built-in: AI, Terminal, Compare, JSON/HTML/SQL, Git, REST, Bracket), Plugins (third-party extensions YOU add), Utilities (Hash, Measurement). No more guessing where a feature lives.

🔀

Compare with word-level diff

Side-by-side Scintilla diff. Green for added, red for deleted, amber for changed — with LCS-based word-level intra-line highlighting so you see the exact tokens that changed. Dark mode aware. Prev/Next navigation. Ignore whitespace, case, empty lines.

📁

Session Persistence

Close Notepatra, reopen tomorrow — same files, same cursors, same window size. Crash recovery saves unsaved work every 10 seconds.

👁

File Change Detection

Someone edits your file externally? Notepatra asks: reload or keep yours. Git gutter shows changed lines in green/yellow/red.

🎙

Macro Recording

Record keystrokes (Ctrl+Shift+M), playback (Ctrl+Shift+P), run multiple times, save to .macro files, replay tomorrow.

📑

238 File Types

82 language lexers — Python, Rust, Go, C/C++, Java, JS/TS, SQL, HTML, CSS, JSON, YAML, Markdown, Bash, Fortran, Verilog, MATLAB, LaTeX and more.

🎨

3 Themes + Color Tags

Light, Dark, Monokai. Color-tag any tab (7 colors + custom). Pastel green current line, double-click word highlight in orange.

🧩

Plugin System

Drop a .so/.dll/.dylib in the plugins folder. Simple C API — export 2 functions to create a plugin. JSON, HTML, SQL, Bracket tools all built in.

🔭

Find & Replace

In-document find / replace / extended mode (\n, \t, \xNN) / regex. Ctrl+F to find, Ctrl+H to replace. For searching across multiple files, use Project Search (Ctrl+Shift+G) at the top of this grid instead.

Built-in Plugins
Batteries included
Each plugin opens in its own tab. Format, Fix + Format, or AI Fix. All with Ollama status indicator.
{ }

JSON Tools

Format, Minify, Fix+Format, AI Fix. Handles missing braces, trailing commas, unquoted keys, single quotes.

+ AI Fix
</>

HTML Tools

Format with proper indentation. Fix unclosed tags. Minify. AI repair for broken nesting.

+ AI Fix
( )

Bracket Tools

Check all brackets with line numbers. Auto-fix missing ), ], }. Detects begin/end mismatches.

+ AI Fix
SQL

SQL Formatter

UPPERCASE or lowercase keywords. Configurable indentation. T-SQL, PL/SQL, MySQL, PostgreSQL.

Compare / Diff

Side-by-side Scintilla editors. +/- markers. Navigate between diffs. Ignore whitespace/case.

Git Integration

Changed files panel. Branch display. Push/Pull. Git gutter margins. Open on GitHub.

▸_

Built-in Terminal

Real bash/zsh/cmd as a tab. cd works. Run any command without leaving the editor.

🌐

REST Client

Send HTTP requests, see responses with pretty JSON, all in an editor tab — no external client needed for quick checks.

0xFF

Hex Editor

Color-coded hex dump. Offset, hex bytes, ASCII columns. View any binary file.

Why Notepatra
How Notepatra compares
Editor Size AI Built-in JSON Fixer Diagrams Notes 2 GB Files Linux Windows Mac Free
Notepatra ~12 MB
Notepad++ 9 MB Plugin
VS Code 300 MB Extension Extension Extension Extension
Sublime Text 30 MB $99
Kate 40 MB
Vim 3 MB Plugin

Notepad++ also opens large files; the ✗ marks "out-of-the-box, no plugins."

Security
Verifiable. Local. Hands off your data.
No analytics, no telemetry. Network traffic only on explicit actions — AI request, git push/pull, REST client, update check. Every release is checksummed and cryptographically signed. Verify before you run.
🔐

SHA-256 checksums

Every release ships a SHA256SUMS file. install.sh and install.ps1 verify it automatically and refuse to install on mismatch. Latest checksums →

✍️

Cosign signatures (Sigstore)

Every artifact is signed via keyless OIDC signing tied to the official GitHub Actions workflow. The cert is recorded in the public Rekor transparency log — no trust in any single key.

📜

SLSA build provenance

Every binary carries a cryptographic attestation linking it to the exact git commit + workflow file + runner environment that built it. Verify with gh attestation verify.

🦀

Rust safety + cargo audit

Hot-path file I/O and search are written in Rust for memory safety on untrusted input; QScintilla (C++) handles lexers and editor rendering. CI runs cargo audit on every build to flag vulnerable dependencies.

🚫

Zero telemetry

No analytics, no error reporting, no phone-home. The only outbound connections are: localhost Ollama (when you use AI), git push/pull (when you click), and HTTP requests you explicitly send via the REST tab. Verifiable with strace.

📬

Responsible disclosure

Found a vulnerability? Use private vulnerability reporting. Full policy in SECURITY.md and /.well-known/security.txt.

Version History
Releases
Every release of Notepatra, from the very first one — transparent, append-only, no surprises. Note: v0.1.4 / v0.1.6 / v0.1.11 tags exist in git but were never published as GitHub Releases — their content was rolled forward into v0.1.5, v0.1.7, and v0.1.12 respectively to reduce release churn.
v0.1.114 LATEST
2026-06-11 · Opening files is now bulletproof: the Windows "double-click does nothing" ghost-open class is dead, sessions can't be silently lost, and the File → Close All freeze is fixed — 13 deep-dive findings plus 30 follow-ups confirmed by two adversarial audit fleets; every serious one fixed and pinned by tests. Full ctest 67/67. · Lite (default, bare) + Full · Linux · macOS (incl. Apple Silicon) · Windows
Fixed — opening files
  • The ghost open is dead: double-clicking a file while Notepatra is starting, busy, or hung can no longer end in nothing visibly happening. The single-instance handoff now waits for proof-of-life before sending, confirms every byte arrived, and falls back to a visible temporary window if the running instance is truly stuck — double opens are structurally impossible.
  • Non-ASCII paths (accents, Cyrillic, CJK) open correctly on Windows — arguments arrive as true UTF-16 instead of the ANSI codepage.
  • Missing files always tell you: stale recent-files entries, vanished session files, and typo'd CLI paths surface a non-modal notice instead of disappearing (and the phantom second status strip is gone).
  • --line N jumps in the first file as --help promises — and never jumps an unrelated tab when that file fails to open.
Fixed — session safety
  • Every window that can't write the session (temporary --new / fallback windows, the rare "another instance is restoring" window) now prompts Save / Discard / Cancel per modified tab on close — nothing is silently discarded.
  • session.json writes are atomic on Windows; two instances racing at login can no longer both write the session and clobber each other's tabs.
  • Cold-start restore is deferred past first paint behind a PID-stamped marker, so a hung restore can't brick the next launch.
Fixed — freezes & crashes
  • File → Close All froze the app at 100% CPU — always (the close loop fought the keep-one-tab backfill forever). Fixed, along with Close Others closing the wrong tab.
  • Modal prompts can't stack or fire invisibly — the file-watcher's File Changed / Deleted prompts are strictly one-at-a-time across all paths, including while a tab-close Save prompt is open (that collision could crash the app).
  • Typing in multi-megabyte files no longer stutters: the status-bar word count is cached and debounced, and giant pastes are guarded.
  • A crash now leaves an async-signal-safe flag so the next launch can tell you about it.
Notes
  • 13 deep-dive findings + 30 fleet-confirmed follow-ups — every serious one fixed; 7 low-priority items documented as deferred. Two adversarial fleets ran before this ship — the second audited the fixes themselves and caught 3 bugs the first wave introduced. Full ctest 67/67 (13 new test binaries), 16/16 real-binary multi-process smoke. No new dependencies, same bare Lite binary.
🎉 100 releases
v0.1.100 — one hundred shipped iterations, each one local-first, no telemetry, no account. Thank you for being here.
See every release on GitHub
Full version history from v0.1.0 onwards — release notes, signed artifacts, SHA-256 checksums, cosign signatures, SLSA build provenance.
github.com/singhpratech/notepatra/releases →

v0.2.0 — next milestone

LSP support · Plugin ecosystem · More outreach · Community feedback cycle

FAQ
Frequently asked questions
Quick answers. For deeper docs see the README and SECURITY.md.

What is Notepatra?

Notepatra is a native Qt5 + QScintilla code editor with an original C++17/Rust core for hot paths (memory-mapped I/O, Aho-Corasick search, Myers diff, formatters). Runs on Linux x64 / ARM64, macOS Apple Silicon, and Windows x64 from a single codebase. ~12 MB bare executable, no Electron runtime, no telemetry, no mandatory account. Local-first AI is built in: pick from Ollama, llama.cpp, OpenRouter, OpenAI, Azure OpenAI, or Ollama Cloud. As of v0.1.114: 238 file types · 82 language lexers, a Data Analyst mode that works out of the box on CSV files and an in-memory SQLite engine (the Full download bundles the DuckDB v1.1.3 engine on every platform), agentic Coding Mode with read / list / search / write / apply_diff tools, Cursor-style Composer + Ctrl+I inline edit, multi-cursor, AI-driven git tools (read-only: status / diff / log / branch / show).

Is it really free? What's the catch?

No catch. GPL-3.0, no telemetry, no analytics, no API key, no enterprise tier, no subscription. Source on GitHub. The "catch" is that it's a one-person open-source project — no SLA, no warranty, no support contract. See the disclaimer in the footer.

Can I install Notepatra at my company?

Yes — same license posture as Notepad++, GIMP, vim, and Linux (all GPL). Notepatra is a standalone end-user editor: under the GPL, using Notepatra as an editor does not place obligations on the files you edit (see the FSF GPL FAQ), and it doesn't phone home. For IT, legal, or procurement teams reviewing the install: see the For Enterprise page — plain-English explainer, supply-chain provenance (SHA-256 + cosign + SLSA), and a copy-paste block for your software-acceptance request.

How big is the binary?

The bare executable is ~12 MB (12.2 MB on Linux x64) across every platform. Latest v0.1.114 download sizes: 4.4 MB Linux x64 tar.gz · 4.1 MB Linux ARM64 tar.gz · 27.7 MB macOS DMG · 42.7 MB Windows MSI / 32.8 MB NSIS / 37.4 MB portable zip. Installed on Windows the on-disk footprint grows to ~75-85 MB because the MSI extracts bundled Qt5 + QScintilla DLLs out of the compressed payload — normal for every Qt-based installer. Linux stays tiny (~12 MB on disk) because Qt is a system package; macOS and Windows bundle Qt + QScintilla DLLs for portability.

Does my code go to the cloud?

By default no — Notepatra is local-first. Pick a local AI backend (Ollama on localhost:11434 or llama.cpp's llama-server on localhost:8080) and nothing leaves your machine. The llama.cpp entry also accepts a user-configured URL, so you can route it to any OpenAI-compatible server you've installed (any OpenAI-compatible server — those are separate programs you install and license). Cloud backends (OpenRouter, OpenAI, Azure OpenAI, Ollama Cloud) are opt-in from the AI dock dropdown. Even when you opt in, the v0.1.55 credential scrubber strips API keys / tokens / private-key blocks from any code or chat content before it leaves the machine, and the privacy "Share file with AI" toggle (default OFF) controls whether the active editor file is even visible to the model. Verifiable with strace.

What languages does Notepatra highlight?

238 file types via 82 language lexers as of v0.1.114 — Python, JavaScript, TypeScript, C, C++, C#, Java, Kotlin, Rust, Go, Dart, Solidity, Zig, Vala, Hack, Julia, R, Protobuf, F#, HCL/Terraform, Thrift, GraphQL, GDScript, Nim, Cython, Mojo, Crystal, Elixir, Scala, Groovy, Apex, HTML, CSS, SQL (6 dialect presets), JSON, JSON5, YAML, TOML, Markdown, Bash, Fish, Nushell, Ruby, Perl, Lua, Fortran, Verilog, VHDL, MATLAB, LaTeX, BibTeX, Jinja, Liquid, Twig, Dockerfile, DotEnv, Gitignore, Pascal, CMake, Makefile, and more. Each lexer ships with comment / uncomment / block-comment syntax (Ctrl+Q / Ctrl+Shift+Q) and proper file-extension routing.

How do I verify a download is genuine?

Every release ships with SHA-256 checksums, cosign signatures (Sigstore + Rekor), and SLSA build provenance. The install scripts verify SHA-256 automatically and refuse to install on mismatch. Full guide in SECURITY.md.

Will it open big files?

Yes — large files load fully. The Rust core uses memory-mapped loading (mmap2), which avoids a double read on open; the file is then held in the editor buffer (peaks at roughly 3x file size in RAM during load (~1-2x once loaded)). Files up to ~1.86 GB load fully; larger files open truncated and read-only. Files from 50 MB up to ~1.86 GB automatically disable lexer/syntax highlighting, auto-complete, word wrap, and indent guides to keep things snappy, but stay fully editable.

Can I write plugins?

Yes. Drop a .so/.dylib/.dll in ~/.config/notepatra/plugins/. The plugin C API is two functions: notepatra_plugin_name() and notepatra_plugin_run(text, len). Example in the README.

Who built it and why?

Built by Prateek Singh, constructed with Claude. The short version: Linux and macOS deserved a first-class native code editor, and 2026 deserved one with AI built in — local-first by default, cross-platform from one codebase, ~12 MB bare.

The Story

I'm Prateek Singh. A developer who spent years on Linux wanting a small, fast, free native code editor — and finding only Wine hacks or bloated Electron editors eating 500 MB of RAM to show a text file.

Every text editor told me to pick two of three: fast, powerful, native. Vim is fast and native but cryptic. Modern Electron editors are powerful but heavy. The truly tiny native ones either don't have AI or don't run cross-platform.

So I built Notepatra. Not a port. Not a wrapper. Something new — for everyone. I asked: what would a small native code editor look like if it was built today, in 2026, when AI is part of every developer's workflow, and ran natively on Linux + macOS + Windows from one codebase?

The answer: a tiny native binary (~12 MB bare) with a Rust-powered core, Scintilla editing engine, and local-first AI integration (cloud backends optional). No telemetry. No subscription. No mandatory API key — on Linux, macOS, and Windows.

Ready to try?

One command. No installer. No bloat. Just an editor that works.

Get Notepatra Star on GitHub