# 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 1. Raccourci global par défaut : `Ctrl+Alt+A`. 2. L'application simule `Ctrl+C` et lit le presse-papier. 3. 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. 4. 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. 5. Le hook clavier est libéré automatiquement après le dernier caractère. ## Installation depuis les sources ```bash 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 : ```json { "provider": "ollama", "model": "llama3.1", "api_key": "", "server_url": "http://localhost:11434", "hotkey": "ctrl+alt+a" } ``` ### Ollama ```json { "provider": "ollama", "model": "llama3.1", "server_url": "http://localhost:11434" } ``` ### Gemini ```json { "provider": "gemini", "model": "gemini-1.5-flash", "api_key": "VOTRE_CLE", "server_url": "https://generativelanguage.googleapis.com" } ``` ## Compilation ```bash pyinstaller --onefile --paths src --name ai-typewriter.exe main.py ``` L'exécutable est généré dans `dist/`. Le binaire n'est pas versionné Git. ## Test rapide sans hook clavier ```bash python main.py --config config.json --ask "Résume: bonjour tout le monde" ```