Popsink/public-skills —
so you can read every line before installing it.
Popsink/public-skills
One directory per skill under
skills/, each holding a SKILL.md. Public by
design: no client names, no hostnames, no credentials.What the skill gives you
Once installed, Claude Code can answer questions about a running deployment instead of guessing from documentation:- “Is anything broken on
<tenant>?” — lists datamodels inerror, pulls the connector logs for the ones that are. - “How far behind is this pipeline?” — reads production and consumption metrics over a window and reports lag.
- “Inventory this environment” — source connectors, target connectors, datamodels, subscriptions, paginated properly.
- “Restart this connector” — but only after telling you exactly which named resource it is about to touch, and waiting for a yes.
scripts/popsink, a small curl + jq wrapper that handles the
token dance — caching, expiry, and one retry on 401 — so the agent does not
re-invent it on every call.
The skill always reads your instance’s live OpenAPI schema
(
$POPSINK_URL/api/openapi.json) before calling. The endpoint list bundled with
it is a snapshot to find the right area fast, not a contract.Prerequisites
An API key starts with
psk_ and is shown once, at creation — afterwards
only a masked preview is retrievable. It grants access to a chosen set of
environments, each with a role (admin or user), and only works on the
deployment that owns those environments.
Install
1
Clone the repository
2
Symlink the skills you want
git pull updates every installed
skill. To scope the skills to a single project instead, use that project’s
.claude/skills/ directory in place of ~/.claude/skills/.3
Export your credentials
4
Check it loaded
Start The agent exchanges the key for a token and calls
claude from any directory and ask it something read-only — the
skill loads on its own when the question is about a Popsink instance:GET /api/envs/.The model it works with
The skill knows the shape of a Popsink deployment, which is why it can navigate without being told where to look:env (or env_id) query parameter.
Endpoints that take none fall back to the principal’s active environment,
which for an API-key principal is parked on the first granted environment —
switch it with PATCH /api/users/me {"active_env_id": "<uuid>"}.
Guardrails
The skill is written to be safe to point at production, but the guardrails are instructions to an agent, not permissions enforced by the API. Your API key’s role is what actually bounds it — issue auser key on the environments you
want reachable rather than an admin key on everything.
What the skill asks Claude to confirm with you before doing:
It is also told to treat connector configs as secrets — they contain your source
credentials — and to redact client names, hostnames, schema and table names from
anything written into a ticket or a document.
Troubleshooting
Contributing a skill
The repository takes contributions. Add a directory underskills/, write a
SKILL.md whose frontmatter name matches the directory and whose
description says both what it does and when to use it — that description
is the only thing the model sees when deciding whether to load the skill.
Supporting files go in subdirectories (reference/, scripts/).
API tutorial
The same API by hand: register, authenticate, then build environments,
connectors and pipelines with
curl.Deployment options
Where your instance runs, and what
deployment_mode will report.