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/smicolon/ai-kit/rpc-typesafenpx skills add smicolon/ai-kit --skill rpc-typesafegit clone --depth 1 https://github.com/smicolon/ai-kitWrote 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/smicolon/ai-kit/rpc-typesafe)<a href="https://agentmods.dev/skills/smicolon/ai-kit/rpc-typesafe"><img src="https://agentmods.dev/badge/skills/smicolon/ai-kit/rpc-typesafe.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.00044 | $0.02247 |
| Opus 5 | $0.00022 | $0.01123 |
| Sonnet 5 | $0.00009 | $0.00449 |
| Haiku 4.5 | $0.00004 | $0.00225 |
Grade A, and why
rpc-typesafe 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 yesterday.
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 — 389 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Hono RPC Type Safety
Patterns for type-safe client-server communication with Hono.
Server Setup
Export App Type
// src/index.ts
import { Hono } from 'hono'
import { zValidator } from '@hono/zod-validator'
import { z } from 'zod'
const app = new Hono()
// Define routes with validators for full type inference
const routes = app
.get('/users', async (c) => {
return c.json({ users: [{ id: '1', name: 'John' }] })
})
.post('/users',
zValidator('json', z.object({
email: z.string().email(),
name: z.string()
})),
async (c) => {
const data = c.req.valid('json')
return c.json({ id: crypto.randomUUID(), ...data }, 201)
}
)
.get('/users/:id', async (c) => {
const id = c.req.param('id')
return c.json({ id, name: 'John' })
})
export default routes
// CRITICAL: Export type for client
export type AppType = typeof routes
Route Chaining for Type Inference
// Chain routes to preserve types
const userRoutes = new Hono()
.get('/', async (c) => c.json({ users: [] }))
.post('/',
zValidator('json', createUserSchema),
async (c) => c.json({ id: '1' }, 201)
)
const postRoutes = new Hono()
.get('/', async (c) => c.json({ posts: [] }))
.post('/',
zValidator('json', createPostSchema),
async (c) => c.json({ id: '1' }, 201)
)
// Compose and export
const app = new Hono()
.route('/users', userRoutes)
.route('/posts', postRoutes)
export type AppType = typeof app
Client Setup
Basic Client
// client.ts
import { hc } from 'hono/client'
import type { AppType } from './server'
// Create typed client
const client = hc<AppType>('http://localhost:8787')
// Type-safe requests
const res = await client.users.$get()
const data = await res.json() // Typed!
Client Factory
// lib/api-client.ts
import { hc } from 'hono/client'
import type { AppType } from '@/server'
export function createClient(baseUrl: string, token?: string) {
return hc<AppType>(baseUrl, {
headers: token ? { Authorization: `Bearer ${token}` } : undefined
})
}
// Default instance
export const api = createClient(
process.env.NEXT_PUBLIC_API_URL || 'http://localhost:8787'
)
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.
- yesterday First seen · 389 lines · 44 tokens per session scan A 57844450f236
rpc-typesafe is a skill published in the GitHub repository smicolon/ai-kit (6 stars, last pushed yesterday), licensed MIT. It adds 44 tokens to every session and 2,247 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-09-03.
Other skills, from other repositories
add-resend
Add Resend (email) channel integration via Chat SDK.
add-macos-statusbar
Add a macOS menu bar status indicator for NanoClaw. Shows a bolt icon with a green/red dot indicating whether NanoClaw is running, with Start, Stop, and Restart controls. macOS only.
git-commit
Generate well-formatted git commit messages following conventional commit standards.
trend-analysis
基于多维度数据进行分级评估与趋势预测,通过设定差异化增长率计算预测值,并生成对比可视化图表,适用于绩效评估、目标设定等场景。.
excel-basic-statistics-and-routing
Skill "excel-basic-statistics-and-routing" from OpenSenseNova/SenseNova-Skills, covering skill steps, 保存区间提取与汇总结果 and 保存筛选与统计结果.
excel-conditional-filtering-optimization
根据多维数值条件筛选 Excel 数据并导出结果,支持大规模数据的自动性能优化处理。.