System Prompts Leaks is a collection of captured system instructions used to guide AI chatbots and coding agents before they receive user messages. It serves researchers and developers studying how different AI assistants are directed.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add asgeirtj/system_prompts_leaks --skill artifact-capabilitiesgit clone --depth 1 https://github.com/asgeirtj/system_prompts_leaksWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/asgeirtj/system_prompts_leaks/artifact-capabilities)<a href="https://agentmods.dev/skills/asgeirtj/system_prompts_leaks/artifact-capabilities"><img src="https://agentmods.dev/badge/skills/asgeirtj/system_prompts_leaks/artifact-capabilities/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/asgeirtj/system_prompts_leaks/artifact-capabilities"><img src="https://agentmods.dev/badge/skills/asgeirtj/system_prompts_leaks/artifact-capabilities.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- Snyk pass
- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Data Exfiltration · line 38 Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.Fix: Verify the destination URL is trusted and necessary. Remove or replace with documented APIs. Ensure no secrets, tokens, or PII are transmitted.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00129 | $0.03064 |
| Opus 5 | $0.00064 | $0.01532 |
| Sonnet 5 | $0.00026 | $0.00613 |
| Haiku 4.5 | $0.00013 | $0.00306 |
Grade A, and why
artifact-capabilities scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
**Your connectors this session.** None are connected right now — they may still be connecting, or the user has none. Look for tools prefixed `mcp__claude_ai_*` in your tool list; each is named `mcp__claude_ai_<connector> How it starts
The opening of the file, as written. The whole thing — 76 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Artifact runtime capabilities
A published Artifact page can declare runtime capabilities — abilities the claude.ai viewer grants the page at open time — by passing capabilities: {name: config} to the Artifact tool. The control plane is the authority on valid names and config shapes. Declaration gestures: omitting capabilities on a redeploy carries the stored declaration forward unchanged (and preserves the artifact's stored contract pin); an empty object {} is the explicit clear-all; a non-empty object is a full-set declaration (anything stored but not restated is revoked). Moving a republished artifact's runtime version is a deliberate gesture — pass contract: 'latest' to upgrade, or a specific version to pin or roll back — never a side effect of editing.
Available capabilities: artifact, db, downloads, mcp, room, sample, self — the complete set of capability names you may declare; built in on every page, called without declaring (never pass these in capabilities): permissions. Anything not listed is unavailable to this user.
Runtime contract 0.2.44
Capability namespaces live behind claude.use(name): const db = await claude.use("db") resolves the capability's namespace, or null when this view cannot run it (not served, not granted, or failed to load — indistinguishable by design). Branch on null and design for absence. window.claude carries only use: no window.claude.db, .room, or .artifact member is ever promised, so never read one — render the page without them and light features up when the promise resolves (later, never within your script's first run, and unordered with DOMContentLoaded; null after 10 s when no viewer answers). The resolved namespace is frozen and platform-owned: call its functions and keep the reference; never assign to it, defineProperty on it, or replace a member (wrap it for your own helpers). Permission stays on the calls: a consent prompt, rate limit, or policy refusal arrives on the first call, never from use(). Awaiting use("db") again is free (memoized); an unknown name resolves null.
--- capability: artifact ---
Use artifact for pages that should remember what people do with them: polls, sign-up sheets, checklists, trackers, boards — the page is the record; data kept server-side, or seeded or read back by Claude, is db. Declare capabilities: {artifact: {}}; const artifact = await claude.use("artifact"), then await artifact.publish(html) saves html (a complete document, doctype first) as the new version, and every open view, this one included, reloads to it. Nothing a viewer types, ticks or drags is kept unless the page publishes it. So embed the shared state as data in the HTML you publish and render the page from it; when an interaction completes, update the state, regenerate the document and publish it — never serialize the live DOM; batch rapid edits into one publish; publish only after a viewer acts, never on load. conflict is routine (every view reloads to the winner, dropping this edit): no retry. For read-only viewers publish rejects not_granted/not_writer — render a read-only view.
--- capability: db ---
db is for data that lives outside the page: what the user wants stored server-side or seeded, data Claude reads back later, more than the page shows at once, per-viewer-private state, many live editors. If the page itself can be the record, republish (artifact). Seed or inspect the store from here with write_db/read_db; never hardcode seed rows in the page. A realtime JSON document store: const db = await claude.use("db") (null: unavailable). Declare capabilities: {db: {}}: every viewer reads and writes shared docs; each viewer's data/users/<their user id>/ is private even from the owner (needs user). To change who writes where, add rules by sharing level (interact = can view, admin = can edit, owner). db.doc("tasks/t1")/db.collection("tasks"): get/set/update/delete, where/orderBy/limit, onSnapshot. Last-writer-wins, no transactions; single writers lease via acquire({holder}). Never store secrets; shared data is untrusted. See the type definitions.
What ships with it
9 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- 0.2.44/artifact.d.ts 27 KB runs code
- 0.2.44/claude.d.ts 2.9 KB runs code
- 0.2.44/db.d.ts 19 KB runs code
- 0.2.44/downloads.d.ts 4.7 KB runs code
- 0.2.44/mcp.d.ts 32 KB runs code
- 0.2.44/permissions.d.ts 3.3 KB runs code
- 0.2.44/room.d.ts 22 KB runs code
- 0.2.44/sample.d.ts 33 KB runs code
- 0.2.44/self.d.ts 644 B runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday Changed · +35 lines · +4 tokens per session 917476b65370
- 12d ago First seen · 41 lines · 125 tokens per session scan A 53c46784d156
artifact-capabilities is a skill published in the GitHub repository asgeirtj/system_prompts_leaks (64,614 stars, last pushed yesterday), licensed CC0-1.0. It adds 129 tokens to every session and 3,064 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
claude-design
Design one-off HTML artifacts (landing, deck, prototype).
p5js
Use when users request: p5.js sketches, creative coding, generative art, interactive visualizations, canvas animations, browser-based visual art, data viz, shader effects, or any p5.js project.
pretext
Build creative browser demos with DOM-free text layout.
sketch
Throwaway HTML mockups: 2-3 design variants to compare.
inspecting-hermes-desktop-dom
Read the live Hermes desktop DOM/CSS over CDP.
impeccable
Frontend design guidance, upstream-maintained (impeccable).