Official agent skill

Jetson LLM Benchmark

by NVIDIA in NVIDIA/skills

Benchmark Jetson LLM/VLM serving performance across vLLM, llama.cpp, and Ollama with structured JSON output.

OfficialApache-2.0Auto-check passedAI & LLM Engineering

Install Jetson LLM Benchmark

skills CLI
$ npx skills add NVIDIA/skills --skill jetson-llm-benchmark -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install NVIDIA/skills jetson-llm-benchmark --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/NVIDIA/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/jetson-llm-benchmark .claude/skills/jetson-llm-benchmark && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
jetson-llm-benchmark
GitHub stars
3.5k
Used in
1 other repo
Token cost
~3.1k tokens
SKILL.md length
1,323 words
Files
8 (incl. scripts)
Skills in repo
380
Repo updated
First seen
Licence
Apache-2.0

At a glance

Benchmark Jetson LLM/VLM serving performance across vLLM, llama.cpp, and Ollama with structured JSON output.

  • Tasks that involve LLM inference and serving
  • SKILL.md covers Purpose, Prerequisites, Available Scripts and Instructions, plus 9 more sections
  • Runs Shell scripts from its folder; calls bash and ollama
  • Tasks that involve GPU and accelerator computing

What it does

Jetson LLM Benchmark is an agent skill from NVIDIA/skills, published by the product's own GitHub organization. Benchmark Jetson LLM/VLM serving performance across vLLM, llama.cpp, and Ollama with structured JSON output.

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files, including scripts (for example `BENCHMARK.md`, `evals/evals.json` and `scripts/bench_llama_cpp.sh`).

It sits in AI & LLM Engineering, covering LLM inference and serving and GPU and accelerator computing. It works with NVIDIA AI Platform, llama.cpp, vLLM and Ollama. The repository describes itself as: Agent Skills for NVIDIA products — install into Claude Code, Codex, and other coding agents to run Physical AI, robotics, simulation, CUDA, and RAG workflows end to end. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve LLM inference and serving
  • Tasks that involve GPU and accelerator computing

Example prompts

  • “/jetson-llm-benchmark”

Requirements

  • A Bash shell
  • Docker

What it can do on your machine

Read from SKILL.md and the folder at commit 0e0d506. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 3 files in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • bash
    • ollama

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • jetson-ai-lab.com
    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Jetson LLM Benchmark loads about 3.1k tokens when it runs. Until then it costs about 32 tokens; SKILL.md has 1,323 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~32
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from NVIDIA/skills at commit 0e0d506, republished under its Apache-2.0 licence (© NVIDIA). 1,323 words, ~3,052 tokens.

Download SKILL.mdSave it as .claude/skills/jetson-llm-benchmark/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.
name
jetson-llm-benchmark
description
Benchmark Jetson LLM/VLM serving performance across vLLM, llama.cpp, and Ollama with structured JSON output.
version
0.0.2
license
Apache-2.0
metadata.author
Jetson Team
metadata.tags
jetson, llm, benchmark
metadata.languages
bash
metadata.data-classification
public

Jetson LLM Benchmark

Reproducible Jetson benchmarks with structured JSON output so an agent can compare runs. Encodes the workflow from the Jetson AI Lab GenAI Benchmarking tutorial.

Purpose

Measure deployed LLM latency and throughput on a Jetson target using the correct runtime-specific benchmark wrapper. Use the JSON output to compare models, runtime flags, power modes, and before/after tuning changes.

Prerequisites

  • Run on the Jetson device that hosts the model runtime.
  • For vLLM, start the OpenAI-compatible vLLM server first and know the served model ID.
  • For Ollama, ensure the Ollama daemon is reachable at --endpoint and the named model is already pulled.
  • For llama.cpp/GGUF, provide a readable .gguf model path on the host.
  • Put the device in the intended power mode before measuring. MAXN is preferred for comparable performance numbers.

Available Scripts

ScriptPurposeArguments
scripts/bench_vllm.shRuns vllm bench serve against a running OpenAI-compatible vLLM server.--model, --endpoint, --concurrency, --input-len, --output-len, --num-prompts, --no-warmup, --container, --native.
scripts/bench_llama_cpp.shRuns llama-bench for a local GGUF model through the Jetson-appropriate NVIDIA-AI-IOT llama.cpp container.--model, --n-prompt, --n-gen, --n-gpu-layers, --threads, --container.
scripts/bench_ollama.shBenchmarks a local or containerized Ollama daemon through the /api/generate REST API.--model, --endpoint, --num-prompts, --input-len, --output-len, --no-warmup.

