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

The code editor built for the AI era

Tiny native binary (~9 MB bare, ~2 MB compressed on Linux). C++ and Rust. 226 file types · 92 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 92 lexers. Native Qt5 widgets. No Electron, no telemetry.

Memory-mapped at every scale.

Rust memory-mapped I/O — 2 GB files open without loading the whole file into RAM. 92 language lexers, 226 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.

~9 MB
Bare Binary
226
File Types
92
Language Lexers
2 GB
Max File Size
25
Regression Suites
0
Electron
Download v0.1.72
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 / llama.cpp / LM Studio / self-hosted Ollama on the LAN by default. 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.72 →
🔒

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.72 →

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 · 3.2 MB .tar.gz

.tar.gz
🐧

Linux ARM64

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

.tar.gz
🍎

macOS Apple Silicon

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

.dmg
🪟

Windows x64

36.5 MB zip · 39.9 MB MSI · 32.0 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 28 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 (LM Studio, Jan, vLLM, KoboldCpp, llamafile, text-generation-webui). When you'd rather use a frontier model, six cloud backends are wired in too: Ollama Cloud, OpenRouter, OpenAI, Azure OpenAI (plus 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. Works with LM Studio · Jan · vLLM · KoboldCpp · llamafile · text-generation-webui — set the base URL in Settings → Preferences → AI.
// 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. Pick your runner: Ollama, llama.cpp (any GGUF), LM Studio, Jan, vLLM, or anything that speaks OpenAI's /v1/chat/completions. 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, etc.) are opt-in if you point Notepatra at one.

🔎

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.

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+R), playback (Ctrl+Shift+P), run multiple times, save to .macro files, replay tomorrow.

📑

226 File Types

92 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 2 GB Files Linux Windows Mac Free
Notepatra ~9 MB
Notepad++ 9 MB Plugin
VS Code 300 MB Extension Extension
Sublime Text 30 MB $99
Kate 40 MB
Vim 3 MB
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.72 LATEST
2026-05-11 · Enterprise installers + cloud-free notepatra-local-ai build. · Linux · macOS · Windows
📦 Fleet-grade installers for every Linux distro
  • .deb for Debian / Ubuntu / Mint / Pop!_OS (x64 + ARM64) — sudo apt install ./notepatra_0.1.72_amd64.deb drops the binary at /opt/notepatra/ with a /usr/bin/notepatra symlink, full hicolor icon set, .desktop registration, GTK / desktop-database trigger hooks.
  • .rpm for Fedora / RHEL / CentOS Stream / Rocky / Alma (x64 + ARM64) — sudo dnf install ./notepatra-0.1.72-1.x86_64.rpm. Bundles QScintilla 2.14.1 alongside the binary because Fedora's qscintilla-qt5 package exports a subtly different symbol set; the bundled copy means the same upstream binary runs uniformly across distros.
  • AppImage for Arch / openSUSE Tumbleweed / Manjaro / EndeavourOS / any glibc 2.38+ distro — chmod +x Notepatra-0.1.72-x86_64.AppImage and run. Linuxdeploy + linuxdeploy-plugin-qt bundle Qt5 + plugins; libGL stays a host dep (standard AppImage convention). Older glibc → use .deb / .rpm.
  • Windows MSI (already in v0.1.71) — msiexec /i notepatra-0.1.72.msi /quiet for SCCM / Intune push. macOS DMG — drag to /Applications; admins can sudo cp -R from a script.
