ci / verifier-pack (push) Successful in 1m29s
- 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
116 lines
6.0 KiB
Markdown
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.
|