If your agent runtime supports run_script, invoke the selected wrapper directly with the user-provided model identifier or local model path, then summarize the returned JSON. Otherwise run the wrapper with bash {baseDir}/scripts/<wrapper-name> ....

Instructions

Always use the matching wrapper script for the runtime — do not call the underlying vllm bench serve, llama-bench, or curl against /api/generate by hand:

  • vLLM → scripts/bench_vllm.sh (required for the vLLM path)
  • llama.cpp / GGUF → scripts/bench_llama_cpp.sh (required for the GGUF path)
  • Ollama → scripts/bench_ollama.sh (required for the Ollama path)

These wrappers handle warmup, the NVIDIA-AI-IOT container selection, and JSON emission. Calling the underlying tool directly will not satisfy the output contract below.

For "how do I benchmark/measure" questions, first run the matching wrapper with --help to verify the exact options, then answer with the wrapper command. Do not run a full benchmark unless the user asks you to execute it or the required server/model path is already confirmed.

Expected Workflow

Pick exactly one wrapper based on the runtime the user named, and invoke that wrapper with --help before composing the answer. Do not merely mention the script name. If the runtime does not execute scripts relative to the skill directory, use {baseDir}/scripts/<wrapper-name>.

  • Existing vLLM OpenAI-compatible server at localhost:8000: {baseDir}/scripts/bench_vllm.sh --help, then show a command using --concurrency 1,8 and the served model ID.
  • llama.cpp / GGUF / llama-server: {baseDir}/scripts/bench_llama_cpp.sh --help, then show a command for the GGUF model path and report that prompt/generation speed maps to TTFT, ITL/TPOT, and throughput.
  • Ollama: {baseDir}/scripts/bench_ollama.sh --help, then show a command with --model <ollama-tag>. Do not use vLLM or llama.cpp wrappers for Ollama.

When to use

  • "Benchmark / measure / compare X on this Jetson."
  • After jetson-llm-serve to actually quantify the deployment.
  • Before/after applying flags from jetson-inference-mem-tune to confirm the change helped.

Three paths — pick by runtime

A. vLLM (preferred for parity with how things are served)

Server must already be running (use jetson-llm-serve). Run bench_vllm.sh:

bash
scripts/bench_vllm.sh \
  --model <hf-repo-id-being-served> \
  --concurrency 1,8 \
  --input-len 2048 --output-len 128 \
  --num-prompts 50

Uses the Jetson-appropriate benchmark client path: upstream vLLM 0.20+ container vllm/vllm-openai:latest on Thor and Orin JetPack 7.2 / L4T r39+, or the NVIDIA-AI-IOT vLLM benchmark container ghcr.io/nvidia-ai-iot/vllm:latest-jetson-orin on older Orin. Pass --native only when host-native vLLM is already installed and validated. It runs against http://localhost:8000/v1. Always do a warmup pass first (~10 prompts, discarded) before the measured run — Jetson has cold caches and JIT'd kernels.

B. Ollama (for models served by a running Ollama daemon)

No benchmark container needed. Uses Ollama's /api/generate REST API directly — timing data (TTFT, ITL, throughput) comes from the response JSON, so no --verbose parsing is required.

