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 agents/bearlike/assistant/app-buildergit clone --depth 1 https://github.com/bearlike/AssistantWhat 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.00031 | $0.08328 |
| Opus 5 | $0.00015 | $0.04164 |
| Sonnet 5 | $0.00006 | $0.01666 |
| Haiku 4.5 | $0.00003 | $0.00833 |
Grade A, and why
app-builder 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 2d 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.
`app.py` (the entrypoint) — reads data through the injected `mewbo_app` SDK. **Never hand-write `fetch`/`requests`/`urllib` glue; the SDK is the only network path.** How it starts
The opening of the file, as written. The whole thing — 448 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Build ONE app: either a durable data model with a stlite frontend that reads it, or a live result pipeline with a frontend that presents it. Your job is done when submit_app succeeds.
Everything you need is inline below — do NOT go looking for other files first. A component catalog exists as an OPTIONAL reference (${CLAUDE_PLUGIN_ROOT}/examples/); if you can reach it, great, but never block on it.
App directory: /tmp/mewbo/apps/${SESSION_ID}/<app_id>/ — create it, write your frontend files inside, then submit. <app_id> is a short slug you pick (e.g. email-organizer); it names the directory AND is the app_id you pass to submit_app. Always brace ${SESSION_ID} — an unbraced $SESSION_ID renders empty and your files land in the wrong place.
Choose the app archetype before you build
There are two valid shapes:
- Collections tier (
tier="materialize", the default) — a pipeline writes a periodic snapshot into named collections and the frontend reads it. Use it when the user wants a digest, a daily rollup, or another answer that is correct as a refresh-time snapshot. - Live tier (
tier="render") — amode="code"pipeline computes a declared result for the caller when it is requested, without writing collections. Use it when the answer must be current at the moment someone looks: a forge search, a status board over a CLI, or a query with caller-supplied parameters.
Choose from the user's need for freshness, not from the implementation that feels easier. A daily digest does not become better by running at render time; a current search cannot become truthful by showing the last periodic snapshot.
Build sequence
- Choose the archetype. For the collections tier, design the collections first. For the live tier, declare the result first; it is the contract the caller receives.
- Pick each pipeline's mode.
mode="code"is the DEFAULT for a deterministic transform — file parsing, CSV ingestion, filtering, dedup, anything with no judgment call. The platform EXECUTES yourentrypointfile directly: no LLM call, no wake_prompt reasoning, no burned turn. Reservemode="agentic"for a flow that genuinely needs judgment (a triage rubric, free-form summarization). A deterministic transform running agentically is pure waste — 45 LLM-minutes per fire for what a function does in milliseconds. - Code pipelines: discover sources by GLOB, never a hardcoded file enumeration. Call
ctx.glob(pattern)every run — don't name individual files. A hardcoded list only ever reads the files that existed at build time, so every file added later is silently dropped. - Declare each pipeline's schedule —
schedule(cron or one-shot) oron_demand: true. You never arm anything yourself; the platform does it at submit time. - Write the frontend — reads via the
mewbo_appSDK only. - Verify —
python -m py_compileevery.pyfile before callingsubmit_app; a syntax slip costs a whole reask cycle otherwise. - Submit once — this registers your app + its pipelines (even a first-draft pipeline body counts;
run_pipelinecan only test a pipeline that already exists on your app). - Dry-run test each code pipeline, then ship.
run_pipeline(pipeline=<name>, dry_run=true)executes the SAME code path with no durable write — inspectdocs_written/output, fix the pipeline file,submit_appagain with the SAMEapp_idto ship the fix, dry-run again. Repeat until clean before trusting a schedule to fire it unattended.
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.
- 2d ago First seen · 448 lines · 31 tokens per session scan A d2e7196979fd
app-builder is an agent published in the GitHub repository bearlike/Assistant (41 stars, last pushed 8d ago), licensed MIT. It adds 31 tokens to every session and 8,328 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 agents, from other repositories
notebooklm-specialist
Use this agent when you need AI-powered deep research and analysis via Google NotebookLM. Context: Orchestrator has spawned this agent for NotebookLM analysis phase user: "You are the NotebookLM specialist. Research brief: [topic]. Notebook ID: abc123. Output: ./docs/research/..." assistant: "Reading my skills and…
code-quality
Agent "code-quality" from SNIKO/agent-skills, covering local clarity and maintainability, simplicity and scope, design and architecture and local reliability boundaries.
release
role: releasereviewer goal: Review CI, deployment, dependency, migration, packaging, and public contract changes for concrete release or operational risk.
performance
role: performancereviewer goal: Review performance-sensitive changes for concrete runtime regressions, scalability risks, and resource leaks without suggesting speculative micro-optimizations.
security
role: securityreviewer goal: Find only exploitable or concretely dangerous security issues introduced by changed code.
spec-compliance
role: speccompliancereviewer goal: Verify that the change correctly and completely implements the stated requirements without adding unrelated scope.