Claude
Skill
secret
Imported from yaoapp/yao/tools/secret.
Virus-scanned
Reviewed automatically before listing.
Download
yaoapp-yao-tools_secret-a65d251.zip · 9 KB
Install
skills CLI
npx skills add https://github.com/YaoApp/yao/tree/main/tools/secret
Claude Code
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install yaoapp-yao@llmmart
Git
git clone https://github.com/YaoApp/yao.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole yaoapp/yao collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Secret Management
Agents can read user-configured secrets at runtime using the tai tool CLI.
Secrets are encrypted at rest (AES-256-GCM) and decrypted only when read.
Available Tools
| Tool | Description |
|---|---|
secret_list |
List secret names and descriptions (no values) |
secret_read |
Read a single secret value by name |
Usage
Bash
# List available secrets
tai tool secret_list
# Read a 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"
Security Rules
- Never print or log secret values — Do not write secrets to stdout, stderr, or any log file.
- Never write secrets to files — Exception: SSH keys may be written to
~/.ssh/withchmod 600permissions. - Never send secrets to the LLM — Secret values must not appear in prompt content, system messages, or tool call results that are forwarded to the model.
- Scope isolation — Secrets are scoped per user per agent. An agent can only access secrets configured for it.
- Audit trail — Every
secret_readcall is logged in the audit trail with the caller's identity.
Files (yao)
-
chatid_test.go 1.9 KB · in bundle
-
connectors.go 3.9 KB · in bundle
-
connectors_schema.json 416 B
{ "name": "secret_connectors", "description": "Internal use only. Returns the LLM connector role matrix with full settings including credentials. Used by env-setup scripts to provision sandbox dev environments. Never call directly from conversation context.", "process": "tools.secret_connectors", "inputSchema": { "type": "object", "properties": {}, "required": [] }, "x-process-args": [] } -
connectors_test.go 6.2 KB · in bundle
-
list.go 3.1 KB · in bundle
-
list_schema.json 250 B
{ "name": "secret_list", "description": "List available secret names and descriptions. Does not return secret values.", "process": "tools.secret_list", "inputSchema": { "type": "object", "properties": {} }, "x-process-args": [] } -
read.go 3.9 KB · in bundle
-
read_schema.json 463 B
{ "name": "secret_read", "description": "Read a secret value by name. Returns the decrypted value for use in scripts. Never log or print the returned value.", "process": "tools.secret_read", "inputSchema": { "type": "object", "properties": { "name": { "type": "string", "description": "The secret key name (e.g. GITHUB_TOKEN, AWS_SECRET_KEY)" } }, "required": ["name"] }, "x-process-args": ["$args.name"] } -
secret.go 3.1 KB · in bundle
-
SKILL.md 2.1 KB
# Secret Management Agents can read user-configured secrets at runtime using the `tai tool` CLI. Secrets are encrypted at rest (AES-256-GCM) and decrypted only when read. ## Available Tools | Tool | Description | |------|-------------| | `secret_list` | List secret names and descriptions (no values) | | `secret_read` | Read a single secret value by name | ## Usage ### Bash ```bash # List available secrets tai tool secret_list # Read a secret TOKEN=$(tai tool secret_read '{"name": "GITHUB_TOKEN"}' | jq -r '.value') git clone "https://${TOKEN}@github.com/org/repo.git" ``` ### Node.js ```javascript 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 ```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 ```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" ``` ## Security Rules 1. **Never print or log secret values** — Do not write secrets to stdout, stderr, or any log file. 2. **Never write secrets to files** — Exception: SSH keys may be written to `~/.ssh/` with `chmod 600` permissions. 3. **Never send secrets to the LLM** — Secret values must not appear in prompt content, system messages, or tool call results that are forwarded to the model. 4. **Scope isolation** — Secrets are scoped per user per agent. An agent can only access secrets configured for it. 5. **Audit trail** — Every `secret_read` call is logged in the audit trail with the caller's identity.
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.