Agent skill

Asynkron Profiler

by managedcode in managedcode/dotnet-skills

Use the open-source free Asynkron.Profiler dotnet tool for CLI-first CPU, allocation, exception, contention, and heap profiling of .NET commands or existing trace artifacts.

MITAuto-check passedDevelopment

Install Asynkron Profiler

skills CLI
$ npx skills add managedcode/dotnet-skills --skill asynkron-profiler -a claude-code

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

GitHub CLI
$ gh skill install managedcode/dotnet-skills asynkron-profiler --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/managedcode/dotnet-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/catalog/Tools/Asynkron-Profiler/skills/asynkron-profiler .claude/skills/asynkron-profiler && 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
asynkron-profiler
GitHub stars
486
Token cost
~1.7k tokens
SKILL.md length
588 words
Files
5 (incl. references)
Skills in repo
81
Repo updated
First seen
Licence
MIT

At a glance

Use the open-source free Asynkron.Profiler dotnet tool for CLI-first CPU, allocation, exception, contention, and heap profiling of .NET commands or existing trace artifacts.

  • Works in 8 steps: Decide whether the task is a new profile… → Prefer built Release output over dotnet… → Install and verify all three tools… → …
  • : Asynkron.Profiler setup
  • SKILL.md covers Trigger On, Workflow, Architecture and Install, plus 6 more sections
  • Calls dotnet

What it does

Asynkron Profiler is an agent skill from managedcode/dotnet-skills. Use the open-source free Asynkron.Profiler dotnet tool for CLI-first CPU, allocation, exception, contention, and heap profiling of .NET commands or existing trace artifacts. USE FOR: Asynkron.Profiler setup; automation-friendly profiling output; CPU, allocation, exception, contention, and heap investigation. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation…

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `manifest.json`, `references/commands.md` and `references/examples.md`). Compatibility notes: Requires the asynkron-profiler dotnet tool plus dotnet-trace and dotnet-gcdump; upstream guidance currently targets .NET SDK 10.x.

It sits in Development, covering Performance optimization. It works with .NET. The repository describes itself as: Installable .NET skill catalog and CLI for Codex, Claude Code, GitHub Copilot, and Gemini. The licence is MIT.

When your agent uses it

  • : Asynkron.Profiler setup
  • Automation-friendly profiling output
  • Heap investigation
  • : unrelated stacks

Example prompts

  • “/asynkron-profiler”

Requirements

  • Compatibility (from SKILL.md): Requires the `asynkron-profiler` dotnet tool plus `dotnet-trace` and `dotnet-gcdump`; upstream guidance currently targets .NET SDK 10.x.

Workflow steps

8 steps, taken from the first numbered list in SKILL.md.

  1. Decide whether the task is a new profile capture or rendering an existing trace artifact.
  2. Prefer built Release output over dotnet run so the trace represents the target app rather than restore/build noise.
  3. Install and verify all three tools before assuming the profiler is usable
  4. Choose exactly one primary mode first
  5. Use --input when the trace already exists and the task is about rendering or narrowing the report, not recollecting data.
  6. Refine the output only after the baseline run
  7. Treat profile-output/ as the stable output folder for review artifacts and reruns.
  8. If the task needs process attach, counters, or raw official diagnostics flows rather than this CLI frontend, hand off to profiling.

What it can do on your machine

Read from SKILL.md and the folder at commit 535dd55. 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

    Shell commands in SKILL.md call:

    • dotnet

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

  • Network

    No URLs in SKILL.md.

    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.

  • Compatibility

    Requires the `asynkron-profiler` dotnet tool plus `dotnet-trace` and `dotnet-gcdump`; upstream guidance currently targets .NET SDK 10.x.

    From compatibility in the SKILL.md frontmatter.

Context cost

Asynkron Profiler loads about 1.7k tokens when it runs, and up to ~4k if it reads all its reference files. Until then it costs about 141 tokens; SKILL.md has 588 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~141
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4k

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from managedcode/dotnet-skills at commit 535dd55, republished under its MIT licence (© managedcode). 588 words, ~1,674 tokens.

