Communitygithub.com

YaoApp/yao

✨ すべてのエージェントとワークスペースを一元管理し、あらゆるデバイスで利用可能。ボード上でタスクを追跡し、デスクトップ、モバイル、ブラウザ、APIからアクセスできます。セルフホスト対応。

yao とは?

YaoApp/yaoは、AIエージェントとワークスペースを一元管理するためのセルフホスト型プラットフォームです。このスキルは、ユーザーが設定したシークレット(機密情報)をエージェントが実行時に安全に読み取るための仕組みを提供します。シークレットはAES-256-GCMで暗号化されて保存され、読み取り時にのみ復号化されるため、高いセキュリティを維持します。対応ツールとして、シークレットの一覧を取得する`secret_list`と、指定した名前のシークレット値を読み取る`secret_read`の2つがあり、Bash、Node.js、Python、PowerShellなど複数の言語から利用できます。シークレット値のログ出力やファイル保存、LLMへの送信を禁止する厳格なセキュリティルールに従い、ユーザーとエージェントごとにスコープが分離され、すべての読み取り操作は監査証跡に記録されます。

対応~Claude Code~Codex CLI~Cursor
npx skills add YaoApp/yao

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

シークレット管理

エージェントは、tai tool CLIを使用して実行時にユーザー設定済みのシークレットを読み取ることができます。 シークレットは保存時(AES-256-GCM)に暗号化され、読み取り時にのみ復号化されます。

利用可能なツール

ツール説明
secret_listシークレット名と説明を一覧表示(値は表示されません)
secret_read名前を指定して単一のシークレット値を読み取ります

使用方法

Bash

# 利用可能なシークレットを一覧表示
tai tool secret_list

# シークレットを読み取る
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"

セキュリティルール

  1. シークレット値を決して出力またはログ記録しない — シークレットをstdout、stderr、または任意のログファイルに書き込まないでください。
  2. シークレットをファイルに書き込まない — 例外:SSHキーはchmod 600パーミッションで~/.ssh/に書き込むことができます。
  3. シークレットをLLMに送信しない — シークレット値は、プロンプト内容、システムメッセージ、モデルに転送されるツール呼び出し結果に含めてはなりません。
  4. スコープの分離 — シークレットはユーザーとエージェントごとにスコープが設定されます。エージェントは自分用に設定されたシークレットにのみアクセスできます。
  5. 監査証跡 — すべてのsecret_read呼び出しは、呼び出し元の識別情報とともに監査証跡に記録されます。

関連スキル