hotpath-rs
Skill1.9k starsChanged todayMITView on GitHub
Set up, use and troubleshoot hotpath, the feature-gated Rust profiler, by fetching the matching hotpath.rs docs page or agent procedure. Use when adding hotpath to a project, instrumenting Rust code with it, reading a hotpath report or hotpath.rs pull request comment, fixing a regression hotpath flagged, measuring Callgrind instruction counts, configuring hotpath-cloud CI, policies or budgets, or any question about hotpath. Not for general Rust performance work in projects that do not use or want hotpath.
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 3 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 13
Every page of https://hotpath.rs is served as markdown with an Accept: text/markdown header, which costs far fewer tokens than HTML:
- Distinctive: line 20
If a fetch fails, stop and tell the user which URL failed.
- Very specific: line 76
Never add hotpath or any hotpath-* feature to default features.
- Very specific: line 77
Verify instrumentation compiles both ways: cargo check and cargo check --features hotpath.
- Distinctive: line 79
When the docs and your memory disagree, the docs win.
- Distinctive: line 80
Do not commit or push unless the user asks.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Using hotpath
hotpath is a feature-gated Rust profiler: every macro is a no-op and no dependency is compiled unless the hotpath cargo feature is enabled. This skill does not hold the API; it routes each task to the docs page or agent procedure that does. Fetch those before writing code or answering, and follow them instead of memory.
Fetching the docs
Every page of https://hotpath.rs is served as markdown with an Accept: text/markdown header, which costs far fewer tokens than HTML:
curl -fsSL -H 'Accept: text/markdown' https://hotpath.rs/functions- Pages under
/agent/are step-by-step procedures, markdown only. When a task routes to one, fetch it and follow it. - If a fetch fails, stop and tell the user which URL failed; do not guess the API.
- A
#fragmentis not sent to the server: fetch the whole page and find the heading. - Fetch only the pages the task needs, each once. Follow a link from a page only when you need the detail it points to.
Routing
Paths are relative to https://hotpath.rs. Fetch the pages listed for the task, plus the page of any other subsystem it touches.
Setup and profiling
| Task | Pages |
| Add hotpath to a project | /agent/setup |
Instrument functions, modules, impl blocks or code blocks; memory and allocations; custom global allocator | /functions |
| Profile async functions | /functions, /data_flow |
Use a guard instead of #[hotpath::main] (libraries, tests, benchmarks); report format, output, shutdown; live TUI | /profiling_modes, /configuration |
| CPU time inside functions (samply) | /cpu_profiling |
| Callgrind instruction counts, alone or merged with native timing; missing or unstable counts | /callgrind (+ /ci_integration "Troubleshooting" in CI) |
Reuse existing Criterion benchmarks (0.5 to 0.8), sync or async (to_async), for hotpath reports (fixed iterations, native, Callgrind, merged) | /criterion, /callgrind |
| Threads | /threads |
| Channels, streams, futures | /data_flow |
| Lock contention | /locks |
| SQL queries, N+1 | /sql_tracing (+ /axum_tracing for per-route counts) |
| Outbound HTTP (reqwest, ureq) | /http_tracing |
| axum server, per-route time or memory | /axum_tracing |
| File, socket, compression or other byte-level I/O | /io_tracing |
| Tokio runtime metrics | /tokio_runtime |
| Debug values, custom gauges | /debug |
| Overhead, sampling, running in production | /profiling_overhead, /faq, /configuration |
| Environment variables | /configuration |
hotpath-cloud
| Task | Pages |
| What hotpath-cloud is, how it works, pricing | /cloud, /cloud_faq |
| Set up hotpath-cloud CI for pull requests, including CPU regression checks with instruction counts | /agent/init_cloud |
| Change an existing hotpath-cloud benchmark's profiling mode | /ci_integration ("Profiling modes"), /regression_policy |
Edit or validate hotpath/policy.toml | /regression_policy |
| Absolute performance budgets | /performance_budgets, /regression_policy |
| Read a pull request comment, wait for a benchmark, fix a regression or broken budget | /agent/cloud_cli (+ the page of the regressed subsystem) |
hotpath cloud CLI reference | /agents_cli |
| Data access, retention, outages, terms | /cloud_faq, /terms |
Observability and general
| Task | Pages |
| Prometheus metrics | /prometheus_grafana |
| Grafana dashboard | /agent/init_grafana |
| Query live metrics over MCP | /mcp |
| What hotpath can do, troubleshooting, FAQ | /, /faq |
Rules
- hotpath version: the docs describe the latest release (
cargo search hotpath --limit 1); add it for a new dependency. Keep an existing version (seeCargo.lock) when it supports the task; a hotpath cargo feature that is only not enabled yet needs enabling, not an upgrade. When the installed version lacks functionality the task needs (compare with https://github.com/hotpath-rs/hotpath/blob/main/CHANGELOG.md), upgrade to the latest release without asking: raise the requirement keeping its features,cargo update -p hotpath, no other dependency changes, build with and without the project's hotpath features, and tell the user the old and new version, why and what code changed. If it cannot be made to build, restore the previousCargo.toml/Cargo.lockstate, and report the failure and what stays unavailable. - Never add
hotpathor anyhotpath-*feature todefaultfeatures; profiling stays opt-in. - Verify instrumentation compiles both ways:
cargo checkandcargo check --features hotpath. - Wrapper macros return
hotpath::wrap::types (no-op with the feature off). Do not silently rewrite public APIs to fit them; tell the user. - When the docs and your memory disagree, the docs win. Cite the page you relied on.
- Do not commit or push unless the user asks.
Trending
Quiet this year.thin dataabout the whole repository
Who's talking about pawurb/hotpath
- @orhun.dev“How do you find performance bottlenecks in Rust? 🤔 I got you: 🦀 hotpath — A lightweight Rust profiler for …”Bluesky · Oct 23, 2025 · 30 likes
- nix-community/nh“ci: Fix hotpath profiler config”GitHub · Nov 16, 2025 · 1 reactions
- @permutans.bsky.social“File under: libs I wish I’d known about approx. 2 weeks ago (hotpath crate allocation profiling) …”Bluesky · Oct 23, 2025 · 1 likes
- tryandromeda/andromeda“chore: Update hotpath, use measure_all macro”GitHub · Oct 19, 2025 · 1 reactions
- summer-rs/summer-rs“hotpath - find and profile bottlenecks in Rust”GitHub · Oct 23, 2025
The biggest 5 of 8 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 8
Talked about on GitHub and Bluesky (8 times).
On GitHub · 6
- Nov 16, 2025ci: Fix hotpath profiler config — nix-community/nh1 reaction · 2 comments
- Oct 19, 2025chore: Update hotpath, use measure_all macro — tryandromeda/andromeda1 reaction · 1 comment
- Oct 23, 2025hotpath - find and profile bottlenecks in Rust — summer-rs/summer-rs0 reactions
- Oct 13, 2025Add hotpath to profiling section — nnethercote/perf-book0 reactions · 4 comments
- Sep 20, 2025thanks! — fornwall/allocation-counter0 reactions
1 more on GitHub
- Sep 16, 2025Tokio not found in scope — hotpath-rs/hotpath0 reactions · 14 comments
On Bluesky · 2
- Oct 23, 2025How do you find performance bottlenecks in Rust? 🤔 I got you: 🦀 hotpath — A lightweight Rust profiler for tracking execution time and… — @orhun.dev30 likes and reposts · 2 replies
- Oct 23, 2025File under: libs I wish I’d known about approx. 2 weeks ago (hotpath crate allocation profiling) github.com/pawurb/hotpath — @permutans.bsky.social1 likes and repost
Other versions1 project uses a version of this.
Word for word · 1
- pawurb/hotpath-rs★ 1.9k100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repositoryOne other file it gives its agents.
- AGENTS.mdAGENTS.md
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

