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 closedloop-ai/claude-plugins --skill upload-artifactgit clone --depth 1 https://github.com/closedloop-ai/claude-pluginsWrote 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/closedloop-ai/claude-plugins/upload-artifact)<a href="https://agentmods.dev/skills/closedloop-ai/claude-plugins/upload-artifact"><img src="https://agentmods.dev/badge/skills/closedloop-ai/claude-plugins/upload-artifact.svg" alt="Measured on agentmods" height="20"></a>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.00103 | $0.01461 |
| Opus 5 | $0.00051 | $0.00731 |
| Sonnet 5 | $0.00021 | $0.00292 |
| Haiku 4.5 | $0.00010 | $0.00146 |
Grade A, and why
upload-artifact scanned grade A with 0 findings 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 today.
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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 146 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Upload Artifact
Upload file content as a ClosedLoop MCP artifact. Two modes:
-
Script mode (preferred) — uses a standalone Python script that reads the file and calls MCP directly over Streamable HTTP. No conversation context consumed for file content. Requires
CLOSEDLOOP_API_KEYandNEXT_PUBLIC_MCP_SERVER_URLto already be present in the current shell environment. -
MCP fallback — reads the file into context and calls
mcp__closedloop__create-documentdirectly. Uses Claude Code's existing MCP auth. Used when the required script-mode environment variables are not available.
Workflow
Follow these steps in order:
Step 1: Resolve Credentials and Choose Mode
Read these values from the current shell environment. Do not read, source, or
otherwise rely on a .env.local file in the current working directory:
CLOSEDLOOP_API_KEY— the API key (starts withsk_live_)NEXT_PUBLIC_MCP_SERVER_URL— the MCP server URL
If both exist → use script mode (Steps 2a–5a). If either variable is missing → use MCP fallback (Steps 2b–5b).
Script Mode (required env vars available)
Step 2a: List Projects
Run the script with --list-projects:
uv run --with 'mcp[cli]>=2,<3' ${CLAUDE_SKILL_DIR}/scripts/upload_artifact.py \
--url "$NEXT_PUBLIC_MCP_SERVER_URL" \
--api-key "$CLOSEDLOOP_API_KEY" \
--list-projects
Parse the JSON output. Extract the items array. Each item has id and name.
Use AskUserQuestion to present the projects to the user:
- Question: "Which project should this artifact be uploaded to?"
- Options: one per project, label = project name, description = project ID
If only one project exists, skip the question and use it automatically.
Step 3a: Collect Remaining Parameters
Use AskUserQuestion to collect any parameters the user hasn't already specified:
- file_path: "Which file should be uploaded?"
- title: "What title should this document have?"
- type: "What type of document?" (options: PRD, IMPLEMENTATION_PLAN, FEATURE, TEMPLATE)
What ships with it
1 file 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.
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.
- today First seen · 146 lines · 103 tokens per session scan A 6e5d895276d0
upload-artifact is a skill published in the GitHub repository closedloop-ai/claude-plugins (103 stars, last pushed yesterday), licensed Apache-2.0. It adds 103 tokens to every session and 1,461 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-07.
Other skills, from other repositories
report-manager
Manage and refine vision-powers reports: list, open, delete, search, and refine sections. Use when asked to list, open, delete, search, or update generated HTML reports.
cmux-markdown
Open markdown files in a cmux formatted viewer panel with live reload. Use when you need to display plans, documentation, or notes alongside the terminal with rich rendering (headings, code blocks, tables, lists). Requires cmux environment ($CMUXWORKSPACEID).
save-md
Saves a named source to Markdown with provenance and faithful extraction through direct export endpoints. Use when asked to "save this article", "get the markdown", "transcribe this", or "keep this source". A URL supplied as task context alone does not trigger conversion; a chat summary stays in chat.
research-capture
The durable research-evidence-trail discipline. At a deep-research-bearing research-first gate, persist the FULL claim-level trail (verified ∧ REFUTED) as - .md at the configured governance.researchpath (defaults to .foundry/research/) from the research-artifact template, and author the ADR at the configured…
comps-analysis
Build comparable-company valuation workbooks in Excel.
box
Box manages cloud files, sharing, search, and metadata.