Download SKILL.mdSave it as .claude/skills/asynkron-profiler/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
asynkron-profiler
description
Use the open-source free `Asynkron.Profiler` dotnet tool for CLI-first CPU, allocation, exception, contention, and heap profiling of .NET commands or existing trace artifacts. USE FOR: Asynkron.Profiler setup; automation-friendly profiling output; CPU, allocation, exception, contention, and heap investigation. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.
compatibility
Requires the `asynkron-profiler` dotnet tool plus `dotnet-trace` and `dotnet-gcdump`; upstream guidance currently targets .NET SDK 10.x.

Asynkron.Profiler

Trigger On

  • the repo wants Asynkron.Profiler or asynkron-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 .gcdump file into a readable report

Workflow

  1. Decide whether the task is a new profile capture or rendering an existing trace artifact.
  2. Prefer built Release output over dotnet run so the trace represents the target app rather than restore/build noise.
  3. Install and verify all three tools before assuming the profiler is usable:
    • asynkron-profiler
    • dotnet-trace
    • dotnet-gcdump
  4. Choose exactly one primary mode first:
    • --cpu
    • --memory
    • --exception
    • --contention
    • --heap
  5. Use --input <path> when the trace already exists and the task is about rendering or narrowing the report, not recollecting data.
  6. Refine the output only after the baseline run:
    • --root <text> to anchor the call tree
    • --filter <text> to trim tables
    • --exception-type <text> for exception-heavy flows
    • --calltree-depth, --calltree-width, --calltree-self, --calltree-sibling-cutoff
  7. Treat profile-output/ as the stable output folder for review artifacts and reruns.
  8. If the task needs process attach, counters, or raw official diagnostics flows rather than this CLI frontend, hand off to profiling.

Architecture

