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 agentmods add skills/kirodotdev/kirocrew/kirocrew-app-devnpx skills add kirodotdev/KiroCrew --skill kirocrew-app-devgit clone --depth 1 https://github.com/kirodotdev/KiroCrewWrote 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/kirodotdev/kirocrew/kirocrew-app-dev)<a href="https://agentmods.dev/skills/kirodotdev/kirocrew/kirocrew-app-dev"><img src="https://agentmods.dev/badge/skills/kirodotdev/kirocrew/kirocrew-app-dev.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 | $0.00043 | $0.10294 |
| Opus 5 | $0.00022 | $0.05147 |
| Sonnet 5 | $0.00009 | $0.02059 |
| Haiku 4.5 | $0.00004 | $0.01029 |
Grade A, and why
kirocrew-app-dev 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 4d 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.
doesn't work": `curl -s <gateway>/apps/<name>/ui/index.mjs | md5sum` vs How it starts
The opening of the file, as written. The whole thing — 793 lines — stays where its author put it; the contents beside it link to each section on GitHub.
KiroCrew App Development
Guide for building external KiroCrew apps that work reliably across KiroCrew versions without depending on buggy lifecycle hooks or skill scanner behavior.
When to Use
- User says "create a kirocrew app", "build an app", "make an app for kirocrew"
- User says "package this as an app", "publish this to the app store"
- User is building UI pages, crons, or skills that should be distributable
App Structure
my-app/
├── app.json # Manifest (required)
├── ui/
│ ├── index.mjs # ESM React component (default export)
│ └── icon.svg # Sidebar icon (SVG or PNG)
├── skills/
│ └── my-skill/
│ └── SKILL.md # Skill spec
├── scripts/
│ ├── install.sh # Optional accelerator (NOT required)
│ └── uninstall.sh # Cleanup script
└── README.md # Optional docs
app.json Manifest
{
"name": "my-app",
"displayName": "My App",
"version": "1.0.0",
"description": "What it does in one sentence.",
"author": "login",
"tags": ["relevant", "tags"],
"skills": [
"skills/my-skill"
],
"crons": [
{
"name": "my-cron",
"message": "FIRST (self-heal, run these bash commands silently): ... THEN do the actual work.",
"every": 900,
"silent": true,
"persistent_session": false
},
{
"name": "market-open",
"message": "Summarise the overnight tape.",
"cron_expr": "30 9 * * 1-5",
"timezone": "America/New_York",
"skip_dates": ["2026-12-25"]
}
],
"permissions": {
"mcpTools": ["local_knowledge_search", "send_message"],
"network": true
},
"ui": {
"entry": "index.mjs",
"pages": [
{
"route": "/my-app",
"label": "My App",
"iconUrl": "icon.svg"
}
]
},
"setup": {
"onInstall": "scripts/install.sh",
"onUninstall": "scripts/uninstall.sh"
}
}
Critical Rules
| Field | Rule | Why |
|---|---|---|
skills |
Use string paths ["skills/my-skill"] |
Object format [{name, path}] breaks — parser stringifies dicts |
permissions |
Must be an object with keys api / events / mcpTools / storage / network / memory / cron — not a flat list |
AppManifest.from_dict only calls Permissions.from_dict when the value is a dict; a list silently parses to an empty Permissions(), granting nothing |
resources |
Must be array of strings ["tool1", "tool2"] |
Object format or nested arrays break resource resolution |
ui.entry |
Must be .mjs ESM module |
.html not in allowed extensions |
ui.pages[].iconUrl |
Use icon.svg file path |
String icon field only works for builtin apps |
displayName |
Required | Gateway uses it for UI display |
version |
Semver string | Used by update-check crons for comparison |
crons[].timezone |
IANA zone name; omit it only when the hour is zone-agnostic | An empty timezone falls back to the gateway config's zone and then to UTC, so "cron_expr": "0 6 * * *" without it fires at 06:00 UTC — the wrong calendar day for most users. A per-USER zone is not manifest data: pass timezone= to ctx.cron.add_job instead |
crons[].skip_dates |
Zero-padded YYYY-MM-DD, evaluated in timezone |
"2026-1-1" parses but never matches the padded fire-time rendering, so the skip silently does nothing. Both fields are rejected at manifest validation, not at fire time |
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.
- 4d ago First seen · 793 lines · 43 tokens per session scan A 58619f30cbe5
kirocrew-app-dev is a skill published in the GitHub repository kirodotdev/KiroCrew (3,532 stars, last pushed 2d ago), licensed Apache-2.0. It adds 43 tokens to every session and 10,294 once invoked, about $0.0002 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
kodama-verification
Define measurable success criteria and collect targeted test, build, lint, type-check, or smoke-test evidence before claiming work is complete.
kodama-behavior
Classify requests, assess unfamiliar codebases, delegate work safely, and recover from failed attempts. Use for multi-step, ambiguous, or parallelizable work.
kodama-constraints
Enforce non-negotiable safety, scope, security, and quality constraints for implementation and review work.
project-release-check
Validate this example project's release readiness. Use before publishing a release candidate.
aatmf-t10-confidentiality-breach
AATMF T10 — Integrity & Confidentiality Breach. System prompt extraction, training-data extraction, model-weight leakage, private-key recovery.
sidewinder-rattlesnake
Adversary-emulation profile for SideWinder (G0121 / Rattlesnake / T-APT-04 / Razor Tiger), India's suspected state-sponsored cyber-espionage actor.