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 UpstageAI/upstage-extensions-hub --skill upstage-studiogit clone --depth 1 https://github.com/UpstageAI/upstage-extensions-hubWrote 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/upstageai/upstage-extensions-hub/upstage-studio)<a href="https://agentmods.dev/skills/upstageai/upstage-extensions-hub/upstage-studio"><img src="https://agentmods.dev/badge/skills/upstageai/upstage-extensions-hub/upstage-studio/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/upstageai/upstage-extensions-hub/upstage-studio"><img src="https://agentmods.dev/badge/skills/upstageai/upstage-extensions-hub/upstage-studio.svg" alt="Reviewed on agentmods" width="80" 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.00144 | $0.01936 |
| Opus 5 | $0.00072 | $0.00968 |
| Sonnet 5 | $0.00029 | $0.00387 |
| Haiku 4.5 | $0.00014 | $0.00194 |
Grade A, and why
upstage-studio 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 11d ago.
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.
| `references/examples.md` | Full end-to-end curl examples (parse→extract, classify→branch, split, instruct chaining, clone, publish, like) | How it starts
The opening of the file, as written. The whole thing — 191 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Upstage Studio / Document Agent API
Run multi-step document processing workflows via the Upstage Document Agent API (v2). Two paths:
- Studio UI path — visually configure a workflow at console.upstage.ai/studio, then call the resulting Agent ID (
agt_xxx) from your code. - API-only path — create Agents and Configs (workflows) programmatically via REST. See
references/agents-and-configs.md.
Both paths execute the same way: upload a File → run a Job → poll for results.
Quick Start (End-to-End, Studio UI Path)
import os
import time
from openai import OpenAI
client = OpenAI(
api_key=os.environ["UPSTAGE_API_KEY"],
base_url="https://api.upstage.ai/v2"
)
# 1. Upload file
file = client.files.create(
file=open("document.pdf", "rb"),
purpose="user_data"
)
# 2. Create workflow job
job = client.responses.create(
model="agt_BxcRatEWzVYH2yRNtyWynn", # Studio Agent ID
input=[{
"role": "user",
"content": [{"type": "input_file", "file_id": file.id}]
}],
include=["all"] # "all": all step results, "last": final step only
)
# 3. Poll until complete
while job.status in ("queued", "in_progress"):
time.sleep(5)
job = client.responses.retrieve(job.id, include=["all"])
# 4. Print results
if job.status == "completed":
for step in job.output:
print(f"\n=== {step.model} ===")
for content in step.content:
print(content.text)
else:
print(f"Job failed: {job.status}")
# 5. Cleanup
client.files.delete(file.id)
API Key: Always use os.environ["UPSTAGE_API_KEY"]. Get your key at console.upstage.ai/api-keys (keys start with up_).
Base URL: https://api.upstage.ai (Document Agent endpoints live under /v2)
Core Concepts
Resource Hierarchy
Agent (execution unit)
└─ Config (workflow definition: ordered Steps + conditional branching)
└─ Job (execution instance)
├─ File (input document)
└─ Results (per-step output)
What ships with it
6 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.
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.
- 11d ago First seen · 191 lines · 144 tokens per session scan A e82dc4182578
upstage-studio is a skill published in the GitHub repository UpstageAI/upstage-extensions-hub (10 stars, last pushed 4mo ago), licensed MIT. It adds 144 tokens to every session and 1,936 once invoked, about $0.0007 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-31.
Other skills, from other repositories
feature-flag-policy
Cargo feature flags for crates/xberg — ORT-incompatible targets (WASM, Android x8664 emulator), type-only and tract inference companion features, WASM/Android-safe variants, PDF backend, mutually-exclusive ORT variants, platform-conditional deps, aggregate feature sets, and build profiles. Load when adding, wiring, or…
ocr-pipeline-and-quality
Change or evaluate Xberg OCR backends, preprocessing, caching, page acceptance, geometry, hOCR structure, table reconstruction, or cross-backend quality. Load for OCR behavior and A/B quality work, not ordinary PDF text extraction.
pdf-backends
Change or diagnose Xberg PDF extraction, native/Pdfium backend selection, PDF rendering sessions, encrypted documents, OCR fallback, or backend-specific capability gaps. Load for PDF engine work, not generic image OCR.
add-sharepoint
Adds SharePoint Online connector to a Power Apps code app. Use when reading lists, managing documents, or integrating with SharePoint sites. Can also create new SharePoint lists.
using-the-mcp-server
Use when converting HTML to Markdown or extracting metadata and tables through the html-to-markdown MCP server's tools, rather than shelling out to the CLI. Covers the tool surface, the auto-installing launcher, and when MCP beats the CLI or SDK.
nw-diagram
Generates C4 architecture diagrams (context, container, component) in Mermaid or PlantUML. Use when creating or updating architecture visualizations.