btText is a lightweight and accessible Windows desktop application for managing and reusing text snippets. It keeps frequently used text in a searchable SQLite database and can paste snippets into other Windows applications through the clipboard. Optional hotstrings and configurable global hotkeys make common snippets available without leaving the active application.
- Accessible with screen readers and keyboard navigation.
- Organize snippets in a hierarchical category tree.
- Search, create, edit, move, copy, and delete snippets and categories.
- Assign a weight and an optional hotstring to each snippet.
- Variables: Insert localized, contextual, and interactive values and position the caret after insertion.
- Paste snippet content into active Windows application.
- Preserve and restore the previous clipboard contents after a paste.
- Configure global hotkeys and react to the active keyboard layout.
- Follow the Windows light or dark app mode at startup, or select a fixed appearance in the settings.
- Multilingual user interface (english and german).
- Store data in a portable directory or in the per-user Windows application data directory.
- Open an existing database or create a new one.
- Run as a portable application or install per user without administrator privileges.
btText is designed to be accessible with screen readers. The user interface uses native controls with descriptive labels and supports keyboard navigation, so snippets and categories can be managed without relying on visual input. What is more, dark mode is supported.
Each snippet has a name, text, category, and optional settings that control how it is found and used.
The weight determines the snippet's priority in search and category lists.
Higher-weight snippets are shown before lower-weight snippets, which makes
frequently used entries easier to find. Weights are deliberately simple: they
are a small ranking choice, not a numerical score or a measurement of text
quality.
A hotstring is a short trigger assigned to a snippet, for example ;addr for
an address. When the trigger is typed in another Windows application, btText
recognizes it and expands it to the associated snippet text. Hotstrings are
optional and each hotstring must be unique.
btText provides a wxPython user interface backed by a SQLite database. It loads the selected database and settings when it starts, and keeps the interface synchronized with changes to snippets and categories.
When a user selects a snippet, btText writes its text to the Windows clipboard
and sends the paste keystroke to the active application. The existing
clipboard is captured first and restored after the operation. Hotstrings and
global shortcuts are handled by the Windows-specific modules in
platform_support/ and coordinated by controllers in ui/.
Prebuilt Windows releases are produced as:
btText-<version>-setup-windows.exe, a per-user x64 installer.btText-<version>-portable-windows.zip, a portable application.
See docs/setup.md for installation, portable use, database
selection, updates, uninstall behavior, and build options.
The end-user manuals are available in English and German.
- Windows 11 x64. May also work with older versions of Windows, but this has not been tested.
- Standard CPython 3.15 for Windows x64 when running from source.
- wxPython 4.3.2 and the dependencies in
requirements.txt.
Packaged releases include the Python runtime and do not require Python to be installed separately.
py -3.15 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe btText.pyFor tests, translation tooling, and packaging, install the development dependencies as well:
.\.venv\Scripts\python.exe -m pip install -r requirements-dev.txt
.\.venv\Scripts\python.exe -m unittest discover -s tests -vThe Windows build script checks the project, runs the tests, and creates the portable application. With NSIS installed, it also creates the installer:
.\build.ps1To create only the portable release:
.\build.ps1 -PortableOnlyIt is recommended to build the installer with this unofficial version of NSIS to get X64 installers.
- btText.py: Application entry point
- core/: Application data and domain logic
- platform_support/: Windows-specific functionality
- ui/: wxPython user interface
- tests/: Automated tests
- locale/: Translations
- tools/: Development tools
- docs/: Project documentation
- assets/: Application assets
- installer/: Windows installer definition
- build.ps1: Windows release build script
Copyright (c) 2026 Adrian Kurz.
btText is released under the MIT License. See LICENSE for the
complete license text.