Install
$ agentstack add skill-postpartum-genushyacinthus29-dotnet-skills-dotnet-asynkron-profiler ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Asynkron.Profiler
Trigger On
- the repo wants
Asynkron.Profilerorasynkron-profiler - the user wants automation-friendly profiling output instead of GUI-only tooling
- profiling needs are CPU, allocation, exception, contention, or heap focused and should land as plain-text summaries in CI, scripts, or agent workflows
- the task needs to render an existing
.nettrace,.speedscope.json,.etlx, or.gcdumpfile into a readable report
Workflow
- Decide whether the task is a new profile capture or rendering an existing trace artifact.
- Prefer built
Releaseoutput overdotnet runso the trace represents the target app rather than restore/build noise. - Install and verify all three tools before assuming the profiler is usable:
asynkron-profilerdotnet-tracedotnet-gcdump
- Choose exactly one primary mode first:
--cpu--memory--exception--contention--heap
- Use
--inputwhen the trace already exists and the task is about rendering or narrowing the report, not recollecting data. - Refine the output only after the baseline run:
--rootto anchor the call tree--filterto trim tables--exception-typefor exception-heavy flows--calltree-depth,--calltree-width,--calltree-self,--calltree-sibling-cutoff
- Treat
profile-output/as the stable output folder for review artifacts and reruns. - If the task needs process attach, counters, or raw official diagnostics flows rather than this CLI frontend, hand off to
dotnet-profiling.
Architecture
flowchart LR
A["Profiling task"] --> B{"New run or existing artifact?"}
B -->|New run| C["Build target in Release"]
C --> D["Run `asynkron-profiler --mode -- `"]
D --> E["Collect via `dotnet-trace` or `dotnet-gcdump`"]
E --> F["Write reports to `profile-output/`"]
B -->|Existing artifact| G["Run `asynkron-profiler --input [--mode]`"]
G --> F
F --> H["Refine output with `--root`, `--filter`, and call tree flags"]
Install
- Install the profiler tool from upstream:
dotnet tool install -g asynkron-profiler --prerelease
- Install prerequisites:
dotnet tool install -g dotnet-trace
dotnet tool install -g dotnet-gcdump
- Verify the toolchain:
asynkron-profiler --help
dotnet-trace --version
dotnet-gcdump --version
Practical Usage
Capture a new profile
dotnet build -c Release
asynkron-profiler --cpu -- ./bin/Release//MyApp
Framework-dependent apps can run through dotnet:
asynkron-profiler --memory -- dotnet ./bin/Release//MyApp.dll
Project and solution paths are also valid when the tool should build and run for you:
asynkron-profiler --contention -- ./MyApp.csproj
asynkron-profiler --exception -- ./MySolution.sln
Render an existing trace
asynkron-profiler --input ./profile-output/app.nettrace --cpu
asynkron-profiler --input ./profile-output/app.etlx --memory
asynkron-profiler --input ./profile-output/app.gcdump --heap
Manual collection with the official tools still fits when the trace must be captured separately:
dotnet-trace collect --output ./profile-output/app.nettrace -- dotnet run MyProject.sln
asynkron-profiler --input ./profile-output/app.nettrace --cpu
Option Patterns
- mode flags:
--cpufor sampled hotspots--memoryfor GC allocation ticks and per-type call trees--exceptionfor thrown counts and throw-site trees--contentionfor wait-time trees--heapfor retained heap shape viadotnet-gcdump- scope and readability:
--rootto focus the tree on a subsystem--filterto narrow function tables--exception-typewhen one exception dominates the signal- output shaping:
--calltree-depth--calltree-width--calltree-self--calltree-sibling-cutoff- trace replay and project targeting:
--inputfor.nettrace,.speedscope.json,.etlx, or.gcdump--tfmwhen the profiler must resolve a specific target framework from a.csprojor.sln
Constraints
- upstream currently documents
.NET SDK 10.xas the supported toolchain baseline dotnet runis supported but usually produces noisy traces because it captures host, restore, and build work- the tool is a frontend over
dotnet-traceanddotnet-gcdump, so missing prerequisites or blocked diagnostics IPC will break runs --heapcaptures retained heap shape, not CPU or allocation timelines- this skill is for launched commands or existing trace files; if the task is process attach, counters, or raw trace authoring, prefer
dotnet-profiling
Deliver
- a repeatable
asynkron-profilercommand path for the profiling mode that matches the problem - explicit install and prerequisite commands
- a clear baseline command plus any focused
--root,--filter,--exception-type, or call-tree options needed for readable output - trace replay guidance when the task starts from an existing artifact
Validate
asynkron-profiler --help,dotnet-trace --version, anddotnet-gcdump --versionall succeed- the chosen profiling mode matches the question being investigated
- the command profiles built
Releaseoutput unless there is a documented reason to acceptdotnet runnoise profile-output/contains the expected report or artifact after the run- any replay flow uses an input file type that matches the selected mode
References
- [overview.md](references/overview.md) - tool positioning, install paths, prerequisites, and when to choose it over raw diagnostics CLIs
- [commands.md](references/commands.md) - command patterns for capture, replay, and option tuning
- [examples.md](references/examples.md) - mode-by-mode examples, output expectations, and troubleshooting checks
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Postpartum-genushyacinthus29
- Source: Postpartum-genushyacinthus29/dotnet-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.