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/gotempsh/temps/temps-pluginnpx skills add gotempsh/temps --skill temps-plugingit clone --depth 1 https://github.com/gotempsh/tempsWhat 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.00120 | $0.04729 |
| Opus 5 | $0.00060 | $0.02364 |
| Sonnet 5 | $0.00024 | $0.00946 |
| Haiku 4.5 | $0.00012 | $0.00473 |
Grade A, and why
temps-plugin 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 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.
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 — 557 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Temps Plugin Development
Build external plugins as standalone Rust binaries that Temps discovers, spawns, and proxies to.
Architecture Overview
Temps (main process)
├── Scans ~/.temps/plugins/ for binaries
├── Spawns each binary with --socket-path, --auth-secret, --data-dir
├── Reads JSON manifest from stdout (handshake phase 1)
├── Reads ready signal from stdout (handshake phase 2)
├── Opens WebSocket to plugin's /_temps/channel (bidirectional data access)
├── Proxies /api/x/{plugin_name}/* → Unix socket
├── Serves plugin UI at /api/x/{plugin_name}/ui/*
└── Delivers platform events over the WebSocket channel
Plugins are self-contained binaries. They own their own HTTP routes (axum Router), optional React UI (embedded via include_dir), and SQLite database (via sea-orm in their data_dir).
Critical Rules
NEVER
- Register a
/healthroute — the SDK runtime already provides one. Axum panics onRouter::mergewith duplicate routes. - Use
rt.block_on()directly insiderouter()— it deadlocks. Usetokio::task::block_in_place(|| Handle::current().block_on(...))instead. - Use
#[tokio::main]— the SDK creates its own runtime viarun_plugin(). - Access the Temps database directly — use
ctx.temps()for platform data queries over the WebSocket channel. - Use
sea-ormwith the main Temps database — plugins get their own SQLite indata_dir. - Return
anyhow::Result— use typed error enums withthiserror. - Use
.unwrap()or.expect()in production paths.
ALWAYS
- Use
temps_plugin_sdk::main!(YourPlugin)as the entry point. - Implement
ExternalPlugintrait withmanifest()androuter()at minimum. - Use
block_in_placefor any async initialization insiderouter(). - Embed the UI with
include_dir!("$CARGO_MANIFEST_DIR/web/dist")and serve via own routes. - Keep tests in the same file as the code they test (
#[cfg(test)] mod tests). - Run
cargo check -p your-pluginafter every modification. - Run
cargo test -p your-pluginto verify tests pass.
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 · 557 lines · 120 tokens per session scan A 2c4a768685ec
temps-plugin is a skill published in the GitHub repository gotempsh/temps (700 stars, last pushed 2d ago), licensed Apache-2.0. It adds 120 tokens to every session and 4,729 once invoked, about $0.0006 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
compiler-port
Port a compiler pass from TypeScript to Rust. Gathers context, plans the port, implements in a subagent with test-fix loop, then reviews.
changelog-entry
Add a new entry to CHANGELOG.yml under the current unreleased version (or create the version block if needed), then regenerate documentation. Use when the user says things like "add a changelog entry", "log this fix in the changelog", or "/changelog-entry".
rust-pro
Master modern Rust (2024 edition) with async patterns, advanced type system features, and production-ready systems programming. Expert in the current Rust ecosystem including Tokio, axum, and modern crates. Use PROACTIVELY for Rust development, performance optimization, or systems programming.
project-snmp-profiles-authoring
Use when editing Netdata SNMP profile YAMLs, topology SNMP profiles, ddsnmp profile parsing, or profile-format documentation. Requires checking source MIB field accessibility, especially MAX-ACCESS not-accessible INDEX objects, before adding or changing profile symbols.
evolve-create
Create a reusable gene from a novel fix pattern. Only invoke manually.
skill-vetter-runtime
Review ClawHub or local Skill packages before installation, classify risk, and return a structured security report.