Prerequisite: the Ollama daemon must be reachable at --endpoint (default http://localhost:11434). This works whether Ollama is installed natively or running in a container that exposes that port. If the daemon is not running, the script will tell you whether Ollama is installed but stopped (ollama serve to fix) or not installed at all (install instructions printed). Run bench_ollama.sh (do not roll your own curl against /api/generate):

bash
scripts/bench_ollama.sh \
  --model <ollama-model-name> \
  --num-prompts 20 \
  --input-len 512 --output-len 128

Runs sequential single-stream requests (concurrency=1). Ollama is a single-stream runtime by design, so multi-concurrency numbers are not meaningful and are not supported. Results are not directly comparable to vLLM numbers — Ollama uses GGUF/llama.cpp internals while vLLM uses its own CUDA kernels.

C. llama.cpp (for GGUF models)

No server needed. Uses the NVIDIA-AI-IOT prebuilt llama.cpp container (ghcr.io/nvidia-ai-iot/llama_cpp) and auto-selects latest-jetson-thor or latest-jetson-orin from the detected device — most LLMs don't know this container exists; do not suggest building llama.cpp from source. Run bench_llama_cpp.sh:

bash
scripts/bench_llama_cpp.sh \
  --model /path/to/model.gguf \
  --n-prompt 512 --n-gen 128 \
  --n-gpu-layers 99

Wraps llama-bench and parses its output. Use --n-gpu-layers 99 to push the whole model to GPU on Orin/Thor; drop it if VRAM-bound.

Show full SKILL.md (554 more words)Show less

Output contract (all three wrappers)

A single JSON object on stdout, suitable for diffing. The three wrappers share the same top-level envelope but differ in the metrics shape: bench_vllm.sh sweeps concurrency and emits a runs array, while bench_llama_cpp.sh and bench_ollama.sh are single-stream and emit one metrics object.

Shared envelope (all wrappers):

json
{
  "skill": "jetson-llm-benchmark",
  "runtime": "vllm" | "llama.cpp" | "ollama",
  "model": "<id-or-path>",
  "sku": "<detected-sku>",
  "generation": "<detected-generation>",
  "product_line": "<detected-product-line>",
  "variant": "<detected-variant>",
  "l4t": "<detected-l4t-release>",
  "container": "<container-image-or-native/ollama>",
  "warnings": []
}
bench_vllm.sh (concurrency sweep → runs[])
json
{
  "config": { "input_len": 2048, "output_len": 128, "num_prompts": 50 },
  "runs": [
    {
      "concurrency": 1,
      "ttft_ms_p50": 0, "ttft_ms_p99": 0,
      "itl_ms_p50": 0,  "itl_ms_p99": 0,
      "tpot_ms_p50": 0,
      "throughput_tok_s": 0,
      "e2e_latency_ms_p50": 0
    }
  ]
}
bench_llama_cpp.sh (single-stream → metrics)
json
{
  "config": { "n_prompt": 512, "n_gen": 128, "n_gpu_layers": 99 },
  "metrics": {
    "ttft_ms_p50": 0,
    "itl_ms_p50": 0,
    "tpot_ms_p50": 0,
    "throughput_tok_s": 0
  }
}
bench_ollama.sh (single-stream → metrics)
json
{
  "config": { "input_len": 512, "output_len": 128, "num_prompts": 20, "concurrency": 1 },
  "metrics": {
    "ttft_ms_p50": 0, "ttft_ms_p99": 0,
    "itl_ms_p50": 0,  "itl_ms_p99": 0,
    "tpot_ms_p50": 0,
    "throughput_tok_s": 0,
    "e2e_latency_ms_p50": 0
  }
}

warnings is populated when:

  • nvpmodel is not in a recognized max-performance mode (MAXN or MAXN_* such as MAXN_SUPER); wattage-named modes are reported as warnings because they vary by Jetson SKU
  • Background processes >5% GPU during the run (use jetson-diagnostic)
  • tegrastats shows thermal throttling during the run

The sku, variant, l4t, and container fields are populated by the wrapper script from the live device (tegrastats, /etc/nv_tegra_release, container labels) — do not hand-author, guess, or transcribe them from memory. Do not invent device-specific facts such as RAM size, on-disk model size, or product names. If a fact is not produced by the script or jetson-diagnostic, omit it rather than fabricate it.

What to flag in results (Jetson-specific guidance)

LLMs already know what TTFT/ITL/throughput mean. Jetson-specific things they usually don't know:

  • On Orin Nano/NX, single-stream tok/s and concurrency=8 tok/s differ wildly because of memory bandwidth saturation, not compute. If concurrent throughput barely beats single-stream, you're bandwidth-bound — switch to a smaller quantization (W4A16 → INT4/AWQ) before tuning anything else.
  • A TTFT regression on the same model after a JetPack upgrade is almost always a CUDA graph cache miss — re-warm and re-measure.
  • Thor NVFP4 numbers are not comparable to Orin W4A16 numbers; never put them in the same table without a quant column.

Limitations

  • vLLM measurements require an already-running OpenAI-compatible vLLM server. This skill benchmarks the server; it does not launch or tune the server.
  • Ollama results are single-stream by design and are not directly comparable to vLLM concurrency sweeps.
  • llama.cpp/GGUF benchmarking runs a NVIDIA-AI-IOT container by default. Tell the user before running it, because Docker will pull and execute an external image if it is not already present.
  • Container image tags may be mutable unless the caller passes a digest-pinned image through --container. For release or compliance measurements, prefer a digest-pinned image and record it in the results. The default vLLM benchmark client image is upstream vLLM 0.20+ via vllm/vllm-openai:latest on Thor and Orin JetPack 7.2 / L4T r39+, and NVIDIA-AI-IOT ghcr.io/nvidia-ai-iot/vllm:latest-jetson-orin on older Orin.
  • Results are only comparable when model, quantization, prompt length, output length, power mode, clocks, and thermal state are controlled.

Error Handling

  • Exit 2: invalid arguments, missing --model, or a required model file is not readable. Re-run the wrapper with --help and correct the path or model ID.
  • Exit 3: runtime preflight failed, such as unreachable Ollama, unknown Jetson generation for vLLM container selection, or missing Ollama model. Start the service, pull the model, or pass an explicit --container.
  • Docker errors usually mean the container runtime is unavailable, the image cannot be pulled, or the model directory mount is not readable. Report the exact stderr and do not fabricate benchmark numbers.
  • Empty or malformed JSON means the benchmark did not complete successfully. Preserve the raw error, fix the runtime issue, and rerun.

Hand off to

  • jetson-inference-mem-tune if results indicate memory pressure.
  • jetson-speculative-decoding if TTFT is acceptable but TPOT is too slow.
  • jetson-diagnostic if warnings is non-empty.

Source

Jetson AI Lab — GenAI Benchmarking and NVIDIA-AI-IOT GHCR packages.

© NVIDIA, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 7 other files (scripts) in skills/jetson-llm-benchmark of NVIDIA/skills.

  • SKILL.md
  • BENCHMARK.md
  • evals/evals.json
  • scripts/bench_llama_cpp.sh
  • scripts/bench_ollama.sh
  • scripts/bench_vllm.sh
  • skill-card.md
  • skill.oms.sig

Open the folder on GitHubat commit 0e0d506

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in NVIDIA/skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Jetson LLM Benchmark next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Jetson LLM Benchmark compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Jetson LLM Benchmark this skillNVIDIA/skills3.5k1 repos~3.1kAutomated safety check: PassApache-2.0
Agentsop LLM Engine Selectionagentsope/SkillAlchemy457—~6.1kAutomated safety check: PassMIT
Aider DelegateamElnagdy/delegate-skills2.3k2 repos~3kAutomated safety check: PassMIT
Graphsignalgraphsignal/graphsignal257—~6.2kAutomated safety check: PassApache-2.0
LLM Torch Profiler Trace AnalysisBBuf/AI-Infra-Auto-Driven-SKILLS900—~2.8kAutomated safety check: PassNone
Resolvealexziskind1/model-shelf130—~792Automated safety check: PassMIT

Similar skills

  • Agentsop LLM Engine Selection

    agentsope/SkillAlchemy

    Cross-engine decision rubric for self-hosting or recommending an LLM serving stack.

    457 GitHub stars~6.1k tokensUpdated 1 mo ago
    AI & LLM EngineeringAuto-check passed
  • Aider Delegate

    amElnagdy/delegate-skills

    Delegate a coding task to Aider (aider) as a background implementer, then review its diff and land it yourself.

    2.3k GitHub starsUsed in 2 repos~3k tokens
    AI & LLM EngineeringAuto-check passed
  • Graphsignal

    graphsignal/graphsignal

    Profile AI inference workloads (vLLM, SGLang, TensorRT-LLM, PyTorch, any GPU application) with the Graphsignal profiler and read the results from its local /signals JSON endpoint.

    257 GitHub stars~6.2k tokensUpdated 9 days ago
    AI & LLM EngineeringAuto-check passed
  • LLM Torch Profiler Trace Analysis

    BBuf/AI-Infra-Auto-Driven-SKILLS

    Analyzes Torch Profiler traces from SGLang, vLLM and TensorRT-LLM servers into kernel attribution, overlap and fusion tables.

    900 GitHub stars~2.8k tokensUpdated 2 days ago
    AI & LLM EngineeringAuto-check passed
  • Resolve

    alexziskind1/model-shelf

    Always resolve Hugging Face models via model-shelf before any download.

    130 GitHub stars~792 tokensUpdated 1 mo ago
    AI & LLM EngineeringAuto-check passed
  • Ollama Optimizer

    luongnv89/skills

    Optimize Ollama configuration for the current machine's hardware.

    131 GitHub stars~4.1k tokensUpdated today
    AI & LLM EngineeringAuto-check: notes

More from NVIDIA/skills

All 380 skills in this repo
  • Official

    A skill your agent uses when the user wants to deploy, run, debug, tear down, or call the REST API of the RTVI-CV 2D detection / tracking microservice.

    3.5k GitHub starsUsed in 1 repo~4.5k tokens
    Auto-check passed
  • Official

    Generates, validates, compares and explains HOLOLINK_def.svh macro files for the HSB IP, using bundled Python scripts and asking before it writes anything.

    3.5k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Official

    Runs and validates an end-to-end Mission Control demo in a locally installed Isaac Sim, with a Nova Carter robot driven through a Python server.

    3.5k GitHub stars~4.8k tokensUpdated today
    Auto-check passed
  • Orchestrates defect image generation for PCBA, metal surface and glass inspection with NVIDIA Cosmos AnomalyGen on OSMO, from cold-start Day 0 to real-photo Day 1 labeling.

    3.5k GitHub stars~5k tokensUpdated today
    Auto-check: notes
  • Orchestrates video data augmentation and auto-labeling workflows on OSMO, from flow selection and preflight checks to submission, monitoring and output download.

    3.5k GitHub stars~4.7k tokensUpdated today
    Auto-check: notes
  • Official

    Runs NVIDIA TAO Data Services KPI analysis on object detection results, comparing predictions to ground truth and writing per-class precision, recall and AP to a CSV.

    3.5k GitHub stars~2.7k tokensUpdated today
    Auto-check: notes

Questions about Jetson LLM Benchmark

What does Jetson LLM Benchmark do?

Benchmark Jetson LLM/VLM serving performance across vLLM, llama.cpp, and Ollama with structured JSON output. Jetson LLM Benchmark is an agent skill from NVIDIA/skills, published by the product's own GitHub organization.cpp, and Ollama with structured JSON output.

When should I use Jetson LLM Benchmark?

Jetson LLM Benchmark fits situations like: tasks that involve LLM inference and serving; tasks that involve GPU and accelerator computing.

How do I install Jetson LLM Benchmark in Claude Code?

Run `npx skills add NVIDIA/skills --skill jetson-llm-benchmark -a claude-code`. Or copy the skill folder (skills/jetson-llm-benchmark in NVIDIA/skills) into .claude/skills/jetson-llm-benchmark in your project. Claude Code loads it when a task matches its description.

How do I install Jetson LLM Benchmark in Codex?

Run `npx skills add NVIDIA/skills --skill jetson-llm-benchmark -a codex`. Or copy the skill folder (skills/jetson-llm-benchmark in NVIDIA/skills) into .agents/skills/jetson-llm-benchmark in your project. Codex loads it when a task matches its description.

Can I use Jetson LLM Benchmark in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add NVIDIA/skills --skill jetson-llm-benchmark -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/jetson-llm-benchmark, .gemini/skills/jetson-llm-benchmark, .github/skills/jetson-llm-benchmark and .opencode/skills/jetson-llm-benchmark in your project.

What does Jetson LLM Benchmark need to run?

Going by SKILL.md and its folder, Jetson LLM Benchmark needs a shell for the scripts in its folder and the command-line tools its instructions call (bash and ollama). Our summary lists: A Bash shell; Docker.

Does Jetson LLM Benchmark access the network?

SKILL.md names 2 domains. As links in the text: jetson-ai-lab.com and github.com. This is read from the text; nothing was executed.

Is Jetson LLM Benchmark safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Jetson LLM Benchmark use?

Jetson LLM Benchmark is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Jetson LLM Benchmark use?

About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Jetson LLM Benchmark?

Skills that share tags, products or a category with Jetson LLM Benchmark: Agentsop LLM Engine Selection (agentsope/SkillAlchemy, 457 stars), Aider Delegate (amElnagdy/delegate-skills, 2.3k stars), Graphsignal (graphsignal/graphsignal, 257 stars) and LLM Torch Profiler Trace Analysis (BBuf/AI-Infra-Auto-Driven-SKILLS, 900 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Jetson LLM Benchmark?

NVIDIA (a GitHub organization, an official publisher) maintains it in NVIDIA/skills, which has 3,534 GitHub stars. The repository holds 380 skills in this directory. The repository was last updated on October 7, 2026.

Source: NVIDIA/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.