vault-user — Claude Code skill: what it does, how to install
Connects coding agents to a local HashiCorp Vault instance in OpenRig to check health, inspect paths, and manage secrets.
npx skills add mvschwarz/openrig --skill vault-user -a claude-codeWhat vault-user does
The skill provides operational instructions for interacting with a local HashiCorp Vault instance at http://127.0.0.1:8200. It configures requests with the default token openrig-dev-token in the X-Vault-Token header. Before sending raw API queries, it verifies service availability using the rig env status command.
Interactions rely on curl and jq against the KV secrets engine mounted at secret/. The agent checks initialization and unseal flags through /v1/sys/health, extracts values from .data.data, deletes paths, and recursively navigates /v1/secret/metadata/ to map existing keys.
This setup targets Vault dev mode. Because storage resides entirely in memory, restarting the instance wipes every stored secret immediately.
What it helps with
- inspect Vault health and seal status
- store key-value pairs at
secret/data/<path> - retrieve secret data from
.data.data - map out keys under
secret/metadata/ - wipe secret records at target endpoints
Example prompts for the agent
- Check Vault health and report if it is unsealed.
- Store a new secret with key
api_keyundersecret/data/services. - List all metadata paths in Vault and explain their layout.
How to install vault-user
1Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill vault-user -a claude-code2Manually: put the files in place
~/.claude/skills/vault-user/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/vault-user/
1Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill vault-user -a codex2Manually: put the files in place
.agents/skills/vault-user/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill vault-user -a cursor2Manually: put the files in place
.cursor/skills/vault-user/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install mvschwarz/openrig vault-user2Manually: put the files in place
.github/skills/vault-user/SKILL.md1Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill vault-user -a gemini-cli2Platform CLI
gemini skills install https://github.com/mvschwarz/openrig --path packages/daemon/specs/agents/apps/vault-specialist/skills/vault-userManually: put the files in place
.devin/skills/vault-user/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill vault-user -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about vault-user
How do I install vault-user in Claude Code?
Run npx skills add mvschwarz/openrig --skill vault-user -a claude-code in your terminal. This creates ~/.claude/skills/vault-user/SKILL.md.
What does vault-user do?
It guides the assistant through curl commands to manage a local HashiCorp Vault instance. The agent can check health, inspect structure, read payloads, and delete keys.
Does this skill support persistent secret storage?
No. The target environment runs Vault in dev mode, so all data remains in-memory and disappears whenever the server restarts.
Source text
SKILL.md · Apache-2.0
---
name: vault-user
description: Use when checking the health of this rig's HashiCorp Vault or writing, reading, listing, deleting or explaining its secrets.
---
# Vault User
You have access to a HashiCorp Vault instance managed by this rig's environment.
## Connection
- **Address:** `http://127.0.0.1:8200`
- **Token:** `openrig-dev-token`
- **Auth header:** `X-Vault-Token: openrig-dev-token`
Always set the token before making API calls. For curl, use `-H "X-Vault-Token: openrig-dev-token"`.
## Health Check
```bash
curl -s http://127.0.0.1:8200/v1/sys/health | jq .
```
A healthy response has `"initialized": true` and `"sealed": false`.
## Secret Operations
### Write a secret
```bash
curl -s -X POST http://127.0.0.1:8200/v1/secret/data/<path> \
-H "X-Vault-Token: openrig-dev-token" \
-d '{"data": {"key": "value"}}' | jq .
```
### Read a secret
```bash
curl -s http://127.0.0.1:8200/v1/secret/data/<path> \
-H "X-Vault-Token: openrig-dev-token" | jq .
```
The secret value is in `.data.data`.
### List secrets
```bash
curl -s -X LIST http://127.0.0.1:8200/v1/secret/metadata/ \
-H "X-Vault-Token: openrig-dev-token" | jq .
```
List a subdirectory by appending the path: `.../secret/metadata/<prefix>/`.
### Delete a secret
```bash
curl -s -X DELETE http://127.0.0.1:8200/v1/secret/data/<path> \
-H "X-Vault-Token: openrig-dev-token"
```
## Explaining Secrets
When asked to explain the current secret structure, list all paths and summarize what each contains. Use the list endpoint recursively if needed.
## Important Notes
- This is Vault dev mode — all data is in-memory and lost on restart
- The KV secrets engine is mounted at `secret/` by default in dev mode
- Use the `rig env status` command to verify Vault health through OpenRig before direct probing
© mvschwarz · Apache-2.0 · mvschwarz/openrig