Skip to content

file-bricks/ProfiPrompt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

ProfiPrompt

Ein Desktop-Tool zur Verwaltung, Versionierung und Organisation von AI-Prompts. Gebaut mit PySide6 (Qt6).

Aktueller Stand: Version 1.0.1 behebt die Board-Speicherung und stellt sicher, dass einzelne TXT-Exporte echten Plaintext schreiben. Der aktuelle Unreleased-Stand reicht die Metadaten-Einstellung auch an Versions-PDFs aus Hauptfenster und Dashboard weiter, ergänzt den portablen Bibliotheksexport profiprompt-library-v1.json und bringt einen statischen Web/PWA-Companion für mobile Lese-, Such- und Kopierpfade mit.

Funktionen

  • Prompt-Verwaltung -- Erstellen, Bearbeiten und Kategorisieren von Prompts
  • Versionierung -- Mehrere Versionen pro Prompt mit vollständiger Historie
  • Board-System -- Prompts in thematischen Boards mit Kachel-Ansicht organisieren
  • Drag & Drop -- Prompts per Drag auf Boards anheften
  • Export -- TXT-, PDF- und portabler JSON-Bibliotheksexport (Prompts, Versionen, Boards)
  • Clipboard-Integration -- Schnelles Kopieren mit konfigurierbaren Modi (Titel, Text, Ergebnis, Alles)
  • Web/PWA-Companion -- Read-only Bibliotheksansicht im Browser mit Suche, Boards, Versionsumschaltung und lokaler Speicherung
  • Dark Mode -- Modernes Fusion Dark Theme
  • Offline-First -- Alle Daten lokal gespeichert (JSON)
  • Robuste Speicherung -- Prompts und Boards werden atomar geschrieben, um defekte JSON-Dateien bei Abbrüchen zu vermeiden

Screenshots

Main Window

Voraussetzungen

  • Python 3.10+
  • PySide6

Installation

git clone https://github.com/file-bricks/ProfiPrompt.git
cd ProfiPrompt
pip install -r requirements.txt

Verwendung

python src/profiprompt.py

Unter Windows alternativ Doppelklick auf START.bat.

Projektstruktur

ProfiPrompt/
├── src/
│   ├── profiprompt.py          # Hauptanwendung
│   ├── dashboard.py            # Dashboard-Widget (Prompt-Baum)
│   ├── board_manager.py        # Board-Verwaltung mit Kachel-Ansicht
│   ├── prompt_dialog.py        # Prompt/Version-Editor-Dialoge
│   ├── clipboard_manager.py    # Clipboard-Operationen
│   ├── copy_settings_dialog.py # Kopier-Einstellungen
│   ├── pdf_exporter.py         # PDF-Export via Qt
│   ├── storage.py              # Datenpersistenz (JSON)
│   ├── settings_manager.py     # Einstellungen (QSettings/INI)
│   ├── event_bus.py            # Event-System (Qt Signals)
│   ├── models.py               # Datenmodelle (Prompt, Version, Board)
│   └── icons/                  # Anwendungs-Icons
├── locales/
├── screenshots/
├── store_assets/
├── tests/
│   └── test_basic.py           # Unit tests (33 tests)
├── web_companion/
│   ├── index.html              # Statischer Web/PWA-Companion
│   ├── app.js                  # UI-State, Dateiimport, Clipboard und Renderlogik
│   ├── library.js              # Schema-Normalisierung und Companion-Helfer
│   └── tests/                  # Node-Smokes für den Companion
├── store_package.json
├── EXPORTFORMAT.md
├── requirements.txt
├── LICENSE
└── README.md

Tests

python -m pytest tests/ -v

Die Python-Testsuite umfasst 33 Unit-Tests für Modelle, Storage, Clipboard-Textaufbau, TXT-/PDF-Exportpfade und den JSON-Bibliotheksexport. Zusätzlich prüfen 5 Node-Smoke-Tests den Web/PWA-Companion gegen das Bibliotheksschema, Filterpfade und Kopiertext.

Web/PWA-Companion

Der Companion lebt unter web_companion/ und ist bewusst klein gehalten: Dateiimport, Suche, Board-Filter, Versionsumschaltung, Clipboard-Kopie und lokaler Browser-Speicher auf Basis von profiprompt-library-v1.json. Er bleibt read-only und ersetzt die Desktop-App nicht.

Lokal starten:

python -m http.server 4175

Dann http://127.0.0.1:4175/web_companion/ öffnen, wenn der Server im Projektroot läuft.

Datenspeicherung / Privacy

ProfiPrompt arbeitet offline. Nutzerdaten werden standardmäßig im lokalen Benutzerprofil unter .prompt_manager gespeichert; es gibt keine Telemetrie, keine Cloud-Synchronisation und keine externen API-Aufrufe.

EXE erstellen

pip install pyinstaller
pyinstaller --onefile --windowed src/profiprompt.py