🔒 notepatra-local-ai — by-construction cloud-free build
  • Compile-time flag -DNOTEPATRA_NO_CLOUD=ON produces a binary that physically refuses to talk to api.openai.com, api.anthropic.com, api.mistral.ai, openrouter.ai, generativelanguage.googleapis.com, api.groq.com, api.together.xyz, api.deepseek.com, api.cohere.com, api.x.ai, or any other public LLM endpoint. Three layers of defense: UI strips the cloud preset shortcuts + cloud-URL paste box, QNetworkAccessManager requests are gated by a 49-case unit-tested allowlist (NotepatraNetworkPolicy::isPrivateNetworkHost), QNetworkRequest refuses to fire if the host isn't loopback / RFC1918 / CGNAT-100.64/10 / IPv6-ULA fc00::/7 / .local / .lan / .internal / .intranet / .corp / .home.
  • Shipped as notepatra-local-ai_0.1.72_amd64.deb / _arm64.deb (Debian/Ubuntu) and notepatra-local-ai-0.1.72.msi (Windows, per-machine MSI to C:\Program Files\Notepatra Local AI\ with its own UpgradeCode). Ollama / llama.cpp / LM Studio / Jan / vLLM / self-hosted Ollama on the LAN — all continue to work.
  • For regulated industries — finance, healthcare, legal, government — and data-sovereignty regions (EU GDPR, India RBI, China). Auditors confirm via strings notepatra | grep -c openai.com = zero hits, or notepatra --version = Notepatra v0.1.72 (cloud-free / local-ai).
🧪 Validation
  • New unit test test_network_policy.cpp — 49 cases (every loopback / RFC1918 / CGNAT / IPv6-ULA range + every cloud LLM endpoint we know about + adversarial look-alikes like api.openai.com.evil.com and localhost.attacker.com). 28/28 ctest pass on both the regular and cloud-free build flavors.
  • Local Docker verification: .deb install on Ubuntu 24.04, .rpm install on Fedora 40, AppImage extract-and-run on bare Fedora — every artefact launches end-to-end with bundled QScintilla resolved via RPATH $ORIGIN/lib.
🔌 How it's wired
  • New module src/network_policy.{h,cpp} — pure helper isPrivateNetworkHost(QUrl) with no DNS lookups (name-based, TOCTOU-safe).
  • Gates inserted at every m_nam->get() / m_nam->post() call site in ollama.cpp via the NOTEPATRA_NO_CLOUD_GATE + NOTEPATRA_NO_CLOUD_OK macros (no-op in regular build, refuse-and-emit-error under NOTEPATRA_NO_CLOUD).
  • New build scripts installers/debian/build-deb.sh, installers/rpm/{notepatra.spec.in, build-rpm.sh}, installers/appimage/build-appimage.sh — usable standalone for downstream packagers.
  • installers/windows.wxs parameterized via <?ifdef NoCloud ?> — passing -dNoCloud to candle.exe flips ProductName, UpgradeCode, install dir, Add/Remove Programs entry to the Local AI variant.
v0.1.71 · 2026-05-11 · AI Interaction Log — audit every cloud + local LLM exchange (SQLite, WAL mode, 7-day rotation, credential scrubber). View on GitHub → v0.1.70 · 2026-05-11 · AI cleanup + Notepad++-style session persistence + Data Mode attachments visible. View on GitHub → v0.1.69 · 2026-05-10 · Critical fix — AI Coding / Data mode no longer locks tool buttons. View on GitHub → v0.1.68 · 2026-05-10 · AI dock auto-exits fullscreen on editor tab switches. View on GitHub → v0.1.67 · 2026-05-10 · AI Assistant: three independent per-mode conversations. View on GitHub → 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 code editor written from scratch in C++17 with a 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. ~9 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.67: 226 file types · 92 language lexers, native DuckDB engine for the Data Analyst mode, agentic Coding Mode with read / list / search / write / apply_diff tools, Cursor-style Composer + Ctrl+I inline edit, multi-cursor, AI-driven git tools.

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.

How big is the binary?

The bare executable is ~9 MB stripped across every platform. Latest v0.1.67 download sizes: 3.2 MB Linux x64 tar.gz · 3.0 MB Linux ARM64 tar.gz · 26.6 MB macOS DMG · 39.9 MB Windows MSI / 32.0 MB NSIS / 36.5 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 (~9 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, llama.cpp's llama-server, LM Studio, Jan, vLLM, KoboldCpp) and nothing leaves your machine. 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?

226 file types via 92 language lexers as of v0.1.67 — 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 (5 dialects), 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 — up to 2 GB. The Rust core uses memory-mapped I/O (mmap2), so opening a 2 GB log file doesn't load the whole file into RAM (pages are faulted in lazily as you scroll). Files larger than 50 MB automatically disable syntax highlighting and auto-complete to keep things snappy.

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, ~9 MB stripped.

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 (~9 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