Communitygithub.com

YaoApp/yao

✨ Tous vos agents et espaces de travail réunis au même endroit, sur tous vos appareils. Suivez les tâches sur un tableau, accessible depuis le bureau, le mobile, le navigateur ou l'API. Auto-hébergé.

Qu'est-ce que yao ?

Cette compétence fournit un système de gestion sécurisée des secrets pour les agents AI. Elle permet aux agents de lire des secrets configurés par l'utilisateur au moment de l'exécution via l'outil CLI `tai tool`. Les secrets sont chiffrés au repos avec AES-256-GCM et déchiffrés uniquement lors de leur lecture, garantissant une sécurité maximale. La compétence supporte plusieurs langages de programmation (Bash, Node.js, Python, PowerShell) et propose des outils comme `secret_list` pour lister les noms des secrets et `secret_read` pour lire une valeur spécifique. Elle est utile pour les développeurs souhaitant intégrer des tokens, clés API ou autres informations sensibles dans les workflows de leurs agents, tout en respectant des règles de sécurité strictes (pas d'affichage, pas d'écriture dans les fichiers, pas d'envoi à l'LLM, isolation par portée et journalisation). Plateformes supportées : tout système compatible avec l'interface CLI.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add YaoApp/yao

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Gestion des secrets

Les agents peuvent lire les secrets configurés par l'utilisateur au moment de l'exécution à l'aide de l'interface en ligne de commande tai tool. Les secrets sont chiffrés au repos (AES-256-GCM) et déchiffrés uniquement lors de leur lecture.

Outils disponibles

OutilDescription
secret_listListe les noms et descriptions des secrets (pas de valeurs)
secret_readLit la valeur d'un seul secret par son nom

Utilisation

Bash

# Lister les secrets disponibles
tai tool secret_list

# Lire un secret
TOKEN=$(tai tool secret_read '{"name": "GITHUB_TOKEN"}' | jq -r '.value')
git clone "https://${TOKEN}@github.com/org/repo.git"

Node.js

const { execSync } = require("child_process");

function readSecret(name) {
  const raw = execSync(
    `tai tool secret_read '${JSON.stringify({ name })}'`,
    { encoding: "utf-8" }
  );
  return JSON.parse(raw).value;
}

const token = readSecret("GITHUB_TOKEN");

Python

import json
import subprocess

def read_secret(name: str) -> str:
    result = subprocess.run(
        ["tai", "tool", "secret_read", json.dumps({"name": name})],
        capture_output=True, text=True, check=True,
    )
    return json.loads(result.stdout)["value"]

token = read_secret("GITHUB_TOKEN")

PowerShell

function Read-Secret {
    param([string]$Name)
    $json = @{ name = $Name } | ConvertTo-Json -Compress
    $result = tai tool secret_read $json | ConvertFrom-Json
    return $result.value
}

$token = Read-Secret -Name "GITHUB_TOKEN"

Règles de sécurité

  1. Ne jamais imprimer ou journaliser les valeurs des secrets — N'écrivez pas les secrets dans stdout, stderr ou tout fichier de journal.
  2. Ne jamais écrire les secrets dans des fichiers — Exception : les clés SSH peuvent être écrites dans ~/.ssh/ avec les permissions chmod 600.
  3. Ne jamais envoyer les secrets au LLM — Les valeurs des secrets ne doivent pas apparaître dans le contenu des prompts, les messages système ou les résultats d'appels d'outils transmis au modèle.
  4. Isolation par portée — Les secrets sont limités par utilisateur et par agent. Un agent ne peut accéder qu'aux secrets configurés pour lui.
  5. Piste d'audit — Chaque appel à secret_read est enregistré dans la piste d'audit avec l'identité de l'appelant.

Skills associés