Yumi AI Gateway

Console admin

Connexion requise

Saisis le GATEWAY_ADMIN_TOKEN en haut à droite puis clique sur « Connecter ».

Tableau de bord

Vue d'ensemble de la gateway.

Actions rapides

Créer une clé API

La clé complète n'est affichée qu'une seule fois. Copie-la.

Nouvelle clé (copie-la maintenant) :

Clés existantes

IDNomClé (masquée) StatutRPMBudget ModèlesSécurité
Clé révélée :

Usage & coûts

Agrégé depuis les logs. Coût = estimation.

CléPréfixeRequêtes Tokens inTokens outTotal Coût (USD)

Analytics — tokens & coût réel

Consommation dans le temps et coût recalculé depuis le tarif de chaque modèle.

Aucune consommation sur la période.

Coût par agent dans le temps

Empilé par modèle · coût réel au tarif courant ($/Mtok)

Tokens entrée / sortie

Empilé · entrée vs sortie par période

Coût par agent

Répartition sur la période, du plus coûteux au moins coûteux

Détail par agent

Le tarif appliqué rend chaque coût vérifiable

AgentProvider RequêtesTokens in Tokens outTarif in/out ($/Mtok) Coût (USD)

Providers & authentification des CLI

Configure la clé de chaque CLI puis teste la connexion.

Boutique de connexions

Parcours le catalogue et connecte un service en un clic — la gateway construit le connecteur et le câble sur les CLI ciblés.

Chargement…
Catalogue indisponible.

Connecteur MCP sur mesure

Branche des serveurs MCP (outils) sur les agents CLI.

Connecteurs enregistrés

Coche/décoche une cible CLI directement ici — le changement est appliqué aussitôt et le token est conservé.

NomTransport CiblesDétail Statut

Créer un serveur MCP compatible

Prompt prêt à donner à un agent AI pour générer un serveur MCP branchable ici. Adapte la liste des outils.


    

Notes importantes

  • Le token va dans l'en-tête Authorization AVEC le préfixe « Bearer » (sinon 401). L'en-tête Accept (application/json, text/event-stream) est ajouté automatiquement (anti-406).
  • La gateway traduit chaque connecteur au format NATIF du CLI ciblé — kimi (mcp.json), claude (claude mcp add), mistral/vibe (config.toml, transport « http »). Rien à adapter côté connecteur.
  • Édite un connecteur (crayon) pour changer ses cibles sans re-saisir le token : le secret existant est préservé.
  • Coche plusieurs CLI pour câbler le même serveur MCP sur tous en un clic.
  • Détails, formats par CLI et dépannage (401 / 406 / 502 / hang) : docs/mcp-integration.md du dépôt.

Skills

Procédures réutilisables (format SKILL.md). Injectées dans le dossier de travail de l'agent : Claude, Kimi et Grok les découvrent nativement ; Vibe via son préambule. Portée par clé, comme les connecteurs MCP.

Glisse-dépose un .md/.txt dans l'éditeur pour charger son contenu (le nom/description sont pré-remplis depuis l'en-tête s'il existe).
SkillPortée

Boîtes mail IMAP (outil email des agents)

Connecte les boîtes de la société : les agents reçoivent des outils mcp__email__* en LECTURE SEULE (recherche + lecture, jamais marqué lu, aucun envoi). Mots de passe stockés chiffrés.

Import en masse (une ligne = email mot_de_passe [serveur[:port]])

      
AdresseServeur Libellé
Câbler l'outil email dans les CLI :

Portes de réveil (webhooks)

Une adresse par assistant : n'importe quel outil capable d'appeler une URL (Zapier, n8n, un webhook Shopify, un cron, un script de l'assistant lui-même) le réveille avec l'information reçue, par un simple POST — sans clé d'API. L'adresse EST le secret : elle n'est montrée qu'une fois, et se révoque en un clic.

PUBLIC_BASE_URL n'est pas réglée : la gateway ne connaît pas son adresse publique, elle rendra donc le jeton sans l'URL complète. Règle-la dans l'onglet Déploiement pour obtenir une adresse prête à coller.

AssistantÉtat AdresseDéclenchements Dernier

Porte de

Cet assistant demande une porte de réveil
À copier maintenant — cette adresse ne sera plus jamais affichée

Garde-en une copie : la gateway n'en conserve que l'empreinte. Si tu la perds, fais-la tourner pour en obtenir une nouvelle. Qui connaît cette adresse peut réveiller l'assistant — traite-la comme un mot de passe.


        

Journal des déclenchements

QuandIssue Charge utile reçueRéveil

Journal des envois de mail

QuandIssue DestinatairesSujet Masqués

Terminal — connecter les CLI

inactif

Parler à ton agent

Choisis un modèle LLM et discute — la clé API est gérée automatiquement. Choisir un agent (dossier + clé, optionnel) fait travailler le modèle dans son espace.

Sécurité de la console admin

Protège UNIQUEMENT ce panneau d'administration (l'API reste protégée par les clés yumi-…). Recommandé si la box est exposée sur internet.

