À propos du projet

pi_agent_rust est un CLI d'agent de codage IA haute performance, sans code unsafe, écrit en Rust. C'est un port natif de Pi Agent par Mario Zechner, conçu pour remplacer les alternatives plus lentes et gourmandes en ressources basées sur des runtimes gérés comme Electron ou Node.js. **Fonctionnalités clés :** - **36 outils intégrés** répartis en cinq niveaux : commandes essentielles (read, write, edit, bash, grep, find, ls, web_search), outils découvrables (ast_grep, ast_edit, lsp, debug, outils mémoire), utilitaires d'arrière-plan (jobs, hub), et extras contrôlés par paramètres (automatisation navigateur, contrôle ordinateur/bureau, gestion image/tts/média) - **Réponses en streaming** avec prise en charge des blocs de réflexion étendus via un analyseur SSE personnalisé optimisé pour les conditions réseau réelles - **Support de modèles locaux** prêt à l'emploi pour Ollama, llama.cpp (llama-server) et mistralrs — aucune clé API requise - **Concurrence structurée** via le runtime asupersync pour une annulation prévisible et un nettoyage des ressources - **Modèle de sécurité basé sur les capacités** : application d'exécution d'extensions en deux étapes avec blocage au niveau des commandes des motifs shell dangereux (suppression récursive, écritures disque, shells inversés), cycle de confiance à quatre niveaux (en attente → reconnu → fiable → tué), commandes d'arrêt d'urgence des canaux hôtes, et registre de risques d'exécution inviolable - **Architecture à ressources bornées** pour les sessions longues utilisant l'indexation de sessions SQLite avec un fichier secondaire v2 pour des chemins de réouverture O(index+tail) - **Interface terminal riche** construite avec rich_rust, un port Rust de la bibliothèque Python Rich **Installation :** ```bash curl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/pi_agent_rust/main/install.sh?$(date +%s)" | bash ``` **Utilisation rapide :** ```bash # Session interactive pi # Avec invite initiale pi "Résume l'architecture dans src/" # Joindre un fichier pi @src/main.rs "Explique le flux de démarrage" # Mode script à exécution unique pi -p "Liste les risques de régression probables pour ce diff" # Continuer la dernière session pi --continue ``` **Configuration :** Les clés API sont définies via des variables d'environnement (par exemple, `ANTHROPIC_API_KEY`). Les fournisseurs locaux fonctionnent sans clés. Les catalogues de modèles peuvent être actualisés avec `pi --fetch-models <fournisseur> --refresh-models --persist-models`. La configuration des fournisseurs et des modèles se trouve dans `~/.pi/agent/models.json`. Le projet utilise Doodlestein Self-Releaser (DSR) pour toutes les builds et contrôles qualité ; les contributeurs sont orientés loin des invocations directes de Cargo. Les preuves de référence sont régies par des contrats d'artefacts stricts exigeant des résultats appariés à la provenance avant la publication d'affirmations liées aux versions.