One editor. Every language. Every workflow.
An open-source, cross-platform desktop environment for code, technical writing, LaTeX, Markdown, data files and AI-assisted work. Built with Python, PyQt6 and QScintilla, with native Qt panels and optional plugins instead of an Electron runtime.
English | Italiano | Manuale EN | Manuale IT
NotePadPQ is designed for people who do not want to switch between a text editor, a LaTeX IDE, a Markdown viewer, a terminal, a spreadsheet and a set of small utilities. The core editor remains usable on its own; advanced workflows are added through integrated panels and optional plugins.
| Area | Included capabilities |
|---|---|
| Editor | 40+ language modes, QScintilla and Pygments lexers, folding, minimap, smart highlighting, autocomplete, snippets, macros, multi-cursor and configurable typography |
| Projects and files | Tabs, split views, session restore, project manager, recent files, external-change handling, tail mode and paged editing for files over 200 MB |
| LaTeX | Root-file resolution, latexmk profiles, BibTeX/Biber awareness, Function List, completion, diagnostics, templates, PDF preview and bidirectional SyncTeX |
| Build system | 12 built-in profiles, custom profiles, variables, environment overrides, pre/post hooks, pipelines, task discovery, concurrent jobs and clickable diagnostics |
| Preview | Markdown, HTML, reStructuredText, LaTeX structure, PDF, images, equations, Mermaid and integrated PDF search/selection tools |
| Development tools | LSP client, terminal/PTY panel, Git integration, REST client, formatter plugin and project task runner |
| Data and documents | Spreadsheet editor, rich-text/WYSIWYG editor, database browser, hex viewer and file conversion workflows |
| AI and plugins | Multi-provider AI assistant, local models, contextual editor actions and a broad plugin ecosystem |
- Syntax highlighting for native QScintilla languages including Python, JavaScript, TypeScript, C/C++, Java, C#, Bash, SQL, LaTeX, Markdown, HTML, CSS, XML, JSON and YAML, plus Pygments-backed modes such as Go, Rust, PHP, Swift, Kotlin, Scala, Dart, R, TOML, Haskell, Elixir and Julia.
- Automatic language detection using file extension, filename and content.
- Code folding, dynamic line numbers, minimap, word wrap, whitespace display, EOL display, bracket/tag matching and auto-closing pairs.
- Context-aware autocomplete from document words, language snippets, API dictionaries and LSP servers.
- Multi-cursor editing, macros, column editor, case conversion, smart indentation, comment/uncomment, line operations, regex tester and numeric converter.
- Markup shortcuts for both Markdown and LaTeX, table alignment, environment and tag wrapping, LaTeX environment pairing and synchronized environment renaming.
- Encoding and line-ending detection, external modification handling, backup, autosave and recovery of unsaved buffers.
- Command Palette (
Ctrl+Shift+P) with fuzzy command search. - Goto Anything (
Ctrl+Shift+G) for open files,:line,@symboland>commandnavigation. - Find/Replace with Python regular expressions and capture-group substitution.
- Search across open tabs and recursive search/replace on files on disk.
- Bookmarks, five-color marks, go-to-line and matching-bracket navigation.
- Horizontal and vertical split view, cloned tabs and MRU tab switching
(
Ctrl+Tab). - Files over 200 MB are loaded progressively in paged mode. Page navigation, approximate global line navigation and streaming save remain available; operations requiring the entire document are explicitly limited.
LaTeX is a first-class workflow, not only a syntax-highlighting mode.
- Root resolution follows project conventions such as
% !TEX root,.latexmkrc,main.texand included files. - The Build Panel provides 12 built-in profiles:
Python,Python (uv),C (gcc),C++ (g++),LaTeX (pdflatex),LaTeX (xelatex),LaTeX (lualatex),Make,Bash,JavaScript (node),Rust (cargo)andGo. - Custom profiles support
${FILE},${DIR},${OUTDIR},${ROOT},${BASENAME},${BASEFILE},${FILENAME},${EXT},${LINE}and${COL}. The$(VARIABLE)spelling is accepted too. - Build output can be separated from source files through
${OUTDIR}. PDF preview and SyncTeX use the same project context. - BibTeX is detected and can be forced through the supported
latexmkoptions; Biber is discovered bylatexmkfrom the project bibliography metadata. - Build-on-save and debounced build-while-editing are configurable. Output, parsed errors, LSP diagnostics and build navigation are available in the integrated panels.
- The Function List understands sections, subsections, commands, labels, references and included files, with hierarchical navigation.
- LaTeX completion covers commands, environments, packages, labels, references, citations and bibliography keys across project files.
- The LaTeX Wizard handles equations, environments and content-filled tables; Quick Table handles visual table layout, borders and cell merges.
- Dropping an image into a LaTeX document opens the figure assistant and
generates project-relative
\includegraphicscode with optional figure, caption and label syntax. - Templates include article, report and Beamer variants. User and project
templates can be placed under
.notepadpq/templates. - SyncTeX connects editor positions and PDF positions in both directions.
Install a TeX distribution separately from NotePadPQ. On Debian/Ubuntu, a typical setup is:
sudo apt install latexmk texlive-latex-extra biber
python -m pip install -e ".[latex]"The exact package names vary by distribution. Ensure that the selected engine
(pdflatex, xelatex or lualatex), latexmk, bibtex or biber, and
synctex are available on PATH. Then open the root .tex file and use the
LaTeX profile from the Build Panel. The project manual contains the complete
LaTeX reference and troubleshooting notes.
On Arch Linux, the optional project tools can be installed with:
sudo pacman -S biber perl-yaml-tiny perl-file-homedir texlabperl-yaml-tiny and perl-file-homedir are required by latexindent;
texlab enables LSP features, while NotePadPQ retains local LaTeX fallbacks
without it.
- Built-in and user-defined profiles with per-profile environment variables.
- Pre-build and post-build hooks, sequential pipelines and independent concurrent build workers.
- Automatic task discovery from Makefile,
package.json,pyproject.toml,Cargo.toml,CMakeLists.txt, Gradle, Docker Compose, Dockerfile andjustfile. - Interactive PTY mode for programs such as
npm init,ssh, Python REPLs and other terminal applications. - Configurable output limits to protect memory on very large logs.
- Clickable error lists that jump to the relevant file and line.
- Optional build-on-save and build-while-editing with debounce.
- Live Markdown, HTML and reStructuredText preview.
- LaTeX structure preview without requiring a compiler.
- Integrated PDF viewer with thumbnails, zoom, continuous scrolling, search, text selection/copy, keyboard result navigation and printing.
- Image hover preview for LaTeX, Markdown and HTML image references, including vector PDF images when the optional PDF stack is available.
- Equation rendering for LaTeX and Markdown hover previews. MathJax can render formulas in the live Markdown preview when network access is available.
- Mermaid blocks in Markdown can be rendered through Mermaid.js when enabled and network access is available.
- Smart PDF crop, page navigation and PDF export workflows.
- Optional external PDF viewer command with a safe
{PDF}placeholder, while the system default remains the fallback.
The native LSP client supports diagnostics, hover documentation, completion, go-to-definition, references, rename and formatting where the selected server provides the capability.
Supported server mappings include:
| Language | Server |
|---|---|
| Python | pylsp |
| C/C++ | clangd |
| Rust | rust-analyzer |
| Go | gopls |
| JavaScript/TypeScript | typescript-language-server |
| LaTeX | texlab |
Servers are external programs and must be installed separately. The integrated terminal uses a native PTY where supported and follows the current editor directory. Git, formatter, REST and task-runner functionality is available from dedicated panels or plugins.
The plugin system includes the following integrated extensions:
| Plugin | Scope |
|---|---|
| AI Assistant | Multi-provider chat, streaming, contextual actions, attachments, token estimates, regeneration and inline diffs |
| Clipboard History | Persistent multi-entry clipboard with quick selection |
| Compare & Merge | Editable three-way comparison, character-level diff and synchronized scrolling |
| Code Formatter | Python, JS/TS/HTML/CSS, C/C++, Rust, Go, JSON and XML formatting; optional format-on-save |
| Database | SQLite, PostgreSQL, MySQL/MariaDB and Oracle browser/query workflows with spreadsheet results |
| Encrypt/Decrypt | AES-256-GCM and ChaCha20-Poly1305 when cryptography is installed, with lighter fallback tools |
| FTP Browser | FTP/SFTP browsing, SSH terminal and SMB mount helpers where supported by the operating system |
| Git Integration | Status, log, diff, branches and PR/MR workflows |
| Hex Viewer | Binary file inspection in hexadecimal form |
| REST Client | HTTP/REST requests, OAuth 2.0, multipart uploads, scripts, assertions, collections and code snippets |
| Rich Text Editor | WYSIWYG editing for DOC/DOCX/ODT/RTF/HTML through optional conversion tools |
| Search PQ | Advanced multi-file search and replacement with text, AND/NOT, regexp and LIKE modes |
| Spreadsheet | CSV, TSV, XLSX, XLS, XLSM and ODS editing with filters, formulas, charts and export |
| Terminal | Native PTY/xterm.js terminal panel synchronized with the current file directory |
| Web Search | Web and Wikipedia search from selected editor text |
- Six interface languages: Italian, English, German, French, Spanish and Polish.
- Built-in themes, live theme editor and JSON import/export.
- Lucide, Material and system icon sets.
- Spell checking with independently selectable dictionary language.
- Smart typography, paragraph focus, Markdown task toggling and YAML front matter highlighting.
- Plain-text mode, distraction-free writing mode (
F11), session restore and single-instance file opening. - New interface languages can be added by placing a translated JSON file in
i18n/; preserve the existing JSON keys and metadata format.
Download the latest AppImage from the GitHub releases page, make it executable and run it:
chmod +x NotePadPQ-*.AppImage
./NotePadPQ-*.AppImageThe AppImage bundles the Python and Qt runtime. External tools such as a TeX distribution, LSP servers and system formatters remain separate by design.
git clone https://github.com/buzzqw/NotePadPQ.git
cd NotePadPQ
python3 -m venv .venv
. .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e .
python main.pyOn Windows, use py -m venv .venv and .venv\\Scripts\\activate. On Linux,
FreeBSD and macOS, use the corresponding Python 3 executable. The repository
also contains setup.sh, which creates a virtual environment and interactively
offers optional components; run it from a Bash-compatible shell.
The optional groups are declared in pyproject.toml and can be combined:
python -m pip install -e ".[latex,spreadsheet,richtext,database,ftp,encrypt,formatter,restclient]"| Extra | Enables | Main packages |
|---|---|---|
latex |
PDF hover, equation rendering and advanced LaTeX preview | pymupdf, matplotlib, sympy |
spreadsheet |
XLSX/XLS/ODS workflows | openpyxl, xlrd, odfpy |
richtext |
WYSIWYG and document conversion | mammoth, htmldocx |
database |
PostgreSQL, MySQL/MariaDB and Oracle connectors | psycopg2-binary, mysql-connector-python, oracledb |
ftp |
SFTP support | paramiko |
encrypt |
Strong encryption algorithms | cryptography |
formatter |
Python formatters | black, ruff |
restclient |
Advanced HTTP features | requests |
dev |
Test tooling | pytest, pytest-qt |
Some plugins also use system tools. Pandoc and LibreOffice are needed for
selected document conversions; Prettier, clang-format, rustfmt and gofmt
are installed through their respective ecosystems.
Install only the servers for the languages you use. Examples:
python -m pip install python-lsp-server
npm install -g typescript-language-server typescriptInstall clangd, rust-analyzer, gopls and texlab through the official
package or release mechanism for your operating system.
Additional screenshots for PDF, spreadsheet, rich text and database workflows are available in the manual.
- English user manual: complete interface reference, shortcuts, preferences, plugins, LSP and LaTeX documentation.
- Manuale italiano: riferimento completo in italiano.
- Windows build system: PyInstaller and installer workflows.
Install development dependencies and run the test suite:
python -m pip install -e ".[dev]"
pytest -q
python -m compileall -q core editor ui plugins config i18nThe project uses pyproject.toml for package metadata, optional dependency
groups, pytest configuration and Ruff settings. Contributions should preserve
the existing test coverage and avoid committing credentials, generated build
artifacts or user configuration.
NotePadPQ is released under the EUPL-1.2. Issues, feature requests and contributions are welcome on GitHub.
If NotePadPQ is useful to you, you can support development through PayPal.
NotePadPQ è un ambiente desktop open source e multipiattaforma per sviluppo, scrittura tecnica, LaTeX, Markdown, dati e lavoro assistito dall'AI. Non è soltanto un editor: integra pannelli per compilazione, anteprima PDF/Markdown, SyncTeX, LSP, terminale, Git, REST, database, fogli di calcolo, rich text e un sistema di plugin estendibile.
Le aree principali sono:
- editor QScintilla/Pygments per oltre 40 linguaggi, autocomplete, macro, multi-cursore, minimap, split view e recupero sessione;
- workflow LaTeX completo con root project,
latexmk, BibTeX/Biber, Function List gerarchica, template, diagnostica, PDF preview e SyncTeX bidirezionale; - Build Panel con 12 profili built-in, profili personalizzati, variabili, pipeline, task discovery, PTY, build concorrenti e lista errori cliccabile;
- anteprima live Markdown/HTML/reStructuredText, visualizzatore PDF, hover di immagini/equazioni e diagrammi Mermaid opzionali;
- plugin AI, Git, terminale, database, spreadsheet, rich text, REST, FTP, Search PQ, formatter, encrypt/decrypt, hex viewer e web search.
Per installazione, scorciatoie, preferenze, configurazione LaTeX, plugin e risoluzione dei problemi, consulta il Manuale italiano completo. Il Manuale inglese contiene la stessa copertura tecnica e gli esempi aggiornati.
git clone https://github.com/buzzqw/NotePadPQ.git
cd NotePadPQ
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e .
python main.pyPer il supporto LaTeX installa anche una distribuzione TeX con latexmk, un
engine (pdflatex, xelatex o lualatex), BibTeX/Biber e SyncTeX; per le
funzionalità PDF avanzate aggiungi python -m pip install -e ".[latex]".


