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 luisfurquim/wings --skill wings-buildgit clone --depth 1 https://github.com/luisfurquim/wingsWrote 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/luisfurquim/wings/wings-build)<a href="https://agentmods.dev/skills/luisfurquim/wings/wings-build"><img src="https://agentmods.dev/badge/skills/luisfurquim/wings/wings-build.svg" alt="Measured on agentmods" 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.00092 | $0.01050 |
| Opus 5 | $0.00046 | $0.00525 |
| Sonnet 5 | $0.00018 | $0.00210 |
| Haiku 4.5 | $0.00009 | $0.00105 |
Grade A, and why
wings-build 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 7d 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 — 114 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Building and serving a WINGS app
WINGS components compile to a single WebAssembly binary loaded by a tiny JS
shim. A WASM page cannot be opened from file:// — it must be served over
HTTP with the correct MIME type.
Project layout
myapp/
go.mod # module myapp
main.go # package main, wings.Main(), blank-imports modules
mod/<name>/<name>.{go,html,css} # your components (see wings-component)
static/ # web root: index.html + the 3 runtime files
index.html
prana_helper.js
wasm_exec.js
wings.wasm # build output
Set it up:
go mod init myapp
go get github.com/luisfurquim/wings
main.go — one per app; every component is registered by blank-importing
its package:
//go:build js && wasm
package main
import (
"github.com/luisfurquim/wings"
_ "myapp/mod/hello" // each module
_ "github.com/luisfurquim/wings/wi18n" // optional: runtime i18n (see wings-i18n)
)
func main() { wings.Main() }
The two runtime helper files
Copy both into your web root next to the wasm:
W=$(go list -m -f '{{.Dir}}' github.com/luisfurquim/wings)
cp "$W/prana_helper.js" static/
# Go 1.24+: lib/wasm/ ; older: misc/wasm/
cp "$(go env GOROOT)/lib/wasm/wasm_exec.js" static/ 2>/dev/null \
|| cp "$(go env GOROOT)/misc/wasm/wasm_exec.js" static/
static/index.html loads them and streams the wasm:
<!DOCTYPE html>
<html>
<head>
<script src="prana_helper.js"></script>
<script src="wasm_exec.js"></script>
<script>
const go = new Go();
WebAssembly.instantiateStreaming(fetch("wings.wasm"), go.importObject)
.then(r => go.run(r.instance)).catch(console.error);
</script>
</head>
<body>
<hello-world></hello-world> <!-- your custom element tag -->
</body>
</html>
Build and serve
GOOS=js GOARCH=wasm go build -o static/wings.wasm .
Then serve static/ over HTTP with .wasm as application/wasm (any static
server that sets that MIME; a tiny Go server works — see the README Quick Start).
Opening index.html from disk will not work.
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.
- 7d ago First seen · 114 lines · 92 tokens per session scan A e70e6e239741
wings-build is a skill published in the GitHub repository luisfurquim/wings (29 stars, last pushed 1mo ago), licensed MPL-2.0. It adds 92 tokens to every session and 1,050 once invoked, about $0.0005 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
gentleman-bubbletea
Bubbletea TUI patterns for Gentleman.Dots installer. Trigger: When editing Go files in installer/internal/tui/, working on TUI screens, or adding new UI features.
building-glamorous-tuis
Build terminal UIs with Charmbracelet (Bubble Tea, Lip Gloss, Gum). Use when: Go TUI, shell prompts/spinners, "make CLI prettier", adaptive layouts, async rendering, focus state machines, sparklines, heatmaps, kanban boards, SSH apps.
go-tui
Build, review, or debug Go terminal UIs with the Charm stack — Bubble Tea, Lip Gloss, Bubbles, ntcharts. Use for any Go TUI, dashboard, or full-screen CLI, including colour-accurate screenshots.
templui
Apply templUI patterns when building Go/Templ web applications.
templ
Write and review templ templates: syntax, components, attributes, styling, JavaScript data passing, escaping and sanitization, code generation, and testing.
bubbletea
Build interactive Go TUIs with Bubbletea, Elm architecture, Lipgloss, layouts, and keyboard/mouse handling. Excludes plain-text CLIs, web/desktop GUIs, and other TUI frameworks.