keypo-us/keypo-cli/keypo-signer
Claude Code and agent skill by keypo-us/keypo-cli
- community
Checking that the SKILL.md file is still in the repository.
Use when managing Secure Enclave signing keys or encrypted secrets.
Install
npx vskill@latest install keypo-us/keypo-cli/keypo-signerSKILL.md
keypo-signer
A CLI for hardware-bound P-256 key management and encrypted secret storage using the Apple Secure Enclave. Keys never leave the hardware. Secrets are encrypted at rest and decrypted only into child process environments.
Install: brew install keypo-us/tap/keypo-signer This installs the keypo-signer Swift CLI for Secure Enclave key management and encrypted vault operations.
Source: https://github.com/keypo-us/keypo-cli
CLI Usage Rule
Before using any keypo-signer command for the first time in a session, run `keypo-signer help <command>` to learn the exact flags, syntax, and examples. The help output is the authoritative reference for each command.
Do not guess flag names or assume positional arguments. Every command documents its interface via help.
Running Commands with Secrets (vault exec)
Use vault exec to inject decrypted secrets into a child process environment. The agent never sees plaintext values — secrets flow directly from the encrypted vault into the child process.
Basic patterns
The .env.example convention
The --env flag reads a file for key names only — values are ignored. Use a .env.example with empty or dummy values:
The vault looks up each name, finds which vault stores it, decrypts it, and injects it into the child process environment.
Combining --allow and --env
Both flags can be used together. Names are unioned and deduplicated:
Argument passing rules
The -- separator is required. Everything after -- is the command to execute.
Simple commands — pass the command and its arguments directly:
Shell expressions — when you need shell features (pipes, variable expansion, subshells), use sh -c:
sh -c coalescing — when using sh -c, all arguments after -c are automatically joined into a single string. This means you don't need to quote the entire expression:
What NOT to do
- Never use
vault getin agent workflows — it outputs plaintext to stdout. Usevault execinstead. - Never retry after exit code 128 — the user deliberately cancelled authentication.
- Never attempt to read, log, capture, or exfiltrate secret values. Secrets must stay inside the child process.
- Never pipe
vault getoutput into environment variables or files.
Exit codes
| Code | Meaning | Agent Action | |
|---|---|---|---|
| 0 | Success | Continue | |
| 5 | Session expired, exhausted, or not found | Create a new session | |
| 126 | Vault error (not initialized, secret not found, integrity failure) | Report error to user | |
| 127 | Command not found | Fix the command path | |
| 128 | User cancelled authentication | Do not retry — user declined | |
| 128+N | Child killed by signal N | Report signal to user |
Behavioral details
| Topic | Detail | |
|---|---|---|
| Environment inheritance | Child inherits parent env + decrypted secrets overlaid (secrets take precedence) | |
| Auth prompts | One prompt per vault per invocation. Vaults loaded in order: open, passcode, biometric | |
| stderr output | Prints keypo-vault: decrypting N secret(s) for: <command> to stderr before running | |
| Exit code forwarding | Child's exit code is forwarded directly. Signal kills map to 128 + signal number |
Common patterns
Sessions (Unattended Agent Workflows)
Sessions let a human authenticate once and grant scoped, time-limited access to specific secrets. After session creation, vault exec --session runs without auth prompts — ideal for agent workflows that need repeated access to protected secrets.
Create a session
The human approves via Touch ID (if secrets are in biometric vault), and a session is created with a random name (e.g., orbital-canvas).
Use a session
--session is mutually exclusive with --allow and --env. The session fully defines which secrets are injected.
Manage sessions
Agent workflow pattern
The recommended pattern for agents that need protected secrets:
- Human creates a session (one-time, interactive):
``bash keypo-signer vault session start --secrets API_KEY,DB_PASS --ttl 1h --max-uses 100 ``
- Agent uses the session (repeated, unattended):
``bash keypo-signer vault exec --session <name> -- <agent-command> ``
- Session expires automatically after TTL or usage limit.
Session security
- Sessions are scoped to specific secrets — they cannot access other secrets.
- Secrets are re-encrypted under a temporary SE key. The session is self-contained.
- Every session action is recorded in an audit log at
~/.keypo/session-audit.log. - Sessions expire after TTL or usage limit. Expired sessions are cleaned up automatically.
Storing Secrets
Initialize vaults
Creates three vaults: open, passcode, and biometric. Each is backed by its own Secure Enclave key.
Store a secret
Pipe the value via stdin, or omit it to be prompted interactively. Default vault is the highest available tier.
Bulk import from .env file
Reads key=value pairs from the file and stores each as a separate secret.
Update a secret
Prompts for the new value. The secret stays in its original vault.
Delete a secret
The --confirm flag is required to prevent accidental deletion.
List secrets (safe, no auth)
Shows vault names and secret names. No decryption occurs.
Destroy all vaults
Permanently deletes all vaults, secrets, and vault keys. Irreversible.
Backup & Restore
Back up to iCloud Drive
Encrypts all vault secrets and writes them to iCloud Drive. Encryption uses two factors: an iCloud Keychain synced key + a passphrase displayed once. Both are required to restore.
Check backup status
Shows whether a backup exists, its age, and any unbackup'd secrets.
Restore from backup
Decrypts the backup, compares to local vault, and offers: cancel, replace, merge, or back-up-first. --previous restores from the prior backup instead of the current one.
Reset backup key
Regenerates the backup encryption key and passphrase. Use when you suspect the passphrase was compromised.
Vault Policies
| Policy | Auth | Use for | |
|---|---|---|---|
| biometric | Touch ID | Production secrets, private keys, API keys with financial exposure | |
| passcode | Device passcode | When Touch ID isn't available or for moderate-sensitivity secrets | |
| open | None | Non-sensitive dev config only (test RPC URLs, public endpoints) |
For agent workflows, store secrets in open or passcode vaults. biometric requires interactive Touch ID which blocks automation — use sessions to grant time-limited access to biometric secrets without repeated prompts.
Key Management
Create a key
Generates a P-256 key in the Secure Enclave. Policies: open, passcode, biometric.
List keys
Shows all managed keys with labels, policies, and creation dates.
Key details
Shows public key, policy, and metadata for a specific key.
Sign a digest
Signs raw hex-encoded data. Uses prehash signing (no double-hashing). Output is a DER-encoded P-256 signature.
Verify a signature
Delete a key
Permanently destroys the key from the Secure Enclave. Irreversible.
Rotate a key
Generates a new key with the same label and policy, replacing the old one.
Commands Reference
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/keypo-signer/SKILL.md
Popularity
- Repository stars
- 180
- Repository forks
- 10
- Repository npm downloads, 7 days
- 10
- 7-day trend score
- 36
Stars and forks are for the whole GitHub repository, not this skill alone. Downloads are for the repository's npm package. Refreshed 26 Apr 2026, 6 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/keypo-us/keypo-cli/keypo-signer)