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/jenreh/appkit/appkit-mantine-referencenpx skills add jenreh/appkit --skill appkit-mantine-referencegit clone --depth 1 https://github.com/jenreh/appkitWhat 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.00136 | $0.05670 |
| Opus 5 | $0.00068 | $0.02835 |
| Sonnet 5 | $0.00027 | $0.01134 |
| Haiku 4.5 | $0.00014 | $0.00567 |
Grade A, and why
appkit-mantine-reference 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 3d 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 — 427 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Using appkit_mantine Components
Quick reference
Import: import appkit_mantine as mn
All components use lowercase factory functions: mn.button(), mn.text_input(), mn.modal()
Inheritance hierarchy
MantineComponentBase → library, CSS import, MantineProvider injection
↓
MantineLayoutComponentBase → w, h, m*, p*, bg, c, display, pos, flex, etc.
↓
MantineInputComponentBase → label, description, error, value, on_change, sections, etc.
↓
Specific components → only component-unique props
MantineOverlayComponentBaseextendsMantineLayoutComponentBase→ Modal, Drawer shared props
Creating components
Use factory functions, not class constructors:
import appkit_mantine as mn
mn.text_input(label="Name", value=State.name, on_change=State.set_name)
mn.button("Submit", on_click=State.submit, variant="filled")
mn.stack(mn.text("Hello"), mn.text("World"), gap="md")
Event handler patterns
Default on_change uses rx.event.input_event (event.target.value). Some components override this:
| Component | on_change receives | Pattern |
|---|---|---|
| TextInput, PasswordInput, Textarea | event object | on_change=State.set_value (standard) |
| NumberInput | raw number or "" |
Handler must accept float | str |
| Select, SegmentedControl | string value or None |
Direct value, null→"" |
| MultiSelect, TagsInput, CheckboxGroup | list[str] |
Direct array |
| RadioGroup | str |
Direct selected value |
| DateInput | string or None |
Null converted to "" |
| Checkbox, Switch | bool (checked) |
event.target.checked extraction |
| Slider | int | float |
Direct value |
| RangeSlider | list[int | float] |
Direct list [min, max] |
| Tabs, Pagination | str or int |
Direct value |
| Menu | bool (opened state) |
via on_change |
NumberInput handler example
def set_price(self, val: float | str) -> None:
if val == "":
self.price = 0.0
return
with contextlib.suppress(ValueError):
self.price = float(val)
What ships with it
19 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.
- references/charts.md 12 KB
- references/data-display.md 13 KB
- references/extensions.md 4.0 KB
- references/feedback.md 3.6 KB
- references/inputs-datetime.md 5.9 KB
- references/inputs-selection.md 9.4 KB
- references/inputs-specialized.md 6.4 KB
- references/inputs-text.md 6.2 KB
- references/inputs-toggle.md 5.3 KB
- references/layout.md 12 KB
- references/maps.md 9.5 KB
- references/menu.md 4.9 KB
- references/navigation.md 7.8 KB
- references/overlays.md 7.7 KB
- references/schedule.md 7.5 KB
- references/table.md 3.7 KB
- references/theme.md 10 KB
- references/tree.md 2.4 KB
- references/typography.md 4.4 KB
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.
- 3d ago First seen · 427 lines · 136 tokens per session scan A 6bf1e9d16bd5
appkit-mantine-reference is a skill published in the GitHub repository jenreh/appkit (4 stars, last pushed 7d ago), licensed MIT. It adds 136 tokens to every session and 5,670 once invoked, about $0.0007 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-08-31.
Other skills, from other repositories
next-partial-prefetching-adoption
Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the partialPrefetching flag, opt routes in with export const prefetch = 'partial', audit Link prefetch={true} behavior, preserve existing prefetched UI with…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…
sandbox-bench
Benchmark React or Next.js changes on Vercel Sandbox VMs with paired A/B statistics: react PR/commit vs base, or Next.js PR/commit vs base, measured end-to-end through the bench/render-pipeline app (rps, latency, p95; TTFB, RSS and document/Flight bytes when the Next side captures them) and, for React changes, through…
v8-jit
V8 JIT optimization patterns for writing high-performance JavaScript in Next.js server internals. Use when writing or reviewing hot-path code in app-render, stream-utils, routing, caching, or any per-request code path. Covers hidden classes / shapes, monomorphic call sites, inline caches, megamorphic deopt, closure…
gh-stack
Manages stacked PRs and splits multi-part work into reviewable branches with gh-stack. Use for stack creation, viewing, edits, push, submit, sync, rebase, merge, or checkout; when asked to split or isolate work for review; whenever a user mentions a stack, branch layers, dependent PRs, or gh stack; or when a stack is…
next-rspack
Maintain @next/rspack-core and @next/rspack-binding packages. Use when editing rspack/package.json, rspack/crates/binding/Cargo.toml, rspack/rust-toolchain.toml, or packages/next-rspack/package.json. Covers upgrading @rspack/core npm version, rspack crate versions, Rust toolchain version, building and linking for…