ai-typewriter
Application Python qui capture le texte sélectionné avec un raccourci global, l'envoie à un modèle IA, puis remplace chaque pression de touche suivante par le caractère suivant de la réponse.
Fonctionnement
-
Raccourci global par défaut :
Ctrl+Alt+A. -
L'application simule
Ctrl+Cet lit le presse-papier. -
Le texte capturé est envoyé à Ollama ou Gemini avec le system prompt strict :
Réponds directement et de manière ultra-concise. Aucune phrase d'introduction, aucune salutation, aucun formatage superflu. Uniquement la réponse brute.
-
Quand la réponse arrive, le mode dactylographie s'active : chaque touche physique est interceptée et remplacée par le prochain caractère de la réponse.
-
Le hook clavier est libéré automatiquement après le dernier caractère.
Installation depuis les sources
python -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
cp config.json.template config.json
python main.py
Sous Linux, le paquet keyboard nécessite souvent les droits root ou l'accès aux périphériques /dev/input. Sous Windows, lancez l'exécutable dans une session utilisateur normale.
Configuration
Copiez config.json.template vers config.json puis adaptez :
{
"provider": "ollama",
"model": "llama3.1",
"api_key": "",
"server_url": "http://localhost:11434",
"hotkey": "ctrl+alt+a"
}
Ollama
{
"provider": "ollama",
"model": "llama3.1",
"server_url": "http://localhost:11434"
}
Gemini
{
"provider": "gemini",
"model": "gemini-1.5-flash",
"api_key": "VOTRE_CLE",
"server_url": "https://generativelanguage.googleapis.com"
}
Compilation
pyinstaller --onefile --name ai-typewriter main.py
L'exécutable est généré dans dist/. Le binaire n'est pas versionné Git.
Test rapide sans hook clavier
python main.py --config config.json --ask "Résume: bonjour tout le monde"