Communitygithub.com

YaoApp/yao

✨ Todos tus agentes y espacios de trabajo en un solo lugar, en cada dispositivo que poseas. Realiza un seguimiento de tareas en un tablero, accesible desde escritorio, móvil, navegador o API. Auto-alojado.

¿Qué es yao?

Este skill permite a los agentes leer secretos configurados por el usuario en tiempo de ejecución mediante la CLI `tai tool`. Los secretos se almacenan cifrados (AES-256-GCM) y solo se descifran al ser leídos, garantizando la seguridad de las credenciales. Es compatible con plataformas como Claude Code, Cursor, Codex y cualquier agente que pueda ejecutar comandos de shell o scripts en Node.js, Python o PowerShell. El skill proporciona dos herramientas principales: `secret_list` para listar los nombres y descripciones de los secretos (sin sus valores), y `secret_read` para leer el valor de un secreto específico por nombre. Su uso es fundamental para integrar agentes con servicios externos que requieren tokens o claves de acceso, siguiendo reglas de seguridad estrictas como no imprimir, registrar ni enviar los secretos al LLM, mantener el aislamiento por alcance y registrar todas las lecturas en la pista de auditoría.

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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Gestión de Secretos

Los agentes pueden leer secretos configurados por el usuario en tiempo de ejecución usando la CLI tai tool. Los secretos se almacenan cifrados en reposo (AES-256-GCM) y se descifran solo al ser leídos.

Herramientas Disponibles

HerramientaDescripción
secret_listLista los nombres y descripciones de los secretos (sin valores)
secret_readLee el valor de un solo secreto por nombre

Uso

Bash

# Listar secretos disponibles
tai tool secret_list

# Leer un secreto
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"

Reglas de Seguridad

  1. Nunca imprimir o registrar valores de secretos — No escriba secretos en stdout, stderr ni en ningún archivo de registro.
  2. Nunca escribir secretos en archivos — Excepción: las claves SSH pueden escribirse en ~/.ssh/ con permisos chmod 600.
  3. Nunca enviar secretos al LLM — Los valores de los secretos no deben aparecer en el contenido de las indicaciones, mensajes del sistema ni en los resultados de llamadas a herramientas que se envíen al modelo.
  4. Aislamiento de alcance — Los secretos están vinculados por usuario y por agente. Un agente solo puede acceder a los secretos configurados para él.
  5. Pista de auditoría — Cada llamada a secret_read se registra en la pista de auditoría con la identidad de quien la realizó.

Skills relacionados