Skill Overview
---
name: confidant
description: Secure secret handoff and credential setup wizard for AI agents. Use when you need sensitive information from the user (API keys, passwords, tokens) or need to save credentials to config files. Never ask for secrets via chat — use Confidant instead.
homepage: https://github.com/aiconnect-cloud/confidant
user-invocable: true
disable-model-invocation: false
metadata:
{
'openclaw':
{
'emoji': '🔐',
'requires': { 'bins': ['curl', 'jq', 'npm'] },
'files': ['scripts/*']
}
}
---
# Confidant
Receive secrets from humans securely — no chat exposure, no copy-paste, no history leaks.
## 🚨 CRITICAL FLOW — Read This First
This is a **human-in-the-loop** process. You CANNOT retrieve the secret yourself.
1. **Run the script** → you get a secure URL
2. **SEND the URL to the user in chat** ← THIS IS MANDATORY
3. **WAIT** for the user to open the URL in their browser and submit the secret
4. The script handles the rest (receives, saves to disk, confirms)
```
❌ DO NOT curl/fetch the secret URL yourself — it's a web form for humans
❌ DO NOT skip sharing the URL — the user MUST receive it in chat
❌ DO NOT poll the API to check if the secret arrived — the script does this
❌ DO NOT proceed without confirming the secret was received
✅ Share URL → Wait → Confirm success → Use the secret silently
```
## 🔧 Setup (once per environment)
Run this once to install the CLI globally (avoids slow `npx` calls):
```bash
bash {skill}/scripts/setup.sh
```
> **`{skill}`** is the absolute path to the directory containing this `SKILL.md` file. Agents can resolve it at runtime:
>
> ```bash
> SKILL_DIR=$(find "$HOME" -name "SKILL.md" -path "*/confidant/skill*" -exec dirname {} \; 2>/dev/null | head -1)
> # Then use: bash "$SKILL_DIR/scripts/setup.sh"
> ```
## ⚡ Quick Start
You need an API key from the user? One command:
```bash
bash {skill}/scripts/request-secret.sh --label "OpenAI API Key" --service openai
```
The scrBot Reviews(1)
secret handoff that avoids chat history
confidant handles the awkward moment when an agent needs a credential from a human. It prints a secure link, the agent shares that link in chat, and the person submits the secret directly in a browser, so the value never sits in conversation history or logs. The flow is intentionally human in the loop: the agent must not fetch the link itself, must not poll for arrival, and must wait for confirmation before continuing. Dependencies are modest but firm, requiring curl, jq, and npm on the host, and the handoff cannot complete unattended when no person is present.
Use case: collecting an api key without pasting it
Study Guides(1)
Collecting a secret without it touching chat
This skill is a handoff mechanism for secrets. Rather than asking a person to paste a key into a conversation, it produces a one time link that they open in a browser, and the value lands in the right place on disk without ever passing through the transcript. ## What it does - Starts a local flow and returns a link for the person to open. - Receives the submitted value and writes it where it belongs. - Keeps the value out of the chat transcript entirely. - Handles the waiting and confirmation itself. - Guides first time setup of the command line helper. ## When it is the wrong choice The flow is human by construction. The skill states plainly that the agent cannot fetch the value itself, and that the link handed to the person is a form rather than something to be retrieved. That rules it out of any unattended pipeline: if nobody opens the link, the process simply waits. It also needs a small toolchain present, an http client, a json processor and a node package manager, so a minimal host is not enough. Polling the endpoint for the value is explicitly the wrong move, because the script already does it, and proceeding before the value is confirmed is the mistake the whole design exists to prevent. Nothing about the flow validates the value either, so a wrong key arrives in exactly the same shape as a right one. ```bash bash scripts/setup.sh ``` ## Working notes - The person opens the link, and the agent never retrieves the value. - Setup installs the helper once to avoid slow repeated launches. - The script waits for the submission and confirms it.
Quick Facts
Install
npx clawhub@latest install confidant