Für reproduzierbare Windows-Builds kann die versionierte PyInstaller-Spezifikation genutzt werden:

python -m PyInstaller ProfiPrompt.spec --clean --noconfirm

Autor

Lukas Geiger (@lukisch)


English

A desktop tool for managing, versioning, and organizing AI prompts. Built with PySide6 (Qt6).

Current status: Version 1.0.1 fixes board persistence and ensures individual TXT exports write real plaintext. The current unreleased state also forwards the metadata setting to version PDF exports from the main window and dashboard, adds the portable profiprompt-library-v1.json library export, and ships a static Web/PWA companion for mobile reading, search, and copy flows.

Features

  • Prompt Management -- Create, edit, and categorize prompts
  • Versioning -- Multiple versions per prompt with full history
  • Board System -- Organize prompts in thematic boards with tile view
  • Drag & Drop -- Pin prompts to boards via drag
  • Export -- TXT, PDF, and portable JSON library export (prompts, versions, boards)
  • Clipboard Integration -- Quick copy with configurable modes (title, text, result, all)
  • Web/PWA Companion -- Read-only browser companion with search, boards, version switching, and local storage
  • Dark Mode -- Modern Fusion Dark Theme
  • Offline-First -- All data stored locally (JSON)
  • Robust Persistence -- Prompts and boards are written atomically to avoid broken JSON files after interrupted writes

Requirements

  • Python 3.10+
  • PySide6

Installation

git clone https://github.com/file-bricks/ProfiPrompt.git
cd ProfiPrompt
pip install -r requirements.txt

Usage

python src/profiprompt.py

On Windows, you can also double-click START.bat.

Project Structure

ProfiPrompt/
├── src/
│   ├── profiprompt.py          # Main application
│   ├── dashboard.py            # Dashboard widget (prompt tree)
│   ├── board_manager.py        # Board manager with tile view
│   ├── prompt_dialog.py        # Prompt/version editor dialogs
│   ├── clipboard_manager.py    # Clipboard operations
│   ├── copy_settings_dialog.py # Copy settings
│   ├── pdf_exporter.py         # PDF export via Qt
│   ├── storage.py              # Data persistence (JSON)
│   ├── settings_manager.py     # Settings (QSettings/INI)
│   ├── event_bus.py            # Event system (Qt Signals)
│   ├── models.py               # Data models (Prompt, Version, Board)
│   └── icons/                  # Application icons
├── locales/
├── screenshots/
├── store_assets/
├── tests/
│   └── test_basic.py           # Unit tests (33 tests)
├── web_companion/
│   ├── index.html              # Static Web/PWA companion
│   ├── app.js                  # UI state, file import, clipboard, rendering
│   ├── library.js              # Schema normalization and companion helpers
│   └── tests/                  # Node smoke tests for the companion
├── store_package.json
├── EXPORTFORMAT.md
├── requirements.txt
├── LICENSE
└── README.md

Tests

python -m pytest tests/ -v

The Python suite currently contains 33 unit tests for models, storage, clipboard text generation, TXT/PDF export paths, and the JSON library export. An additional 5 Node smoke tests cover the Web/PWA companion schema handling, filters, board resolution, and copy text behavior.

Web/PWA Companion

The companion lives in web_companion/ and intentionally stays small: file import, search, board filters, version switching, clipboard copy, and local browser storage on top of profiprompt-library-v1.json. It is read-only by design and does not replace the desktop app.

Run locally:

python -m http.server 4175

Then open http://127.0.0.1:4175/web_companion/ when the server runs from the project root.

Data Storage / Privacy

ProfiPrompt works offline. User data is stored by default in the local user profile under .prompt_manager; there is no telemetry, no cloud sync, and no external API access.

Build Executable

pip install pyinstaller
pyinstaller --onefile --windowed src/profiprompt.py

For reproducible Windows builds, use the versioned PyInstaller spec:

python -m PyInstaller ProfiPrompt.spec --clean --noconfirm

Author

Lukas Geiger (@lukisch)

License

MIT


Haftung / Liability

Dieses Projekt ist eine unentgeltliche Open-Source-Schenkung im Sinne der §§ 516 ff. BGB. Die Haftung des Urhebers ist gemäß § 521 BGB auf Vorsatz und grobe Fahrlässigkeit beschränkt. Ergänzend gilt der Haftungsausschluss der MIT-Lizenz.

Nutzung auf eigenes Risiko. Keine Wartungszusage, keine Verfügbarkeitsgarantie, keine Gewähr für Fehlerfreiheit oder Eignung für einen bestimmten Zweck.

This project is an unpaid open-source donation under the MIT License. Liability is limited to intent and gross negligence (§ 521 German Civil Code). Use at your own risk. No warranty, no maintenance guarantee, no fitness-for-purpose assumed.

About

Desktop prompt manager for organizing, versioning and exporting AI prompts. Built with PySide6.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors