Curated Category 10 optional skills · 9 maintainer groups Updated

Top 10 Performance Skills for AI Coding Agents

Start with the slow part: page loading, animation, a query, or a runtime hotspot. These ten optional skills cover different jobs. Pick the skill that fits your stack and the evidence you can collect.

The order is editorial, not an install ranking. Go measurement and Go remediation are separate choices; .NET captures incident traces, while the V8 heap skill analyzes snapshots you already have. Language-specific skills are alternatives for their own runtimes, not universal defaults.

A magnifying lens over colored timing bars and linked nodes.

Choose the problem first

Route your work by matching the active symptom to the corresponding skill card:

Website loading or Core Web Vitals

Use field data to prioritize impact, then compare browser traces and lab runs for the same page journey.

Browser animation or scrolling jank

Inspect scheduling, layout, paint, and compositing around the affected interaction.

Measure or compare Go performance

Design repeatable benchmarks and use profiles or statistical comparisons to locate and measure a Go hot path.

Fix a measured Go bottleneck

Apply a targeted Go change only after profiling or benchmarks identify the CPU, allocation, GC, I/O, or algorithm cost.

Profile Python CPU or memory use

Start with cProfile and pstats, then choose optional line or memory tools if the question needs more detail.

SwiftUI views update or render slowly

Trace the affected interaction with Instruments after checking view identity, state dependencies, and update fanout.

Postgres queries or connections are slow

Use query plans and workload context to investigate indexes, connections, RLS, and locking before changing schema or SQL.

PixiJS rendering or GPU memory is constrained

Check the PixiJS v8 scene, texture lifecycle, batching, culling, and device-specific rendering evidence.

Investigate retained objects in existing V8 snapshots

Compare supplied before-and-after heap snapshots and inspect bounded retainer paths without treating them as leak proof.

Collect a .NET incident trace for later analysis

Choose the collector for the runtime, operating system, deployment, privilege, and authorized capture window.

How this guide is structured

  • Evidence-first methodology. Use field data for user experience and lab traces to reproduce a bottleneck. For code changes, collect a baseline and compare the same workload afterward.
  • Task-specific boundaries. Separates measurement from remediation and live trace capture from post-mortem artifact analysis.
  • Explicit technical guardrails. Calls out operational limits for SQL queries, heap parsing memory bounds, and trace collection privileges.

Top 10 Performance Skills at a Glance

A comparative index of the top picks. Click any card to navigate directly to its detailed review.

Install labels observed on skills.sh on October 9, 2026. Listed in editorial order, not by installs.

Web experience

Separate page-level loading and responsiveness from animation-specific jank. Begin with real-user signals when available, then use comparable browser traces or device tests to isolate a change. These are workflows for diagnosing and verifying a target, not promises that a named technique will improve every site.

GitHub repository preview card for addyosmani/web-quality-skills

performance

38.7K installs Addy OsmaniWeb browsers, field data, and lab traces

Best for: Web page loading, responsiveness, and Core Web Vitals investigations

Approach: Field signals, browser traces, targeted changes, and repeat checks

This broad web workflow prioritizes real-user experience before selecting a fix. It starts from field signals such as Core Web Vitals, then uses browser performance traces to connect a poor result to a specific resource, rendering task, or interaction. When field data is unavailable, static findings remain hypotheses rather than measured regressions. That distinction helps keep a plausible code smell from being presented as the cause of a user's delay.

After identifying a measured bottleneck, the guide focuses changes on the relevant code or assets and calls for equivalent lab measurements before and after. It treats field verification as pending until enough new user data arrives. The cited budget values are starting guardrails, not universal pass criteria; preserve the product's own targets and representative device, network, and journey conditions. This is the broad starting point for a web performance investigation, not a separate specialist for every frontend framework.

Workflow Highlights

  • Field data for prioritizing user impact
  • Browser traces for cause-focused diagnosis
  • Comparable before-and-after lab checks
  • Hypotheses labeled when runtime evidence is unavailable
Before you use it

Check whether the LCP image is being lazy-loaded before copying examples; content-visibility is not virtualization, and budgets need workload-specific targets.

Install this skill
$npx skills add https://github.com/addyosmani/web-quality-skills --skill performance
addyosmani/web-quality-skills skills.sh listing
Works with + more

Go diagnosis, remediation, and measurement

The two Go cards intentionally cover different phases. Measure a workload or interpret profiles with the benchmark specialist; use the optimization guide only after evidence points to a Go bottleneck. Keep toolchain, CPU, workload, and measurement conditions consistent when comparing results.

GitHub repository preview card for samber/cc-skills-golang

golang-performance

38.7K installs SamberGo applications and services

Best for: A measured Go CPU, allocation, GC, I/O, or algorithm bottleneck

Approach: Profile, form one hypothesis, change one thing, and remeasure

This Go-specific remediation guide begins after measurement identifies a bottleneck. Its method is to define the metric, establish a baseline, diagnose the relevant hot path, make one targeted change, then compare again. The referenced patterns span allocations and memory layout, CPU work, garbage collection, I/O and networking, caching, and algorithmic complexity. It also asks the investigator to rule out external waits first, since a slow database or upstream service will not be fixed by reducing allocations in the caller.

Use it to turn profile or benchmark evidence into a constrained code change, not as permission to tune every plausible hotspot. The examples discuss specific runtime and library behavior, so check the project's Go version, workload, semantic requirements, and lifecycle before adopting one. Numeric examples are not portable results. The source lists benchstat as a dependency and uses an unpinned `@latest` install; review dependency policy before adding it. Keep production profiling and telemetry within the service owner's approval.

Workflow Highlights

  • Remediation follows measured evidence
  • Allocation, CPU, GC, I/O, and caching paths
  • One-change-at-a-time comparison discipline
  • External bottleneck check before Go-level tuning
Before you use it

Do not treat sample gains as portable; review the unpinned benchstat dependency and get permission before production profiling.

Install this skill
$npx skills add https://github.com/samber/cc-skills-golang --skill golang-performance
samber/cc-skills-golang skills.sh listing
Works with + more
GitHub repository preview card for samber/cc-skills-golang

golang-benchmark

36.5K installs SamberGo 1.24+ features where available; version-check examples

Best for: Go benchmark design, pprof interpretation, and controlled performance comparisons

Approach: Design repeatable benchmarks, profiles, comparisons, and regression checks

This is the measurement lane rather than the remediation catalog. It covers benchmark structure, setup and timing, allocation reporting, pprof and execution traces, statistical comparison with benchstat, compiler diagnostics, and CI regression workflows. The references also discuss noisy benchmark runners and production metrics. Use the narrowest relevant path: a benchmark can compare one operation, a profile can locate work, and a trace can reveal when goroutines wait or the runtime schedules work.

Treat source claims as material to verify, not commands to copy blindly. A `_bench_test.go` file does not prevent ordinary tests from running with `go test -bench=.`; add an appropriate test-name filter such as `-run='^$'` when the intent is benchmarks only. `b.Elapsed()` is valid after `b.Loop()` finishes; do not copy the source's restriction to use it only inside the loop. Record Go version, CPU, workload, and conditions, collect repeated samples, and do not infer significance from a single run. Its `cob` setup uses `git reset` and is described for CI, so inspect it before any use.

Workflow Highlights

  • Benchmark design, pprof, and execution traces
  • Repeated samples and benchstat comparisons
  • Compiler and CI regression references
  • Version and runner context for interpreting results
Before you use it

Check the Go version for `b.Loop()` support, filter ordinary tests with `-run='^$'`, and inspect the reset-based `cob` workflow before use.

Install this skill
$npx skills add https://github.com/samber/cc-skills-golang --skill golang-benchmark
samber/cc-skills-golang skills.sh listing
Works with + more

Runtime, interface, and motion performance

These workflows are scoped to a language or UI runtime. Use them for code-level review and investigation in that ecosystem, then verify any suspected runtime cause with a representative profile or platform tool. A source-level pattern alone does not establish a user-visible regression.

GitHub repository preview card for wshobson/agents

python-performance-optimization

34.4K installs wshobsonPython applications

Best for: Slow Python code, CPU or memory hotspots, and data-processing paths

Approach: Profile Python hotspots and choose a remedy for the measured cost

This Python workflow pairs profiling with practical optimization choices. It uses built-in cProfile and pstats for an initial view, then describes optional line-level or memory tools when the question needs finer attribution. The guidance covers Python-specific costs in data structures, iteration, vectorization, concurrency, I/O, caching, and database calls. Begin with a representative input and the symptom that matters, because a faster micro-operation does not necessarily reduce request latency or peak memory for the real workload.

Use profile evidence to select a targeted change and keep the original behavior intact. Vectorized operations can add conversion costs, caches need correct invalidation, and parallel execution can increase memory or coordination overhead. The examples are techniques to test, not proof of a speedup. Built-in tooling is the lower-friction start; installing optional profilers or attaching to a production process needs project and operator approval. Compare equivalent runs with the same data shape and environment before reporting a result.

Workflow Highlights

  • cProfile and pstats for initial attribution
  • Optional line and memory profiling paths
  • Python data, vectorization, and I/O considerations
  • Remedies tied back to representative workloads
Before you use it

Use built-ins first; get approval before installing optional profilers or attaching to production, and include retained state in memory checks.

Install this skill
$npx skills add https://github.com/wshobson/agents --skill python-performance-optimization
wshobson/agents skills.sh listing
Works with + more
GitHub repository preview card for ibelick/ui-skills

fixing-motion-performance

24.5K installs ibelickBrowser animation and rendering pipelines

Best for: Stuttering transitions, scroll-linked animation, or costly blur effects

Approach: Trace scheduling, layout, paint, and compositing around motion

This focused browser workflow investigates motion that stutters, scrolls unevenly, or causes avoidable rendering work. It directs attention to layout thrashing, compositor-friendly properties, scroll-linked effects, blur, and how animation work is scheduled. For a concrete interaction, inspect whether scripts repeatedly read and write layout, whether a scroll handler polls more often than needed, or whether an animation keeps requesting frames after its useful work has ended.

The guidance helps select a technique that fits the interaction, including batching DOM reads and writes, using browser scroll or visibility APIs where appropriate, and treating layer promotion as a measured option. It does not make a layer or compositor property a guarantee of smoother frames. Validate the result in the actual browser and on representative devices, because memory pressure, raster cost, refresh rate, and browser heuristics can change the outcome. Choose the broader web card for loading and field metrics instead.

Workflow Highlights

  • Layout and paint causes of animation jank
  • Scroll-linked scheduling and browser APIs
  • DOM read/write batching
  • Device-level verification of motion changes
Before you use it

Layer promotion consumes memory and may not reduce frame time; profile the same animation on the target browser and device.

Install this skill
$npx skills add https://github.com/ibelick/ui-skills --skill fixing-motion-performance
ibelick/ui-skills skills.sh listing
Works with + more
GitHub repository preview card for Dimillian/Skills

swiftui-performance-audit

9.5K installs DimillianSwiftUI and Apple platform tooling

Best for: Slow SwiftUI rendering, scrolling, excessive updates, CPU, or memory concerns

Approach: Inspect SwiftUI update causes, then compare a same-interaction Instruments trace

This audit focuses on SwiftUI's update and rendering behavior. It begins by recording the interaction, device, operating-system version, and build conditions, then examines view identity, state dependencies, and update fanout for plausible causes. If code review is insufficient, the workflow calls for a user-run Instruments profile of the same interaction. Keeping a clear separation between code suspicion and trace evidence makes the resulting report more useful than a list of stylistic recommendations.

The supporting materials cover profiling intake, report structure, common code smells, and Apple's performance guidance. Apply a proposed change against the deployment target and the actual device conditions. A view pattern that looks expensive is not automatically the cause of a runtime problem, and precomputing data can introduce stale state when invalidation is incomplete. This card is specific to SwiftUI; it is not a general iOS profiling recipe and does not run Instruments or certify performance on the user's behalf.

Workflow Highlights

  • Interaction and device context captured first
  • Identity, state dependency, and update-fanout review
  • User-run Instruments evidence when needed
  • Report structure separates suspicion from observation
Before you use it

Run Instruments on the target OS and device; validate invalidation if a proposed fix precomputes view data.

Install this skill
$npx skills add https://github.com/dimillian/skills --skill swiftui-performance-audit
Dimillian/Skills skills.sh listing
Works with + more

Database and graphics workloads

Some performance work is defined by the engine rather than the application language. Choose Postgres guidance for database authoring and operations; choose PixiJS guidance only for a Pixi v8 renderer. Validate recommendations against the actual data, engine release, device, and operational constraints.

GitHub repository preview card for supabase/agent-skills

supabase-postgres-best-practices

437.0K installs SupabasePostgres on any host; verify provider and version

Best for: Postgres schema or query changes and database performance diagnosis

Approach: Postgres rules for schema, RLS, query plans, connections, and locking

This guide is a broad Postgres rulebook, not merely a query profiler. It applies to schema and type choices, migrations, row-level security, indexes, triggers, database functions, queues, vector search, and operational concerns. For performance work it connects query shapes with EXPLAIN plans, indexes, connection limits, pooling, prepared statements, and lock behavior. Its references cover missing, composite, partial, and index-type decisions, plus monitoring with EXPLAIN ANALYZE and pg_stat_statements.

Use the guidance before changing database structures or SQL, then check actual provider behavior, version, schema, workload, access policy, write cost, and rollback path. Indexes can improve reads while adding write and storage cost, and a general pattern is not a substitute for a representative plan. `EXPLAIN ANALYZE` executes the statement, so understand side effects and resource cost before running it, especially on production data. Open the upstream reference for the specific query, index, connection, or RLS question you are investigating.

Workflow Highlights

  • Schema, migration, and RLS rules as well as performance
  • Index and query-plan guidance
  • Connection and lock management references
  • Postgres portability with provider-specific verification
Before you use it

Confirm provider, schema, workload, and write cost; EXPLAIN ANALYZE executes the query and needs a safe target.

Install this skill
$npx skills add https://github.com/supabase/agent-skills --skill supabase-postgres-best-practices
supabase/agent-skills skills.sh listing
Works with + more
GitHub repository preview card for pixijs/pixijs-skills

pixijs-performance

5.1K installs PixiJSPixiJS v8; confirm APIs against the installed release

Best for: A PixiJS v8 application with measured frame-time or GPU-memory pressure

Approach: PixiJS v8 resource, batching, culling, and GPU diagnosis

This specialist card covers PixiJS v8 rendering concerns such as texture and object lifecycle, batching, culling, garbage collection, preparation, dynamic text, and GPU resource tradeoffs. Its value is in engine-specific guidance that a general browser profile may not explain. Start from the observed frame-time or memory symptom, then inspect the relevant scene and API path rather than applying every pooling, caching, or teardown pattern to every application.

The examples require qualification against the installed PixiJS release and the app's ownership model. `releaseGlobalResources` is an available API, not a mandatory teardown step when resources are shared; same-value text writes may be no-ops; alternating object types do not imply a fixed draw count. One preparation example does not establish that its texture is attached or eliminate a first-frame hitch. Validate actual rendering on representative devices, and do not treat sample counts or cache toggles as universal performance laws.

Workflow Highlights

  • Pixi v8 texture, GC, and object lifecycle topics
  • Batching, culling, and dynamic-text guidance
  • GPU memory and render-path tradeoffs
  • Examples checked against real application ownership
Before you use it

Check APIs against the installed Pixi release; preserve shared resources and measure draw behavior rather than assuming fixed counts.

Install this skill
$npx skills add https://github.com/pixijs/pixijs-skills --skill pixijs-performance
pixijs/pixijs-skills skills.sh listing
Works with + more

Existing heap snapshots and .NET trace collection

These are artifact workflows with different phases. The V8 card analyzes snapshots that already exist; the .NET card helps choose and collect a trace for later analysis. Neither should be mistaken for an automatic profiler, and both can produce sensitive diagnostic files that need an approved local destination and handling plan.

GitHub repository preview card for microsoft/vscode

heap-snapshot-analysis

150 installs MicrosoftV8 heap snapshot format; analysis requires local tooling

Best for: Before-and-after V8 .heapsnapshot analysis when snapshots already exist

Approach: Compare existing V8 snapshots and inspect bounded retainer paths

This workflow starts with V8 `.heapsnapshot` files already supplied or captured through another process. Its helpers parse snapshots, compare object groups, and trace reverse retainers while the investigator records what changed. It does not capture a snapshot, establish that a leak exists, or provide a universal JavaScript memory analyzer. The Microsoft examples illustrate VS Code services and object names, so treat them as product-specific context rather than V8 invariants.

The parser eagerly reads and expands the complete snapshot, so memory use can grow substantially; the streaming helper supplies parsing primitives, not a complete streaming comparison or retainer engine. Retainer searches are bounded by depth and attempt limits, exclude weak edges, and stop at synthetic nodes, so an endpoint or missing path is not proof of a true root or absence of a leak. Before-and-after object-ID matching is meaningful only for snapshots from the same V8 isolate when IDs persist. Comparison reports counts and self-size, not dominator or retained-size analysis. Snapshot strings and findings can contain sensitive application data; keep artifacts local, avoid raw uploads or commits, and verify helper paths in the installed layout before use.

Workflow Highlights

  • Consumes snapshots that already exist
  • Object-group comparison and reverse-retainer helpers
  • Eager parser memory use and bounded retainer search
  • Local handling for potentially sensitive artifacts
Before you use it

Do not treat the eager parser as large-file streaming or a retainer path as leak proof; keep raw snapshots private and verify installed helper imports and scratchpad/output paths before use.

Install this skill
$npx skills add https://github.com/microsoft/vscode --skill heap-snapshot-analysis
microsoft/vscode skills.sh listing
Works with + more
GitHub repository preview card for dotnet/skills

dotnet-trace-collect

3.0K installs .NET.NET Framework and modern .NET across supported environments

Best for: Authorized .NET incident trace collection with a clear analysis handoff

Approach: Choose a collector from the runtime, OS, deployment, and symptom

This guide helps select and run a .NET diagnostic collection workflow based on the symptom, runtime version, operating system, container or Kubernetes shape, privilege, and reproduction context. It explains tradeoffs among tools such as dotnet-trace, PerfView, perfcollect, and dotnet-monitor, then emphasizes recording the target process and the collection window. The intended output is a diagnostic artifact plus enough environment and command context for a separate analysis step.

Collection is not analysis, benchmarking, or proof that an artifact is complete or representative. Some paths are privileged: Linux machine-wide collection can require root and kernel support, container perfcollect examples request broad capabilities, and Windows PerfView may require administrator rights. Production monitoring should use authentication and restricted access, and diagnostic files may contain sensitive symbols or request context. Obtain incident-owner authorization, bound overhead and duration, verify the PID, choose a protected local destination, and define stop and cleanup steps before capture.

Workflow Highlights

  • Collector selection by runtime, OS, and deployment
  • Explicit collection context and handoff details
  • Privilege and overhead boundaries across tools
  • Authenticated monitoring and protected artifact handling
Before you use it

Confirm owner approval, target PID, privilege, duration, overhead, and protected output path; keep monitor authentication enabled and quote URLs that contain query parameters.

Install this skill
$npx skills add https://github.com/dotnet/skills --skill dotnet-trace-collect
dotnet/skills skills.sh listing
Works with + more

How to collect useful performance evidence

Effective performance work depends on collecting the right evidence before changing code. The following guidelines explain how to evaluate web vitals, language runtimes, databases, graphics, and diagnostic traces.

1. Web vitals, rendering pipelines, and motion jank

Field data describes loading, responsiveness, and visual stability. Lab traces help reproduce resource delays and main-thread stalls.

Prefer transform and opacity for motion when their visual effect fits. Check a browser trace before adding will-change; additional compositor layers can increase memory and don't automatically fix jank.

2. Language runtimes: allocation, profiling, and view graphs

Use pprof to locate CPU/allocation hotspots and benchstat to compare repeated measurements. go test -bench=. also runs matching Test functions unless -run filters them; use -run='^$' when you intend benchmark-only execution. Check installed Go version before selecting benchmark APIs.

SwiftUI audit highlights update fanout, identity, and work in body; confirm suspected bottlenecks with user-run Instruments traces.

3. Database execution plans and graphics pipeline batching

Start with EXPLAIN when you need an estimated plan. EXPLAIN (ANALYZE, BUFFERS) executes the statement: use it only on an approved workload where writes and locks are acceptable. Compare query plans with the connection, RLS, and index-write costs of your own workload.

PixiJS can batch compatible sprites with multiple textures. Check actual batch breaks, texture uploads, and culling costs rather than assuming every texture change creates a draw call. Shared resources need an owner before cleanup.

4. V8 heap forensics and incident trace collection

The eager parser loads the snapshot into memory. Bounded retainer searches limit graph exploration, not parser RAM. Constructor counts and self-size deltas are clues, not retained-size or leak proof; compare object IDs only across snapshots from the same V8 isolate. Keep raw private artifacts local and out of commits.

Pick the collector for the runtime and OS. Agree on PID, window, event providers, and tolerable overhead before capture. Machine-wide/root collection is conditional on the target and owner approval, not a default. Keep artifacts protected locally and keep monitor authentication enabled.

Manage performance skills with LazySkills

LazySkills lets you browse and manage skills for coding agents. Install only the performance skill you need for the current task.

curl -fsSL https://lazyskills.sh/install | sh
Learn more about LazySkills skill management

Frequently Asked Questions

Which performance skill should I start with?

Choose by workload and task phase. Start with the broad web card for a site, use the Go benchmark card for measurement and the Go optimization card after a bottleneck is measured, and select runtime-specific cards only when the application matches. The chooser above routes common cases.

Do these skills prove that an optimization will work?

No. They are workflow guidance from pinned source revisions, not performance guarantees. Use representative workloads and tools, compare equivalent conditions, and report uncertainty. Field verification, device testing, database plans, and trace analysis each answer different questions.

Can I run the database and diagnostic collection examples in production?

Only with the relevant owner's approval and an understood target, permission, workload, resource cost, and output destination. EXPLAIN ANALYZE executes a query; trace and snapshot artifacts can contain sensitive data. Prefer bounded, protected, local handling and a defined cleanup plan.

Related guides

More curated skill catalogs to keep browsing.

by Alvin