Files
Spark 258287b2ea
ci / verifier-pack (push) Successful in 1m29s
feat(pack,docs): pack de démarrage 20 prompts, README, tests, CI, build
- packs/essentiels : 20 prompts en 4 catégories (Général, Écriture, Code,
  Analyse), en-têtes conformes au parseur, variables déclarées = utilisées
- tests/run_tests.ahk : suites Frontmatter, Variables, JSON, Recherche,
  encodage UTF-8 (à exécuter sous Windows avec AutoHotkey v2)
- scripts/check_pack.py + .gitea/workflows/ci.yml : cohérence du pack
- build.ps1 : tests puis compilation Ahk2Exe et zip portable
- docs : document d'architecture et de conception v1.0
2026-10-11 10:17:30 -04:00

116 lines
6.0 KiB
Markdown

# PromptKey
**Gestionnaire de prompts pour intelligences artificielles, sous Windows, écrit en AutoHotkey v2.**
PromptKey vit dans la zone de notification et insère, en quelques frappes, le bon prompt dans n'importe quelle application — ChatGPT, Claude, Gemini, Qwen, DeepSeek, un terminal, un éditeur, un courriel. Une seule bibliothèque de prompts, pour toutes les IA.
## Le geste central
```
Ctrl+Alt+Espace → taper « résu… » → Entrée → remplir 1-2 variables si demandé → le prompt est collé
```
Le texte sélectionné dans l'application d'origine est capturé automatiquement (`{{selection}}`) ; PromptKey rend ensuite le focus à l'application et colle le prompt résolu. Il **insère** le texte — il ne l'envoie jamais à votre place (sauf option explicite par profil, désactivée par défaut).
## Installation
Prérequis :
- Windows 10 ou 11
- [AutoHotkey v2.0](https://www.autohotkey.com/) (64 bits) — seulement pour lancer la version source ou recompiler
Deux façons de lancer :
1. **Version compilée** : `PromptKey.exe` (voir « Compilation » ci-dessous ou l'archive portable `dist\PromptKey-portable.zip`). Aucune installation : double-cliquer, l'icône apparaît dans la zone de notification.
2. **Version source** : double-cliquer sur `PromptKey.ahk`, ou `AutoHotkey64.exe PromptKey.ahk` en ligne de commande.
Premier lancement : le dossier de bibliothèque est créé automatiquement (`Documents\PromptKey\Bibliothèque`, ou le dossier `Bibliothèque\` à côté du programme en mode portable) et, s'il est vide, le **pack de démarrage** (`packs\essentiels\`, 20 prompts prêts à l'emploi en 4 catégories : Général, Écriture, Code, Analyse) y est recopié. Le dossier peut ensuite être changé dans les Paramètres.
Pour démarrer PromptKey avec Windows : créer un raccourci vers `PromptKey.ahk` (ou l'exécutable compilé) dans le dossier Démarrage (`shell:startup`).
## Raccourcis par défaut
| Raccourci | Action |
|-----------|--------|
| `Ctrl+Alt+Espace` | Ouvrir le Quick Picker (rechercher et insérer un prompt) |
| `Ctrl+Alt+M` | Ouvrir le Gestionnaire (bibliothèque complète) |
| `Ctrl+Alt+N` | Nouveau prompt (depuis la sélection, s'il y en a une) |
| `Ctrl+Alt+1` … `Ctrl+Alt+9` | Insérer directement le prompt épinglé n° 1…9 |
| `Ctrl+Alt+V` | Réinsérer le dernier prompt utilisé |
Dans le Picker : `↑`/`↓` naviguer, `Entrée` utiliser, `Ctrl+Entrée` utiliser avec les valeurs par défaut, `Ctrl+E` modifier, `Échap` fermer sans rien insérer.
Chaque prompt peut aussi avoir son propre raccourci (`hotkey:`) ou une abréviation tapée (`hotstring:`, ex. taper `resu;` insère le prompt « Résumer en 5 points »). Tous les raccourcis sont modifiables dans les Paramètres.
## Format d'un prompt
**Un prompt = un fichier Markdown.** La catégorie est le dossier qui le contient ; l'en-tête entre `---` décrit le prompt, le corps est le texte du prompt avec ses variables `{{…}}` :
```markdown
---
id: 96d0d5b7-7a07-43a1-af84-dfa7024b4bcf
title: Résumer en 5 points
tags: [résumé, synthèse, court]
targets: [défaut, claude, chatgpt, gemini, qwen]
favorite: true
created: 2026-10-11
updated: 2026-10-11
variables:
- name: ton
label: Ton de la réponse
type: enum
choices: [neutre, formel, amical, direct]
default: neutre
---
Résume le texte suivant, ton {{ton}}.
Texte :
{{selection}}
```
Variables automatiques (jamais demandées) : `{{selection}}` (texte sélectionné), `{{clipboard}}` (presse-papiers), `{{date}}`, `{{datetime}}`, `{{time}}`, `{{app}}` (application d'origine), `{{cursor}}` (position du curseur après insertion).
Le format complet (sous-ensemble d'en-tête accepté, profils de destination, moteur d'injection) est spécifié dans le document d'architecture et de conception de PromptKey, §7 et suivants.
## Structure du projet
```
PromptKey\
├─ PromptKey.ahk point d'entrée (tray, démarrage)
├─ lib\ services : magasin de prompts, index/recherche,
│ moteur de variables, injecteur, presse-papiers…
├─ gui\ Quick Picker, Gestionnaire, Éditeur, formulaires
├─ packs\essentiels\ pack de démarrage : 20 prompts, 4 catégories
├─ scripts\check_pack.py contrôle de cohérence du pack (utilisé par la CI)
├─ tests\ suites de tests AutoHotkey
├─ build.ps1 compilation + archive portable (voir ci-dessous)
├─ config.ini paramètres (créé au premier lancement, local)
└─ README.md
```
La bibliothèque de prompts peut vivre ailleurs (dossier au choix dans les Paramètres) ; elle est faite de simples fichiers `.md`, versionnables sous Git — ce dépôt en est la démonstration.
## Compilation
Avec PowerShell, à la racine du projet :
```powershell
.\build.ps1
```
Le script vérifie la présence d'AutoHotkey v2 et d'**Ahk2Exe**, lance les tests de `tests\` s'ils sont présents, compile `PromptKey.ahk` en `dist\PromptKey.exe`, puis assemble l'archive portable `dist\PromptKey-portable.zip` (exe + packs + README + LICENSE).
Ahk2Exe est fourni avec AutoHotkey v2 (dossier `Compiler\`) ou via le programme d'installation d'AutoHotkey (option « Compile »).
## Sécurité et vie privée
- **Zéro réseau.** PromptKey n'appelle aucun service, n'envoie aucune télémétrie, ne parle à aucune API d'IA : il prépare du texte et le colle localement.
- **Presse-papiers restauré.** L'injection par presse-papiers sauvegarde son contenu, colle le prompt, puis restaure l'original après un court délai (abandon propre si vous avez copié autre chose entre-temps). Les prompts marqués `sensitive: true` vident le presse-papiers après injection au lieu de le restaurer.
- **Aucun contenu journalisé.** Le journal ne contient ni prompts, ni sélections, ni valeurs de variables ; les variables de type `password` ne sont jamais persistées.
- **Ne mettez pas de secrets dans vos prompts** : ce sont des fichiers texte en clair, pensés pour être versionnés.
## Licence
MIT — voir [LICENSE](LICENSE). Copyright © 2026 Bruno.