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/mits-pl/wove/create-viewnpx skills add mits-pl/wove --skill create-viewgit clone --depth 1 https://github.com/mits-pl/woveWrote 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/mits-pl/wove/create-view)<a href="https://agentmods.dev/skills/mits-pl/wove/create-view"><img src="https://agentmods.dev/badge/skills/mits-pl/wove/create-view.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.00048 | $0.03460 |
| Opus 5 | $0.00024 | $0.01730 |
| Sonnet 5 | $0.00010 | $0.00692 |
| Haiku 4.5 | $0.00005 | $0.00346 |
Grade A, and why
create-view 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 — 519 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Creating a New View in Wave Terminal
This guide explains how to implement a new view type in Wave Terminal. Views are the core content components displayed within blocks in the terminal interface.
Architecture Overview
Wave Terminal uses a Model-View architecture where:
- ViewModel - Contains all state, logic, and UI configuration as Jotai atoms
- ViewComponent - Pure React component that renders the UI using the model
- BlockFrame - Wraps views with a header, connection management, and standard controls
The separation between model and component ensures:
- Models can update state without React hooks
- Components remain pure and testable
- State is centralized in Jotai atoms for easy access
ViewModel Interface
Every view must implement the ViewModel interface defined in frontend/types/custom.d.ts:
interface ViewModel {
// Required: The type identifier for this view (e.g., "term", "web", "preview")
viewType: string;
// Required: The React component that renders this view
viewComponent: ViewComponent<ViewModel>;
// Optional: Icon shown in block header (FontAwesome icon name or IconButtonDecl)
viewIcon?: jotai.Atom<string | IconButtonDecl>;
// Optional: Display name shown in block header (e.g., "Terminal", "Web", "Preview")
viewName?: jotai.Atom<string>;
// Optional: Additional header elements (text, buttons, inputs) shown after the name
viewText?: jotai.Atom<string | HeaderElem[]>;
// Optional: Icon button shown before the view name in header
preIconButton?: jotai.Atom<IconButtonDecl>;
// Optional: Icon buttons shown at the end of the header (before settings/close)
endIconButtons?: jotai.Atom<IconButtonDecl[]>;
// Optional: Custom background styling for the block
blockBg?: jotai.Atom<MetaType>;
// Optional: If true, completely hides the block header
noHeader?: jotai.Atom<boolean>;
// Optional: If true, shows connection picker in header for remote connections
manageConnection?: jotai.Atom<boolean>;
// Optional: If true, filters out 'nowsh' connections from connection picker
filterOutNowsh?: jotai.Atom<boolean>;
// Optional: If true, removes default padding from content area
noPadding?: jotai.Atom<boolean>;
// Optional: Atoms for managing in-block search functionality
searchAtoms?: SearchAtoms;
// Optional: Returns whether this is a basic terminal (for multi-input feature)
isBasicTerm?: (getFn: jotai.Getter) => boolean;
// Optional: Returns context menu items for the settings dropdown
getSettingsMenuItems?: () => ContextMenuItem[];
// Optional: Focuses the view when called, returns true if successful
giveFocus?: () => boolean;
// Optional: Handles keyboard events, returns true if handled
keyDownHandler?: (e: WaveKeyboardEvent) => boolean;
// Optional: Cleanup when block is closed
dispose?: () => void;
}
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 · 519 lines · 48 tokens per session scan A 12bcff6371b3
create-view is a skill published in the GitHub repository mits-pl/wove (42 stars, last pushed 2mo ago), licensed Apache-2.0. It adds 48 tokens to every session and 3,460 once invoked, about $0.0002 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-30.
Other skills, from other repositories
build-teaql-app
Build or change a TeaQL application in Java, Rust, Go, Swift, Python, C#/.NET, or TypeScript, including Kotlin/JVM applications that consume Java-generated libraries. Mandatory order: first draft and save a complete KSML model, then verify the client and evaluate that saved model, repair it through repeated evaluation…
verify-pr
This skill should be used to run a sandboxed deep verification of a qwen-code PR — "/verify-pr ", "深度验证这个 PR", A/B load-bearing proof against the base build, mock-free harnesses with wire oracles, and targeted gates — producing tmp/pr -verify- /report.md plus a machine-readable verdict. Designed for the token-free CI…
stuck
Diagnose frozen, stuck, or slow Qwen Code sessions on this machine. Scans for problematic processes, high CPU/memory usage, hung subprocesses, and debug logs. Use /stuck or /stuck to focus on a specific process.
structured-debugging
Hypothesis-driven debugging methodology for hard bugs. Use this skill whenever you're investigating non-trivial bugs, unexpected behavior, flaky tests, or tracing issues through complex systems. Activate proactively when debugging requires more than a quick glance — especially when the first attempt at a fix didn't…
desktop-brand-builder
Generate a branded Qwen Code desktop package from the Tauri desktop shell using a minimal brandId and logo. Use when the user wants a custom, white-label, or rebranded desktop client, installer, DMG/EXE/AppImage/deb, or one-click brand build on top of packages/desktop-shell.
repo-hygiene
Use when the scheduled repo-hygiene workflow runs from GitHub Actions (or an operator dry-run) to scan the repository for small, certain docs/test/code hygiene issues and fix them as one batched branch.