set-secret
Store a secret, or mint a one-time drop link so a user can share a secret without pasting it into chat. Use whenever a user is about to share a credential.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Store a secret, or mint a one-time drop link so a user can share a secret without pasting it into chat. Use whenever a user is about to share a credential.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Create a new sub-agent — no Terraform, no Docker by default. Starts as a systemd service, patched into the bridge immediately so @agent works right away.
Commit and push repo changes to GitHub using the standard Iris workflow.
Search the web using Perplexity AI API. Returns sourced, up-to-date information.
Send an email via Resend API from ${IRIS_EMAIL_FROM:-iris@example.com}. Use when human escalation is needed or to deliver results outside Slack/Telegram.
Transcribe an audio file (m4a, mp3, wav, ogg, webm) to text using OpenAI Whisper API. Use when a user shares a voice note or audio attachment.
Add, remove, and test MCP (Model Context Protocol) servers by editing meta/mcp.json. Tools from connected servers appear automatically as mcp__<server>__<tool>.
| name | set-secret |
| description | Store a secret, or mint a one-time drop link so a user can share a secret without pasting it into chat. Use whenever a user is about to share a credential. |
If a user starts to paste a secret (API key, token, password) into chat — stop them and send a drop link instead. Values pasted in chat end up in the LLM context, transcripts, and channel logs; a drop link goes straight into the encrypted secret store and never touches any of those.
set-secret request <SECRET_NAME> [--channel <channelId>] [--ttl <seconds>]
Prints a one-time link (path, and full URL when IRIS_BASE_DOMAIN is set).
Relay it to the user: they open it, paste the value into a form, and submit.
The link is single-use and expires (default 15 minutes). When --channel is
passed, a name-only notification lands back in that conversation once the
secret arrives — so pass the current channel id and you'll hear about it.
Secrets whose name matches an injection-gateway service (see
docs/secrets.md) default to proxy-only: usable through the broker
gateway, never readable in plaintext — by anyone.
Requires a writable secrets backend (IRIS_SECRETS_MODE=store or proxy)
and the web transport (IRIS_WEBUI_PORT); the API replies 503 with guidance
otherwise. Only share drop links over HTTPS (serve-public) or an SSH tunnel.
For secrets Iris provisions herself (e.g. a token she just created via gh):
printf '%s' "$VALUE" | set-secret <SECRET_NAME> [--proxy-only]
Value is read from stdin — never pass it as an argument (argv leaks into process listings and shell history).