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.