A text editor that stops where it should. Windows 10, Windows 11 and Linux. Free software under GPL-3.0-only.
Notepad when you want it. More when you need it.
Download · bpad.prompt-forge.dev · Manual · Wiki
BachelorPad+ Lite is Windows 11 Notepad's feature set, plus one thing Notepad does not have: a note layer that knows which of your documents are about the same subject.
It opens instantly, it never touches the network, and it cannot run anything.
This started as a much larger product and was deliberately cut down. Ten crates were removed on purpose, each with a written decision behind it (ADR-0057, ADR-0059--ADR-0064), until what was left was Notepad plus the one idea worth keeping. The larger one is still being built; there is a waitlist.
Editing. Tabs, find and replace, search across a folder, go to line, undo and redo, overtype on the Insert key, zoom, every encoding Notepad opens -- UTF-8, UTF-16 and the legacy code pages, saved back as they came -- LF and CRLF, Light/Dark/Organic/Green themes plus System. A rope underneath, so an edit costs what it changes rather than what the file weighs.
The note layer, which is the part that is not Notepad:
- semantic filenames --
Title_DDMMMYYYY.ext, proposed from the document itself and never applied without you seeing it first - related notes -- what else have I written that is about this
- duplicate detection -- automatically on save, and on demand
- a research report over your whole collection, which tells you what it did not look at
- per-document privacy profiles governing what is written down at all
Recovery. A journal keeps unsaved work through a crash, a kill or a power cut, and asks on the next launch -- and keeps it until you say Discard, not merely until you close the question (ADR-0084).
Default-editor registration on Windows and Linux, which never seizes an association -- it shows you what it would do and hands you the means (ADR-0012).
Format recognition for Markdown, YAML, JSON, JSONL/NDJSON, TOML, CSV/TSV, XML and source code. The operations over them left under ADR-0062.
| Execute anything | No scripting, no macros, no cells, no interpreters (ADR-0057) |
| Reach the network | No telemetry, no update check, no crash reporting, no AI (ADR-0006) |
| Launch another program | Not even a browser for its own help (ADR-0075) |
| Seize a file association | It writes a script you read and run (ADR-0012) |
| Delete out of your profile | Even files left behind by removed features (ADR-0070) |
| Rename a file silently | Every rename is proposed and approved first |
No macOS build (ADR-0072, which says what it would cost). No printing. No Markdown preview, which is undecided rather than impossible (ADR-0081). No drag and drop to open yet -- it is buildable, and does not work on a native Wayland session when it is (the same ADR). No encryption; that left with ADR-0064. No claim to be accessible yet: F10 reaches the menus and the controls are named for a screen reader, but nobody has run NVDA or Orca on it, and until somebody has it does not say so (ADR-0088).
Typing slows down in a large file: the default view lays out the whole
document on every key, and from 512 KiB the status bar says so and names
--editor-view, which does not (ADR-0092).
Duplicate line, move line and the Insert menu need --editor-view, because
they have to know where the caret is and the toolkit's text widget will not
say (ADR-0018).
From the releases page (ADR-0093):
| You have | Download |
|---|---|
| Windows 10 or 11 | the -setup.exe -- no administrator prompt, installs for you alone |
| Ubuntu, Debian, Mint | the .deb -- sudo apt install ./bachelorpad-lite_*_amd64.deb |
| Fedora, openSUSE | the .rpm -- sudo dnf install ./bachelorpad-lite-*.x86_64.rpm |
| Any other Linux | the .AppImage -- chmod +x it and run it |
| Arch | the PKGBUILD -- makepkg -si |
| Either, unpacked anywhere | the .zip or the .tar.gz |
The installer offers, unticked, to put the program in Open with; it never makes itself the default for anything (ADR-0012).
Windows needs nothing installed first. Linux needs glibc 2.35 or later -- Ubuntu 22.04, Debian 12, Mint 21, Fedora 36 or newer (ADR-0087).
The downloads are unsigned. Windows SmartScreen will warn; choose More info, then Run anyway. Signing is a 1.x release's, through SignPath or the Microsoft Store (ADR-0094), and self-signing was refused outright, because a self-signed certificate is only satisfied once the user installs a root certificate they have no reason to trust (ADR-0055).
SHA256SUMS.txtis attached to every release and answers tampering in transit, which is the threat a certificate answers worst.
Full instructions: Installation and first launch.
git clone https://github.com/dboles99/bachelorpluslite
cd bachelorpluslite
cargo run --releaseLinux needs libfontconfig1-dev libxkbcommon-dev libxcb-shape0-dev libxcb-xfixes0-dev libxcb1-dev libgl1-mesa-dev libwayland-dev.
./scripts/Install-GitHooks.ps1 # once per clone
./scripts/Invoke-LocalCI.ps1 -Linux # the gate: both legs, ~7 minutes
./scripts/New-Release.ps1 -Linux # archives for both targets, with checksumsscripts/Invoke-LocalCI.ps1 is the authoritative gate and runs from
pre-commit and pre-push. Every commit in this repository has passed it.
GitHub Actions runs the same stages under the same names for pull requests and
releases (ADR-0073); when the two disagree, the
local one is right.
More: Building from source, Testing and the gate.
docs/ is the one source. Everything else is generated from it
(ADR-0075) -- the manual, the in-app help the
archives carry, the GitHub Wiki, and the website. Three reference pages are
generated from the code rather than from prose, because the flag list, the
shortcut list and the menu map already have a home there and a second copy
would be wrong within a session.
| The manual | Everything, one file |
docs/user/ |
One topic per file |
docs/tutorials/ |
Start-to-finish walkthroughs |
docs/developer/ |
Building, testing, releasing, architecture |
| Help › User Guide | The same pages, inside the editor, as a document |
GPL-3.0-only. Not -or-later, and the difference is the decision:
Slint's grant is to version 3 and no other, so a project
offering "or later" would be offering terms it has not been granted
(ADR-0071).
LICENSE is the text. THIRD-PARTY-NOTICES.md
lists all 626 crates linked into the binary, generated from the resolve graph
and checked by the gate.
Issues and pull requests are welcome. Read CONTRIBUTING.md
first -- particularly the part about a separate BachelorPad+, which is why
contributions need a sign-off.
Before touching crates/bp-ui/, read
prompts/rosettas/R011_WIRE_CAPABILITY_INTO_SHELL.md.
It holds the traps that have each cost somebody a session.
For a security problem, do not open a public issue --
SECURITY.md.
DECISIONS.md is the index of the architecture decision
records and the one home for every lesson learned. The lessons are the
interesting part: this repository writes down the shape of each mistake, not
only the fix.
A sample, all of them real:
- A comment claiming something is not a property of the code. Ask what would fail if it stopped being true; if nothing would, the comment is a wish.
- Two claims about the same fact coexist for exactly as long as nothing asks.
- A test that proves two things agree is evidence about two things. Before trusting a constant as the one home for a value, grep for the value.
- A claim in the record is not a property of the repository. An ADR whose reasoning rests on an external fact should name the command that would test it.
- Deleting the code that writes a file does not delete the file.
- The dangerous unsupported platform is not the one that fails to compile. It is the one that compiles and answers as something else.