Logiciel libre · Windows, Linux, macOS
CsAgent
L'agent de code qui demande d'abord
Version 0.9.0 · Salvatore Di Dio
> Range ces fichiers par expéditeur
Lecture des messages…
[?] Autoriser move_file ? [Y/n]
Un agent autonome, mais jamais en roue libre.
Il lit, modifie et exécute des choses dans votre dossier, pas à pas. Avant d'écrire, de déplacer, de supprimer, de faire un commit ou d'envoyer un e-mail, il attend votre oui.
CsAgent 0.9.0
2 / 14
Fonctionnement
Chaque action passe par la même porte
1
Vous décrivez
Une tâche en langage naturel, dans le terminal ou dans une page web.
2
Le modèle propose
Une étape à la fois : lire un fichier, lancer une commande, chercher sur le web.
3
CsAgent contrôle
Chemins limités au dossier, filtre des commandes, confirmation de tout ce qui écrit.
4
L'outil s'exécute
Le résultat revient au modèle, qui décide de l'étape suivante.
Le cycle recommence jusqu'à la fin de la tâche, en 30 étapes au maximum.
CsAgent 0.9.0
3 / 14
Sécurité
Des garde-fous que l'on peut lire
Il demande d'abord
Écriture, suppression, commit, e-mail et appel MCP attendent un oui.
Un dossier, pas un disque
Les outils de fichiers restent dans le dossier de travail.
Un filtre de commandes
sudo, chmod, format, del /f, reg delete… bloqués avant exécution.
Des limites
60 secondes par commande, 500 Ko par fichier lu.
Des données, pas des ordres
E-mails, transcriptions et résultats MCP ne sont jamais obéis.
Un essai à blanc
--dry-run montre ce que l'agent ferait, sans le faire.
CsAgent 0.9.0
4 / 14
Interfaces
Trois façons de lui parler
Le terminal
csagent
Une session interactive en texte, avec le flux de chaque étape.
L'interface web
csagent --ui
Flux en direct, coloration du code, images jointes, dictée vocale.
L'interface légère
csagent --leanui
Le même agent dans une page sombre façon terminal, avec des onglets.
--prompt "texte"
Une seule demande : seule la réponse s'affiche (redirigeable vers une autre commande), puis on quitte.
--api
Un serveur sans interface qui diffuse chaque étape, pour les orchestrateurs.
CsAgent 0.9.0
5 / 14
Outils
Pas seulement du code
35
outils intégrés
Famille
Exemples
Fichiers
read_file, edit_file, search_files, zip
Shell
sh, run_terminal
Git
git_status, git_diff, git_commit
Web
web_search, fetch_url, http_request
Courrier, Office
read_msg, send_email, excel_command
Audio, divers
transcribe_audio, presse-papiers
CsAgent 0.9.0
6 / 14
Mémoire
Il se souvient de ce qu'il a déjà essayé
Mémoire hybride
Les 50 dernières étapes mot pour mot, et des leçons erreur / solution. Elles sont réinjectées avant chaque appel, même quand l'historique est élagué.
Distillation de session
À la fin d'une exécution, le modèle résume en quatre listes : décisions, contraintes, travail restant, approches échouées. La session suivante les reprend.
agent_memory/
conversation.json · exact.json · semantic.json · summary.json
CsAgent 0.9.0
7 / 14
Voix, images, courrier
Il écoute et il regarde
Dictez
Le micro de l'interface web enregistre par morceaux de 30 secondes. La transcription Whisper devient une instruction, ou un texte joint à la demande suivante.
Montrez
Joignez une capture d'écran : CsAgent passe tout seul à un modèle de vision pour cette demande, puis pour la suite de la conversation.
Lisez le courrier
Les messages Outlook .msg sont lus sans Outlook, en C# pur, sur tous les systèmes.
Exemple : « Transcris entretien.m4a en français et résume-le en cinq lignes. »
CsAgent 0.9.0
8 / 14
Nouveau en 0.9.0
Le bon modèle, message par message
Code
deepseek-v4-flash
Fichiers, shell, git, courrier. C'est lui qui exécute les outils.
Chat
openweight-large
Recherches web, actualités, météo et questions générales.
Vision
gemma-4-31b-it
Dès qu'une image est jointe ou déjà dans la conversation.
[model: openweight-large (chat: recherche web)]
Choix instantané, sans appel supplémentaire. Le modèle utilisé s'affiche sous chaque réponse.
CsAgent 0.9.0
9 / 14
Nouveau en 0.9.0
Et vous gardez la main
LLMRoutingRules/ : des fichiers JSON que l'on modifie à la main.
models.json : le modèle de chaque profil.
keywords.json : mots et expressions qui pilotent le choix.
rules.json : vos règles, testées en premier.
Relus à chaque modification. Une erreur n'arrête jamais l'agent.
{ "rules": [
  { "name": "tickets",
    "contains": ["jira", "ticket"],
    "use": "code" }
] }
csagent --explain-routing "…"
Montre le modèle choisi et pourquoi, sans appeler aucun modèle.
CsAgent 0.9.0
10 / 14
Historique
De la 0.4 à la 0.9.0 en deux mois
0.4
15 août
Les outils : fichiers, git, web
0.5
30 août
Reprise sur erreur 429
0.5.x
septembre
Lean UI, vision, Excel, e-mail
0.6
6 octobre
Mémoire hybride, distillation
0.7.x
7 et 8 octobre
Mode --api, --endpoint, .msg
0.8
9 octobre
Voix et MCP plus sûr
0.9
10 octobre
Routage des modèles, --prompt
187
tests
Tous passent, avec un faux serveur de LLM
CsAgent 0.9.0
11 / 14
Sous le capot
Assez petit pour être lu
0
paquet NuGet dans l'application
1
exécutable natif, compilé en AOT
3
systèmes : Windows, Linux, macOS
MIT
licence libre
C# .NET 10. Tout le JSON est construit à la main, sans réflexion : c'est la contrainte de la compilation native.
CsAgent 0.9.0
12 / 14
À vous
Essayez-le en trois commandes
1
git clone https://github.com/artydev/csagent.git
2
dotnet publish -c Release -r win-x64
3
csagent --prompt "hello my name is John"
Il faut le SDK .NET 10 et une clé d'API (variable ALBERT_API_KEY). Sans clé : un modèle local avec Ollama, via --endpoint http://localhost:11434/v1.
CsAgent 0.9.0
13 / 14
Merci
Des questions ?
github.com/artydev/csagent
artydev.github.io/csagent