Skip to content
queball1999Public

About

Snippet manager tool.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation


Warning

Before installing V0.0.5 or later, please back up your snippets and completely uninstall the application.

QSnippet is a local-first application for system-wide text snippet expansion. While there are several feature-rich snippet tools available, many felt very overwhelming to get started and didn’t fit how I work.

I built QSnippet to be fast, predictable, and fully under my control. The goal was to provide a simple, reliable tool that improves my daily life without adding unnecessary complexity.

This project also serves to demonstrate my skills as a software developer and is purely a passion project. If you use QSnippet, consider supporting me.

Support me on Ko-fi

What QSnippet Does

QSnippet helps you:

  • Replace repeated typing with short, easy-to-remember triggers
  • Store and manage all snippets in one place
  • Improve consistency in emails, notes, and documentation
  • Work faster without relying on cloud services or browser extensions

Installation

QSnippet currently supports Windows and Linux only. Support for macOS is planned.

Prebuilt binaries are provided on the Releases page.

  • Windows: Installer or Portable version

  • Linux: Debian (.deb) package

If you prefer to build and run QSnippet from source, see the Development Notes below.

Screenshots

Demo Demo of QSnippet

See the full Screenshots Gallery for a look at the homepage, snippet editor, and settings dialog across all built-in themes (Light, Dark, Nord, Pink).

Development Notes

QSnippet is written in Python and can be run directly from source or packaged as a standalone executable.

Running from Source

Clone the repository and start the application:

git clone "https://github.com/queball1999/QSnippet"
cd QSnippet
python main.py

Building with PyInstaller

To build a standalone executable, run:

pyinstaller --noconfirm --onefile --windowed --icon ".\images\QSnippet.ico" --add-data ".\images:images" ".\QSnippet.py"

or

python -m PyInstaller --noconfirm --onefile --windowed --icon ".\images\QSnippet.ico" --add-data ".\images:images" ".\QSnippet.py"

Verifying Downloads

All QSnippet releases are cryptographically signed using GPG. Each downloadable file is accompanied by a corresponding .sig signature that allows you to verify its integrity and authenticity.

These steps assume you have downloaded the project’s public signing key gpg-public.asc and want to verify a release file.

  1. Import the public key:

    gpg --import gpg-public.asc
    
  2. Verify checksum:

    gpg --verify SHA256SUMS.txt.sig SHA256SUMS.txt
    
  3. Verify binary:

    sha256sum -c SHA256SUMS.txt
    

Important: Do not run any downloaded files unless they are successfully verified.

Unit Testing

To help mitigate breaking changes, unit tests verify core functionality. The test suite includes regular tests and optional benchmark tests.

Running Tests

Run standard tests (recommended for CI/CD):

pytest

Run only benchmark tests:

pytest --benchmark -m benchmark

Run all tests including benchmarks:

pytest --benchmark

Expected Output

Standard test run should produce output similar to:

===================== test session starts =====================
platform linux -- Python 3.13.12, pytest-9.0.2, pluggy-1.6.0
rootdir: .../QSnippet
plugins: Faker-37.4.0
collected 53 items (45 deselected by "-m not benchmark")

tests/core/test_flatten_yaml.py ...             [  5%]
tests/core/test_scaling.py ...                  [ 11%]
tests/service/test_snippet_service.py .......   [ 26%]
tests/utils/test_config_utils.py ..........     [ 45%]
tests/utils/test_file_utils.py ..........       [ 64%]
tests/utils/test_logging_utils.py .....         [ 73%]
tests/utils/test_reg_utils.py ......            [ 84%]
tests/utils/test_snippet_db.py ........         [100%]

===================== 45 passed in 2.34s ======================

Note: Benchmark tests are skipped by default to allow tests to run in environments without X11 display (like CI/CD runners). Use --benchmark flag to include them.

License

License Change Notice

As of January 2026, QSnippet is licensed under the GNU General Public License v3.0 (GPLv3).

  • All releases and commits published on or after January 2026 are distributed under GPLv3.
  • All releases published prior to this date remain licensed under the MIT License and are unaffected.

This project is licensed under the GNU General Public License v3.0 (GPLv3). See the LICENSE file for details.

Contributions

All contributions are welcome! Feel free to contribute directly to the project as a developer, or support the project’s continued development.

About

Snippet manager tool.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages