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 DemboNauta/skill-doc-generator --skill vercel-msgit clone --depth 1 https://github.com/DemboNauta/skill-doc-generatorWrote 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/dembonauta/skill-doc-generator/vercel-ms)<a href="https://agentmods.dev/skills/dembonauta/skill-doc-generator/vercel-ms"><img src="https://agentmods.dev/badge/skills/dembonauta/skill-doc-generator/vercel-ms.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.1 | $0.00074 | $0.01014 |
| Opus 5 | $0.00037 | $0.00507 |
| Sonnet 5 | $0.00015 | $0.00203 |
| Haiku 4.5 | $0.00007 | $0.00101 |
Grade A, and why
vercel-ms 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 8d 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 — 137 lines — stays where its author put it; the contents beside it link to each section on GitHub.
vercel/ms — Millisecond Conversion Utility
Tiny utility (zero deps) that converts between millisecond numbers and human-readable time strings.
Install
npm install ms
Core API
import { ms, parse, format, parseStrict } from 'ms';
ms(string) → number
Parse a time string into milliseconds:
ms('2 days') // 172800000
ms('1d') // 86400000
ms('10h') // 36000000
ms('2.5 hrs') // 9000000
ms('1m') // 60000
ms('5s') // 5000
ms('1y') // 31557600000
ms('-3 days') // -259200000
ms('100') // 100 (no unit → treated as ms)
ms(number) → string
Format milliseconds into a short string:
ms(60000) // "1m"
ms(2 * 60000) // "2m"
ms(-3 * 60000) // "-3m"
ms(ms('10 hours')) // "10h"
ms(number, { long: true }) → string
Format milliseconds into a verbose string:
ms(60000, { long: true }) // "1 minute"
ms(2 * 60000, { long: true }) // "2 minutes"
ms(ms('10 hours'), { long: true }) // "10 hours"
parse(str) / format(ms, options?)
Import separately when you only need one direction:
import { parse, format } from 'ms';
parse('1h') // 3600000
format(2000) // "2s"
format(2000, { long: true }) // "2 seconds"
parseStrict(value: StringValue)
Like parse, but enforces TypeScript's StringValue type — rejects arbitrary strings at compile time:
import { parseStrict } from 'ms';
parseStrict('1h') // 3600000
function foo(s: string) {
return parseStrict(s) // tsc error — s is not StringValue
}
Supported Units
| Unit | Accepted strings |
|---|---|
| Years | years year yrs yr y |
| Months | months month mo |
| Weeks | weeks week w |
| Days | days day d |
| Hours | hours hour hrs hr h |
| Minutes | minutes minute mins min m |
| Seconds | seconds second secs sec s |
| Milliseconds | milliseconds millisecond msecs msec ms |
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.
- 8d ago First seen · 137 lines · 74 tokens per session scan A 10f895881194
vercel-ms is a skill published in the GitHub repository DemboNauta/skill-doc-generator (9 stars, last pushed 4mo ago), licensed MIT. It adds 74 tokens to every session and 1,014 once invoked, about $0.0004 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-31.
Other skills, from other repositories
cel-lib-doc-generator
Generates and updates standardized README.md documentation for CEL extension libraries in C++, Go, and Java by extracting declarations, functions, macros, types, signatures, and examples from source code.
cel-debugging
Diagnosing and resolving Common Expression Language (CEL) compilation and evaluation errors.
cel-authoring
Authoring, configuring, and testing Common Expression Language (CEL) expressions, policies, rules, and environment JSON configurations.
cel-testing
Skill for testing Google Common Expression Language (CEL) expressions. Use to test or validate an existing CEL rule.
ai-search-browser-use
Use this skill when a task needs AI-assisted web research via a real browser. Uses Chrome CDP (Chrome DevTools Protocol) as the primary automation method, with browser-use as fallback. Supports Gemini + Qwen queries with consolidated answers and citations.
dialectical-reasoning
A cognitive operating system based on Dialectical Materialism (Materialism, Universal Connection, Eternal Development, Unity of Opposites) to force objective, non-linear analysis of complex engineering and logic problems.