/hq-cowork-secrets — Use HQ secrets from a sandboxed agent
SkillDev toolsRun commands with HQ secrets from Cowork without exposing values.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the /hq-cowork-secrets — Use HQ secrets from a sandboxed agent skill
What this skill tells your AI
The instructions your AI receives, as published by indigoai-us/hq-core in core/packages/hq-pack-cowork/skills/hq-cowork-secrets/SKILL.md and read by ahel’s review.
Runs commands with HQ secrets injected, and lists secret names, from inside
Cowork — where the hq CLI and ~/.hq vault are unreachable. Routes through
the host-side MCP server. The server never returns a secret value itself,
and the secret-injecting tool refuses to run a shell or value-printing binary
— but these tools run host commands with your privileges, so treat them as
host-trusted, not an airtight boundary.
Args: $ARGUMENTS — list (+ optional company/prefix) or exec (keys +
command). Infer from intent if not explicit.
Two modes
List names — mcp__hq__hq_secrets_list
Shows secret NAMES and path-based nested names. Values are never returned.
{ "company": "<slug>", "personal": false, "prefix": "DEV" }
Omit company to use the active company; set personal: true for the
caller's personal vault; prefix filters by path segment.
Run with secrets — mcp__hq__hq_secrets_exec
Injects named secrets as env vars of the same name into a child process and returns only the command's stdout/stderr.
{
"keys": ["STRIPE_KEY", "DB_URL"],
"cmd": ["./scripts/migrate.sh"],
"company": "<slug>",
"personal": false
}
cmd is argv (argv0 + args), NOT a shell string. The tool REFUSES to launch a
shell or a raw value-printing binary as cmd[0] (sh/bash/zsh, printenv, env,
echo, printf, cat, tee, node/python/perl/ruby, base64, xxd, strings, …) — this
is defense-in-depth so an injected one-liner can't echo an injected secret back
through the tool result. Invoke the actual consumer binary directly (e.g.
vercel, aws, gh, or a deploy script). This is not airtight: a custom
binary you control could still observe a secret it was given, so treat the tool
as host-trusted.
Security rules (hard — from HQ core)
- No value-revealing path exists by design.
hq secrets get --revealis NOT wrapped. Do not attempt to capture a value by echoing the env var. - Cross-company isolation. Pass
companyexplicitly when crossing contexts. If the scoped secret is missing or the command fails on auth, STOP and ask — never retry against a different company's vault. - Never paste secrets inline. Always consume via
hq_secrets_execinjection; never ask the user to paste a value into chat.
When to use this instead of /hq-secrets
Only inside Cowork or another sandboxed plugin host. On a host-side session,
prefer the unprefixed /hq-secrets (or hq run / hq secrets exec).
Why this skill exists
hq secrets exec reads the encrypted vault under ~/.hq with the user's
Cognito session — neither is visible from Cowork's Linux VM. The host-side
MCP server runs the real command on the host and returns only the child's
output. The server never returns a secret value itself, and refuses to run a
shell / value-printing binary — but it runs host commands with your privileges,
so it is host-trusted, not a cryptographic boundary.
Signals
- GitHub stars
- 84
- Forks
- 15
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
hq-cowork-secrets- Source
- github.com/indigoai-us/hq-core