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 ashish7802/awesome-api-skills --skill jwtgit clone --depth 1 https://github.com/ashish7802/awesome-api-skillsWrote 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/ashish7802/awesome-api-skills/jwt)<a href="https://agentmods.dev/skills/ashish7802/awesome-api-skills/jwt"><img src="https://agentmods.dev/badge/skills/ashish7802/awesome-api-skills/jwt/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ashish7802/awesome-api-skills/jwt"><img src="https://agentmods.dev/badge/skills/ashish7802/awesome-api-skills/jwt.svg" alt="Reviewed on agentmods" width="80" 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.00000 | $0.00641 |
| Opus 5.5 | $0.00000 | $0.00256 |
| Sonnet 5.5 | $0.00000 | $0.00128 |
| Haiku 4.5 | $0.00000 | $0.00064 |
Grade A, and why
jwt 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 1mo 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 — 69 lines — stays where its author put it; the contents beside it link to each section on GitHub.
JSON Web Tokens Skill
Compact, URL-safe means of representing claims to be transferred between two parties.
Ecosystem Graph Preview
graph LR
jwt["jwt"]:::core
classDef core fill:#f9f,stroke:#333,stroke-width:4px;
jwt -- "works well with" --> oauth2
jwt -- "integrates with" --> redis
oauth2 -- "works well with" --> jwt
openid-connect -- "integrates with" --> jwt
Recommended Next Skills
- oauth2 (Score: 0.92) Why: Direct relationship, Both are Authentication, Shared ecosystem (security), Can deploy to any, Similar network profile
- openid-connect (Score: 0.92) Why: Direct relationship, Both are Authentication, Shared ecosystem (security), Can deploy to any, Similar network profile
- redis (Score: 0.5) Why: Direct relationship
Quick Start
JWTs allow you to cryptographically sign a JSON payload (claims). The backend can verify this signature locally without needing to query a database for every API request.
npm install jsonwebtoken
Production Patterns
The Invalidation Problem
Because JWTs are stateless and verified locally, you cannot instantly revoke a stolen JWT before it expires. Keep expiration times (exp) extremely short (e.g., 15 minutes) and issue long-lived Refresh Tokens that are checked against the database.
Architecture & Scaling
Header, Payload, Signature
A JWT is simply Base64Url encoded. The payload is NOT encrypted. Anyone who intercepts the token can read the data. Do not store sensitive information (like SSNs or passwords) inside the JWT payload.
Error Recovery
Always wrap jwt.verify() in a try/catch block. It will throw specific errors for TokenExpiredError and JsonWebTokenError (invalid signature), which should map to a 401 HTTP response.
Security Notes
Never accept tokens where the algorithm (alg) is set to none. Attackers use this to bypass signature verification. Always explicitly define the allowed algorithms in your verification function.
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 1mo ago First seen · 69 lines · 0 tokens per session scan A 5cc02ec2a42b
jwt is a skill published in the GitHub repository ashish7802/awesome-api-skills (13 stars, last pushed 3d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 641 tokens. 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
api-testing-patterns
Comprehensive API testing patterns including contract testing, REST/GraphQL testing, and integration testing. Use when testing APIs or designing API test strategies.
contract-testing
Consumer-driven contract testing for microservices using Pact, schema validation, API versioning, and backward compatibility testing. Use when testing API contracts or coordinating distributed teams.
iii-observe
Use when observing iii functions with iii.observe, writing filters, reacting to engine events, writing observable functions with owner delivery (onObserverAdded, obs.emit, obs.call), tuning local dispatch, or migrating from the deprecated registerTrigger / registerTriggerType across TypeScript, browser, Python, Rust…
presentation
Turn a tech-spec directory into an interactive, marketing-grade web presentation — built so engineers understand the design, the reader is convinced of the why, and the result is shareable in public. Use when someone wants a spec turned into a deck.
iii-core-primitives
Use when registering iii functions, binding triggers, observing functions, selecting sync/void/enqueue invocation, creating workers, inspecting the live worker registry, installing registry workers, authoring event sources, moving channel data, or adapting external HTTP functions across TypeScript, Python, and Rust.
iii-sdk-reference
Use when working with iii SDK APIs across Node.js, browser, Python, Rust, or Go: package installation, worker initialization, function/trigger registration, observers, invocation, local dispatch, channels, logging, OpenTelemetry, and language-specific caveats.