Unovis is a modular data-visualization framework for building charts, maps, network graphs, and other visual components in JavaScript or TypeScript applications. It supports React, Angular, Svelte, Vue, Solid, and vanilla projects, with packages that can be imported individually.
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 f5/unovis --skill commitgit clone --depth 1 https://github.com/f5/unovisWrote 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/f5/unovis/commit)<a href="https://agentmods.dev/skills/f5/unovis/commit"><img src="https://agentmods.dev/badge/skills/f5/unovis/commit/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/f5/unovis/commit"><img src="https://agentmods.dev/badge/skills/f5/unovis/commit.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00090 | $0.01669 |
| Opus 5.5 | $0.00036 | $0.00668 |
| Sonnet 5.5 | $0.00018 | $0.00334 |
| Haiku 4.5 | $0.00009 | $0.00167 |
Grade A, and why
commit 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 1mo 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 — 156 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Committing in Unovis
Unovis enforces commit messages with commitlint (commitlint.config.ts) via a Husky
commit-msg hook. The format is custom — Conventional Commits (feat:, fix:, chore:) fail.
Format
Type | Scope | Subscope | Subscope2: Sentence-case subject
Scope and Subscopes are optional depending on type. Parser regex (from the config):
^\s*(\w*)(?:\s\|\s(\w*))?(?:\s\|\s([\w\s|]+))?: (.*)$
→ capture groups [type, scope, subscopes, subject]. Separators are | (space-pipe-space).
Rules (what the hook checks)
type(required, error) — must be one of exactly:React,Angular,Vue,Svelte,Solid,Website,Dev,Shared,Core,Component,Container,Release,CI,Misc,MCP,SSR.subject(error) — sentence case (first word capitalized, the rest lowercase unless a proper noun orcode), must not be empty, no trailing period. Backtick code/prop names:`brushHeightExtend`.scope(warning, not blocking) —- May be empty only for
ReleaseandCI. - For type
Component, the scope should be the component's name. Use the human-readable display name as it appears in the gallery/docs; it may be multiple words (e.g.Radial Bar,Time Series). Multi-word scopes produce a non-blockingvalidate-scopewarning — that's fine and matches existing history. (A single-word registered name likeCrosshairproduces zero warnings.) - Subscopes are PascalCase.
- May be empty only for
Because validate-scope is a warning, commits with a readable multi-word component scope still
succeed. Only type and subject can actually block a commit.
Picking the type and scope
Choose the type from where the change lives:
| You changed… | Type | Typical scope / subscope |
|---|---|---|
packages/ts/src/components/<x>/ logic |
Component |
the component name (Crosshair, Radial Bar) |
packages/ts/src/core/** or utils/** |
Core |
the area (Utils, `Utils |
packages/ts/src/containers/** |
Container |
the container name |
packages/dev/** |
Dev |
Examples, `Examples |
packages/website/** |
Website |
`Docs |
packages/shared/** (examples, registry, parser) |
Shared |
Gallery, Examples, TS Parser |
| Regenerated wrappers across all frameworks | Misc |
Framework integrations (subject) |
| One framework wrapper's own (non-generated) code | React/Angular/Vue/Svelte/Solid |
Wrappers, Containers, a component name |
| Version bump | Release |
— (no scope) |
.github/workflows/** |
CI |
— (scope optional) |
| Cross-cutting / none of the above | Misc |
optional |
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.
- 1mo ago Changed 5e559c4255e9
- 1mo ago First seen · 156 lines · 90 tokens per session scan A c5c922810cd9
commit is a skill published in the GitHub repository f5/unovis (2,856 stars, last pushed 2d ago), licensed Apache-2.0. It adds 90 tokens to every session and 1,669 once invoked, about $0.0004 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-09-03.
Other skills, from other repositories
bklit-ui
Install, compose, theme, and animate Bklit UI charts (the @bklit shadcn registry) in a React / Next.js app. Use when the user wants a chart, graph, or data visualization: line, area, bar, live/streaming line, composed, scatter, candlestick/OHLC, pie, ring/donut, radar, gauge, heatmap, funnel, sankey, sunburst, or…
git-workflow
Guided git workflows: prepare PRs, clean up branches, resolve merge conflicts, handle monorepo tags, squash-and-merge patterns. Use when asked to prepare a PR, clean branches, resolve conflicts, or tag a release.
changelog
Turn a release into a short changelog video with remocn: collect what changed from git tags, commits or merged pull requests, write it as a few human-readable lines, and build the video with the changelog archetype. Use when the user wants a release, version or "what's new" video for a repository.
stacking-prs
Create and manage GitHub native Stacked PRs in this repo with the gh stack CLI. Use when asked to stack PRs, split a large change into a stack, add a layer to a stack, restack or rebase a stack, adopt existing branches or PRs into a stack, check out someone else's stack, or land a stack. Covers creating and submitting…
common-git-collaboration
Enforce version control best practices for commits, branching, pull requests, and repository security. Use when writing commits, creating branches, merging, or opening pull requests.
globestudio
Creates, edits and embeds dotted world maps and animated 3D globes with Globestudio (globestudio.app), a free open source studio with 21 looks. Use when the user wants a dotted map, a dotted or 3D globe, a spinning earth or a stylized world map for a website hero, background, slide, social post or video; when they…