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 agentproto/ts --skill agentproto-appsgit clone --depth 1 https://github.com/agentproto/tsWrote 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/agentproto/ts/agentproto-apps)<a href="https://agentmods.dev/skills/agentproto/ts/agentproto-apps"><img src="https://agentmods.dev/badge/skills/agentproto/ts/agentproto-apps/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/agentproto/ts/agentproto-apps"><img src="https://agentmods.dev/badge/skills/agentproto/ts/agentproto-apps.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to high
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 →
- high Privilege Escalation · line 176 Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.Fix: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.
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.00178 | $0.03075 |
| Opus 5.5 | $0.00071 | $0.01230 |
| Sonnet 5.5 | $0.00036 | $0.00615 |
| Haiku 4.5 | $0.00018 | $0.00308 |
Grade A, and why
agentproto-apps 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 19d 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.
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 — 220 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Agentproto apps (AIP-53)
A packaged app is a directory that ships one or more AIP-42 agents, the
AIP-15 workflows they run, and (optionally) a single-file web UI, emitted under
<dir>/.agentproto/ by defineApp().emit(dir). The daemon installs, applies,
runs, and persists them. This skill is the app plane on top of the base
agentproto skill (sessions/drivers live there).
Anatomy — what an app dir contains
<appDir>/
.agentproto/
APP.md # frontmatter: id, agents[], workflows[], ui{path,tools}
agents/<id>/AGENT.md # AIP-42 agent manifests
workflows/<id>/WORKFLOW.md # AIP-15 workflow manifests
ui/index.html # single-file dashboard (CSS+JS inline)
data/ # default data dir (app_data_* writes here)
<dataDir>/ # …or wherever `app_install {dataDir}` /
# `app install --data-dir` pointed it
APP.md frontmatter (schema: app/v1, id, agents: [{id,path}],
workflows: [{id,path}], ui: {path, title, tools: [...]}, optional
data: {dir} — the default data dir, relative to the app dir). The ui.tools
array is an allowlist — app_tool_call REFUSES any tool id not in it, so
when the UI calls a new daemon tool (e.g. app_data_read), add it there.
Gotcha: this repo's root
.gitignoreignores.agentproto/by default (it targets agent-scoped scratch). For a first-class app bundle the.agentproto/dir IS the deliverable —git add -f <appDir>/.agentprototo commit it.
The app lifecycle (daemon verbs)
app_install {dir}— validates the app (loadAppHandle), cross-checks every WORKFLOW.mdtoolstep id against the daemon's registered tools (reports ALL missing at once), and checks the agent adapter resolves. Upserts byappId. Re-installing refreshes the record.app_apply {appId, scopeId?, dir?}— makes the app's capabilities available in a scope; installs first ifdirgiven and not already installed; validatesrequiresdeps are applied. Idempotent.app_run {appId, agents?, sequence?, prompt?, cwd?, model?, harness?, adapter?}— spawns one live session per agent under a freshappRunId.agentsruns them CONCURRENTLY.sequence: [id, ...]runs them ONE-AT-A-TIME in order (each awaited to a terminal session state before the next), for scout→tailor-style dependency chains — both under one appRunId. Passmodel/harness(oradapter) to select the runner for every spawn.app_status {appRunId}— returns the run's session descriptors + its workflow runs. As of the sequential-run work,app_statusLAZILY reconciles: if the stored run status isrunningbut every session is terminal, it reportsended(with a synthesizedendedAt) — so concurrent runs are also observed to conclude instead of hanging forever atrunning.app_stop {appRunId}— kills the run's sessions and marks it terminal.app_list— installed apps with a run-history summary (includesadapter/harness/modelwhen set on the run).app_uninstall/app_unapply/app_list_applied/app_catalog/app_skill_get/app_artifact_get— installation/uninstall and catalog.
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.
- 19d ago Changed d29627d70458
- 22d ago Changed · +28 lines 0f7fdf1e3703
- 1mo ago Changed · +23 lines b2c88b4a0bb3
- 1mo ago First seen · 169 lines · 178 tokens per session scan A 878539acf916
agentproto-apps is a skill published in the GitHub repository agentproto/ts (10 stars, last pushed today), licensed Apache-2.0. It adds 178 tokens to every session and 3,075 once invoked, about $0.0007 per session on Opus 5.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-08-31.
Other skills, from other repositories
skill-creator-primer
You MUST load this skill before the skill-creator skill AND before making ANY change to, or conducting a review of ANY Agent Skill. Triggers include creating, editing, reviewing, or contributing to any part of an Agent Skill (description, frontmatter, body, references, scripts, trigger evals, conflicts, etc).
llm-wiki
Use when building or maintaining a self-contained personal knowledge base (an LLM wiki) in plain markdown. Triggers: ingesting sources into a wiki, querying wiki knowledge, linting wiki health, auditing article claims against their sources, critiquing a wiki source's reasoning, superseding stale knowledge, 'add to…
extract-wisdom
Extract wisdom, insights, and actionable takeaways from YouTube videos, blog posts, articles, or text files. Use when asked to extract wisdom or key insights from a given content source.
apply-mantel-styles
Provides guidelines for applying Mantel's brand styles to diagrams and frontend components. Use when asked to create visuals that need to align with Mantel's branding.
home-assistant
This skill should be used when helping with Home Assistant setup, including creating automations, modifying dashboards, checking entity states, debugging automations, and managing the smart home configuration. Use this for queries about HA entities, YAML automation/dashboard generation, or troubleshooting HA issues.
deepeval
Use when discussing or working with DeepEval (the python AI evaluation framework).