mermaid
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 -- <command|csproj|sln>`"]
  D --> E["Collect via `dotnet-trace` or `dotnet-gcdump`"]
  E --> F["Write reports to `profile-output/`"]
  B -->|Existing artifact| G["Run `asynkron-profiler --input <path> [--mode]`"]
  G --> F
  F --> H["Refine output with `--root`, `--filter`, and call tree flags"]

Install

  • Install the profiler tool from upstream:
bash
dotnet tool install -g asynkron-profiler --prerelease
  • Install prerequisites:
bash
dotnet tool install -g dotnet-trace
dotnet tool install -g dotnet-gcdump
  • Verify the toolchain:
bash
asynkron-profiler --help
dotnet-trace --version
dotnet-gcdump --version

Practical Usage

Capture a new profile
bash
dotnet build -c Release
asynkron-profiler --cpu -- ./bin/Release/<tfm>/MyApp

Framework-dependent apps can run through dotnet:

bash
asynkron-profiler --memory -- dotnet ./bin/Release/<tfm>/MyApp.dll

Project and solution paths are also valid when the tool should build and run for you:

bash
asynkron-profiler --contention -- ./MyApp.csproj
asynkron-profiler --exception -- ./MySolution.sln
Render an existing trace
bash
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:

bash
dotnet-trace collect --output ./profile-output/app.nettrace -- dotnet run MyProject.sln
asynkron-profiler --input ./profile-output/app.nettrace --cpu

Option Patterns

  • mode flags:
    • --cpu for sampled hotspots
    • --memory for GC allocation ticks and per-type call trees
    • --exception for thrown counts and throw-site trees
    • --contention for wait-time trees
    • --heap for retained heap shape via dotnet-gcdump
  • scope and readability:
    • --root <text> to focus the tree on a subsystem
    • --filter <text> to narrow function tables
    • --exception-type <text> when one exception dominates the signal
  • output shaping:
    • --calltree-depth <n>
    • --calltree-width <n>
    • --calltree-self
    • --calltree-sibling-cutoff <n>
  • trace replay and project targeting:
    • --input <path> for .nettrace, .speedscope.json, .etlx, or .gcdump
    • --tfm <tfm> when the profiler must resolve a specific target framework from a .csproj or .sln
Show full SKILL.md (220 more words)Show less

Constraints

  • upstream currently documents .NET SDK 10.x as the supported toolchain baseline
  • dotnet run is supported but usually produces noisy traces because it captures host, restore, and build work
  • the tool is a frontend over dotnet-trace and dotnet-gcdump, so missing prerequisites or blocked diagnostics IPC will break runs
  • --heap captures 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 profiling

Deliver

  • a repeatable asynkron-profiler command 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, and dotnet-gcdump --version all succeed
  • the chosen profiling mode matches the question being investigated
  • the command profiles built Release output unless there is a documented reason to accept dotnet run noise
  • 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 - tool positioning, install paths, prerequisites, and when to choose it over raw diagnostics CLIs
  • commands.md - command patterns for capture, replay, and option tuning
  • examples.md - mode-by-mode examples, output expectations, and troubleshooting checks

© managedcode, MIT. 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 4 other files (references) in catalog/Tools/Asynkron-Profiler/skills/asynkron-profiler of managedcode/dotnet-skills.

  • SKILL.md
  • manifest.json
  • references/commands.md
  • references/examples.md
  • references/overview.md

Open the folder on GitHubat commit 535dd55

Compare with similar skills

Asynkron Profiler 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.

Asynkron Profiler compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Asynkron Profiler this skillmanagedcode/dotnet-skills486—~1.7kAutomated safety check: PassMIT
Analyzing .NET Performancedotnet/skills5.6k3 repos~3.1kAutomated safety check: PassMIT
MAUI PR Performance Analysisdotnet/maui23k—~2.4kAutomated safety check: PassMIT
.NET Trimming and Native AOTAaronontheweb/dotnet-skills1.2k—~2.9kAutomated safety check: PassMIT
Dotnet Debuggingnovotnyllc/dotnet-artisan233—~2.1kAutomated safety check: PassMIT
Build Dotnet Agentnewrelic/newrelic-dotnet-agent117—~871Automated safety check: PassApache-2.0

Similar skills

  • Official

    Scans C# and .NET code for about 50 performance anti-patterns and reports prioritized findings with concrete fixes, at a scan depth you choose.

    5.6k GitHub starsUsed in 3 repos~3.1k tokens
    DevelopmentAuto-check passed
  • Official

    Interprets pinned managed benchmark evidence for a dotnet/maui pull request and writes a narrative for the performance review workflow, without running or publishing anything.

    23k GitHub stars~2.4k tokensUpdated today
    DevelopmentAuto-check passed
  • .NET Trimming and Native AOT

    Aaronontheweb/dotnet-skills

    Guides making .NET libraries trimming-safe and Native-AOT compatible: the MSBuild properties, trimming attributes, warning codes and a playbook of safe patterns.

    1.2k GitHub stars~2.9k tokensUpdated 20 days ago
    DevelopmentAuto-check passed
  • Dotnet Debugging

    novotnyllc/dotnet-artisan

    Debugs Windows and Linux/macOS applications (native, .NET/CLR, mixed-mode) with WinDbg MCP (crash dumps, !analyze, !syncblk, !dlk, !runaway, !dumpheap, !gcroot, BSOD), dotnet-dump, lldb with SOS…

    233 GitHub stars~2.1k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Build Dotnet Agent

    newrelic/newrelic-dotnet-agent

    Build the New Relic .NET agent locally and validate that code changes compile.

    117 GitHub stars~871 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Analyze Dotnet Agent Logs

    newrelic/newrelic-dotnet-agent

    Parse and diagnose New Relic .NET agent logs (newrelicagent.log) and profiler logs (NewRelic.Profiler.<pid.log) from a support ticket.

    117 GitHub stars~1.5k tokensUpdated yesterday
    Sales & SupportAuto-check passed

More from managedcode/dotnet-skills

All 81 skills in this repo
  • Analyzer Config

    managedcode/dotnet-skills

    Use a repo-root .editorconfig to configure free .NET analyzer and style rules.

    486 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Archunitnet

    managedcode/dotnet-skills

    Use the open-source free ArchUnitNET library for architecture rules in .NET tests.

    486 GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Aspire

    managedcode/dotnet-skills

    Build, upgrade, and operate Aspire 13.5.x C or TypeScript application hosts with the current CLI, AppHost, ServiceDefaults, integrations, dashboard, testing, MCP, and deployment patterns for…

    486 GitHub stars~3.6k tokensUpdated today
    Auto-check passed
  • Aspnet Core

    managedcode/dotnet-skills

    Build, debug, modernize, or review ASP.NET Core applications with correct hosting, middleware, security, configuration, logging, and deployment patterns on current .NET.

    486 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Azure Functions

    managedcode/dotnet-skills

    Build, review, or migrate Azure Functions in .NET with correct execution model, isolated worker setup, bindings, DI, and Durable Functions patterns.

    486 GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Blazor

    managedcode/dotnet-skills

    Build and review Blazor applications across server, WebAssembly, web app, and hybrid scenarios with correct component design, state flow, rendering, and hosting choices.

    486 GitHub stars~2.1k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Asynkron Profiler

What does Asynkron Profiler do?

Use the open-source free Asynkron.Profiler dotnet tool for CLI-first CPU, allocation, exception, contention, and heap profiling of .NET commands or existing trace artifacts. Asynkron Profiler is an agent skill from managedcode/dotnet-skills.NET commands or existing trace artifacts.

When should I use Asynkron Profiler?

Asynkron Profiler fits situations like: : Asynkron.Profiler setup; automation-friendly profiling output; heap investigation; : unrelated stacks.

How do I install Asynkron Profiler in Claude Code?

Run `npx skills add managedcode/dotnet-skills --skill asynkron-profiler -a claude-code`. Or copy the skill folder (catalog/Tools/Asynkron-Profiler/skills/asynkron-profiler in managedcode/dotnet-skills) into .claude/skills/asynkron-profiler in your project. Claude Code loads it when a task matches its description.

How do I install Asynkron Profiler in Codex?

Run `npx skills add managedcode/dotnet-skills --skill asynkron-profiler -a codex`. Or copy the skill folder (catalog/Tools/Asynkron-Profiler/skills/asynkron-profiler in managedcode/dotnet-skills) into .agents/skills/asynkron-profiler in your project. Codex loads it when a task matches its description.

Can I use Asynkron Profiler 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 managedcode/dotnet-skills --skill asynkron-profiler -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/asynkron-profiler, .gemini/skills/asynkron-profiler, .github/skills/asynkron-profiler and .opencode/skills/asynkron-profiler in your project.

What does Asynkron Profiler need to run?

Going by SKILL.md and its folder, Asynkron Profiler needs the command-line tools its instructions call (dotnet). Compatibility (from SKILL.md): Requires the `asynkron-profiler` dotnet tool plus `dotnet-trace` and `dotnet-gcdump`; upstream guidance currently targets .NET SDK 10.x..

Does Asynkron Profiler access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Asynkron Profiler 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. Review the folder before installing.

What licence does Asynkron Profiler use?

Asynkron Profiler is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Asynkron Profiler use?

About 1.7k tokens (SKILL.md is roughly 6.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.3k tokens, read only when the agent opens those files.

What are the alternatives to Asynkron Profiler?

Skills that share tags, products or a category with Asynkron Profiler: Analyzing .NET Performance (dotnet/skills, 5.6k stars), MAUI PR Performance Analysis (dotnet/maui, 23k stars), .NET Trimming and Native AOT (Aaronontheweb/dotnet-skills, 1.2k stars) and Dotnet Debugging (novotnyllc/dotnet-artisan, 233 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Asynkron Profiler?

managedcode (a GitHub organization) maintains it in managedcode/dotnet-skills, which has 486 GitHub stars. The repository holds 81 skills in this directory. The repository was last updated on October 7, 2026.

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