ronde

Open source · auto-hébergé · MIT

Claude fait la ronde sur ton serveur. Il répond RAS, ou il t'écrit.

ronde planifie des prompts claude -p sur ta machine, garde l'historique et le coût de chaque passage, et ne t'envoie un mail que quand il y a quelque chose à signaler.

Fonctionne avec ton abonnement Claude Pro/Max — ou une clé API.

01 — Le principe

Une ronde, c'est un prompt, une heure et une règle simple.

Tu écris ce que Claude doit vérifier. Il le vérifie à l'heure dite. Le silence veut dire que tout va bien.

RAS

Rien à signaler

Le prompt demande de répondre exactement RAS si tout va bien. Le passage est noté, personne n'est dérangé.

Alerte

Toute autre réponse

Claude a vu quelque chose. Sa réponse devient l'alerte, et part par mail.

Échec

Le passage n'a pas abouti

Code de sortie non nul, erreur, timeout ou sortie illisible : tu es prévenu aussi.

02 — Ce que ça fait

Petit, lisible, et chez toi.

Planification cron ou manuelle

Chaque ronde a son cron, ou aucun : tu la lances à la demande. Jamais deux passages de la même ronde en même temps.

Historique et consommation

Chaque run garde sa réponse, ses tokens, son coût estimé et sa durée. Tu sais ce que coûte ta tranquillité.

Outils sous contrôle

Pour chaque ronde : les outils autorisés, le nombre de tours max, le timeout. Rien de plus que ce dont la tâche a besoin.

Modèles prêts à l'emploi

Disque et Docker, SSH et fail2ban : des scripts hôte produisent les données, Claude les lit en lecture seule.

Ton abonnement suffit

claude setup-token, tu colles le token, c'est pris sur ton quota Pro/Max. Pas de facturation à part.

Un seul conteneur

Node, SQLite, une UI en HTML serveur. Pas de base externe, pas de file d'attente, pas de build front.

03 — Avec Claude

Décris ce que tu veux surveiller. Claude écrit la ronde.

ronde expose un serveur MCP. Depuis Claude Code ou claude.ai, Claude conçoit la ronde avec toi, l'essaie pour de vrai, puis la crée quand tu valides.

  1. Il regarde les données disponibles sur l'hôte et les modèles existants.
  2. Il te pose les bonnes questions : seuils, fréquence, exceptions.
  3. Il essaie le prompt sur le serveur et te montre le résultat et le coût.
  4. Il crée la ronde, seulement après ton accord.
ToiPréviens-moi si le disque se remplit trop vite.
Claudelist_host_data · list_templates
J'ai l'historique df sur 7 jours. Tu veux une alerte à partir de quel seuil — 85 % ? Et aussi si la croissance dépasse 5 % par jour ?
ToiOui, les deux. Tous les matins à 7 h.
Claudetest_prompt
Essai : réponse RAS en 11 s, 0,02 $. Je crée la ronde « Disque » à 0 7 * * * ?
ToiVas-y.
04 — Installation

Trois commandes, un compte admin.

Un serveur avec Docker suffit. Le code d'installation s'affiche dans les logs.

Lancer ronde

$ git clone https://github.com/buse974/ronde.git && cd ronde
$ docker compose up -d
$ docker compose logs ronde   # code d'installation

Récupérer ton token Claude (sur ta machine), puis le coller dans Réglages

$ claude setup-token

Optionnel : piloter ronde depuis Claude Code

$ claude mcp add --scope user --transport http ronde https://ton-serveur/mcp
05 — Sécurité

Claude a les clés de la ronde, pas celles de la maison.

  • Utilisateur dédié. claude tourne sous runner, avec un environnement vide : il ne voit ni la base, ni le secret, ni l'environnement de l'app.
  • Conteneur minimal. Trois capacités seulement (SETUID, SETGID, KILL) et no-new-privileges. Pas de socket Docker.
  • Token chiffré. AES-256-GCM en base, clé dérivée d'un secret généré au premier démarrage.
  • Données hôte en lecture seule. Les scripts tournent sur l'hôte ; le conteneur ne fait que lire /host-metrics.
  • MCP en OAuth 2.1. PKCE, aucun token à copier, accès révocable, et outils limités par défaut à Read, Grep, Glob.
  • UI verrouillée. Compte admin argon2, cookie HttpOnly + SameSite=Strict, contrôle d'origine, limite des tentatives.
Prototype · v0.1

Dors tranquille. ronde veille.

Le projet est jeune et ouvert aux contributions : essaie-le, ouvre une issue, propose une ronde utile à tout le monde.