Activer un identifiant / mot de passe

Déploiement : domaine + HTTPS

Génère la config nginx (WebSocket inclus) + les commandes TLS à copier-coller EN ROOT sur le serveur. Pour ta sécurité, la console n'exécute rien en root elle-même.

1) DNS : crée un enregistrement A « domaine → IP du serveur ». 2) Lance les commandes ci-dessous en root :


      

Comment ça marche

La gateway expose un endpoint compatible OpenAI et route vers un agent CLI.

Client (SDK OpenAI)
   │  Authorization: Bearer yumi-…
   ▼
Yumi AI Gateway  (/v1/chat/completions)
   ├─► claude_cli   → claude -p …
   ├─► kimi_cli     → kimi -p … (stream-json)
   └─► mistral_cli  → vibe -p … --yolo

Modèles disponibles

Le nom du modèle dans l'appel sélectionne l'agent CLI. Pour Claude, le suffixe choisit la variante — -sonnet (Sonnet 5), -opus (Opus 4.8), -haiku (Haiku 4.5), -fable (Fable 5) — le modèle exact étant défini par CLI_MODEL_MAP. Liste en direct depuis /v1/models :

Exemples d'appel

Remplace BASE et yumi-… par les tiens.

curl

      Python (SDK OpenAI)

      JavaScript (fetch)


      

Exposer l'API (mapping de port sur la box)

Si la gateway tourne sur un nano-ordinateur (Raspberry Pi / SmartPi) derrière une box internet, il faut rediriger un port pour y accéder depuis l'extérieur.

ServicePortNote
Gateway (HTTP)8001Port d'écoute par défaut (variable PORT). Bind 0.0.0.0 sur le nano-PC.
HTTPS (nginx)443Recommandé : nginx + TLS devant la gateway, on n'expose que le 443.
SSH22Ne PAS rediriger publiquement.
  1. Sur le nano-PC : lance la gateway en écoute sur 0.0.0.0:8001 (IP LAN, ex. 192.168.1.50).
  2. Sur la box (routeur) : crée une redirection de port (NAT/Port Forwarding) port externe → 192.168.1.50:8001 (ou 443 si nginx/TLS).
  3. Utilise l'IP publique de la box, ou un DNS dynamique (DuckDNS…) car l'IP résidentielle change.
  4. Sécurité : n'expose jamais sans TLS + clé yumi-…. Restreins la console admin (ADMIN_IP_ALLOWLIST, pare-feu).

L'avantage de la solution

  • Un seul endpoint OpenAI pour plusieurs agents CLI.
  • Toute l'orchestration agentique du CLI via un simple appel chat.
  • Auto-hébergé : les credentials ne quittent jamais ton serveur.
  • Clés maîtresses par client : rate-limit, budget, allow-list, suivi de coût.
  • Zéro lock-in : on change de provider via le routage.

Sécurité de la clé

Limite ce que l'agent peut faire (anti prompt-injection). Contrôle fin sur Claude ; best-effort sur Kimi/Vibe.

Permissions

Connecteurs MCP visibles par cette clé

« Strict » = la clé ne voit QUE les connecteurs cochés (aucun coché = aucun accès MCP). Garanti sur Claude.

Skills visibles par cette clé

« Strict » = la clé ne voit QUE les skills cochés. « Hérite » = les skills marqués « pour tous les agents ».

Préambule système injecté (couche de sécurité)

Mes agents

Crée un assistant IA en une phrase. Aucune connaissance requise.

Crée ton premier agent

Décris-le en une phrase, l'assistant s'occupe du reste.

Décris ton agent

🤖
Instructions
0/8000

Cerveau & pouvoirs

Aucun cerveau d'IA n'est connecté.

Cerveau

Liberté

Connecteurs (facultatif)

Tu pourras en ajouter à tout moment.

Réglages avancés

Vide = défaut global (illimité). Ne sert qu'à borner cet agent en particulier.

Son espace de travail privé est prêt. 📁

Détails techniques