Agent skill

Analyze Owl Capture

by OwlcatGames in OwlcatGames/OwlcatMonoProfiler

Analyze a saved .owl memory capture (find leaks, growth, top allocators) using the owlquery serve-mode HTTP API.

MITAuto-check passedBackend & APIs

Install Analyze Owl Capture

skills CLI
$ npx skills add OwlcatGames/OwlcatMonoProfiler --skill analyze-owl-capture -a claude-code

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

GitHub CLI
$ gh skill install OwlcatGames/OwlcatMonoProfiler analyze-owl-capture --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/OwlcatGames/OwlcatMonoProfiler.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/analyze-owl-capture .claude/skills/analyze-owl-capture && 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
analyze-owl-capture
GitHub stars
114
Token cost
~1.1k tokens
SKILL.md length
525 words
Files
1
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Analyze a saved .owl memory capture (find leaks, growth, top allocators) using the owlquery serve-mode HTTP API.

  • Works in 4 steps: Always use serve mode — opening a… → Replays cost time; ranges are your… → Reuse ranges. The server caches the last… → …
  • Asked to analyze a capture
  • SKILL.md covers Rules, Workflow: "where does memory…, Symbolicating native frames and Reading the output
  • Calls curl

What it does

Analyze Owl Capture is an agent skill from OwlcatGames/OwlcatMonoProfiler. Analyze a saved .owl memory capture (find leaks, growth, top allocators) using the owlquery serve-mode HTTP API. Use when asked to analyze a capture, investigate memory growth/leaks in a profiling session, or answer questions about what a game allocated.

Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering REST APIs. The licence is MIT.

When your agent uses it

  • Asked to analyze a capture
  • Investigate memory growth/leaks in a profiling session
  • Answer questions about what a game allocated

Example prompts

  • “/analyze-owl-capture”

Workflow steps

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

  1. Always use serve mode — opening a capture unpacks gigabytes to %TEMP%;
  2. Replays cost time; ranges are your budget. Any live-objects query
  3. Reuse ranges. The server caches the last TWO replays by exact
  4. Requests are sequential: a long replay delays the next query — use a

What it can do on your machine

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

    • curl

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

  • Network

    No URLs in SKILL.md. Its commands use curl, which can reach the network depending on how they are called.

    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

Analyze Owl Capture loads about 1.1k tokens when it runs. Until then it costs about 69 tokens; SKILL.md has 525 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~69
When it runs · the whole SKILL.md, loaded when a task matches
~1.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); files beside SKILL.md are not scanned.

SKILL.md

The full file from OwlcatGames/OwlcatMonoProfiler at commit c5a4b80, republished under its MIT licence (© OwlcatGames). 525 words, ~1,112 tokens.

Download SKILL.mdSave it as .claude/skills/analyze-owl-capture/SKILL.md (or your agent's skills folder).
name
analyze-owl-capture
description
Analyze a saved .owl memory capture (find leaks, growth, top allocators) using the owl_query serve-mode HTTP API. Use when asked to analyze a capture, investigate memory growth/leaks in a profiling session, or answer questions about what a game allocated.

Analyzing an .owl capture

owl_query answers aggregate questions about a capture as JSON. Full reference: doc/owl_query.md. Binary: build\owl_query\Release\owl_query.exe (build target owl_query if missing).

Rules

  1. Always use serve mode — opening a capture unpacks gigabytes to %TEMP%; one-shot mode pays that on every query.
    • Start in background: owl_query <capture.owl> serve --port 8890
    • Wait for the ready line { "serving": ... } on stdout (a 250 GB capture takes ~2 min to open).
    • Query with any HTTP client: curl "http://127.0.0.1:8890/top-types?from=A&to=B"
    • Always finish with curl http://127.0.0.1:8890/shutdown — it releases the multi-GB temp extraction.
  2. Replays cost time; ranges are your budget. Any live-objects query (/top-types, /growth, /callstacks, /objects) replays its frame range at roughly 6–8 M events/s (measured: ~80 M events ≈ 12 s; 6.5 B events ≈ 13 min). /summary and /frames are SQL-backed and instant. Narrow the range before reaching for replay-backed queries.
  3. Reuse ranges. The server caches the last TWO replays by exact (from,to). Drill down with identical ranges: top-types → callstacks → objects over the same from/to costs one replay. growth reuses a cached window too.
  4. Requests are sequential: a long replay delays the next query — use a generous HTTP timeout instead of retrying (retries just queue up).

Workflow: "where does memory go / what leaks?"

  1. /summary — frame range, event counts, heap peaks. Sanity-check scale before anything else.
  2. /frames?buckets=200 — locate where tracked_heap_bytes (or committed_bytes) grows or spikes.
  3. /top-types?from=A&to=B over the growth region — what accumulates. "Live" = allocated in range, not freed in range → leak candidates.
  4. /growth?base_from=..&base_to=..&from=..&to=.. — compare two comparable windows (same level, same activity); types with positive delta_bytes that persist across windows are the real suspects.
  5. /callstacks?type=<suspect>&from=A&to=B (same range as step 3 — cache hit) — the allocation sites responsible.
  6. /objects?type=<suspect> for concrete instances if needed.
  7. /shutdown.
Show full SKILL.md (240 more words)Show less

Symbolicating native frames

Native frames show as Module.dll+0xRVA until a PDB search path is set. When the analysis leads into native memory (Unity Heap, HeapAlloc, VirtualAlloc types, or stacks dominated by raw UnityPlayer.dll+0x... frames), symbolicate before drawing conclusions:

  1. Ask the user where the build's PDBs are — do NOT guess or scan the disk. Typically it's the game build directory (containing the exe, UnityPlayer*.pdb, and for IL2CPP GameAssembly.pdb). Ask for the build that matches the capture: mismatched PDBs resolve to wrong names.
  2. curl "http://127.0.0.1:8890/symbols?paths=<url-encoded dirs>" (';'-separated). Poll /symbols/status every few seconds until pending is 0 (about a minute for a large capture — big PDBs load once).
  3. Re-run /callstacks — same range hits the replay cache, and the text is now resolved. If a response carries symbolication_pending, it raced the resolver: wait and re-request.
  4. Check unresolved_modules in /symbols/status. Windows system DLLs (ntdll.dll, KERNEL32.DLL, video drivers…) being listed is normal — ignore them. If a module that matters is listed — the game exe, UnityPlayer.dll, GameAssembly.dll, mono-2.0-bdwgc.dll, or a game plugin — tell the user which modules stayed unresolved and ask where their PDBs are rather than analyzing raw addresses.

Reading the output

  • Type names mix managed (System.String) and native hook labels (Unity Heap, HeapAlloc, VirtualAlloc (commit)). VirtualAlloc sizes are reserve/commit ranges — expect few, huge "objects".
  • Native stack frames appear as Module.dll+0xRVA until symbolicated (see above).
  • type_id/callstack_id are stable within one capture only.
  • Numbers match the UI exactly (same client library, same queries).

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

Files

Just SKILL.md in .claude/skills/analyze-owl-capture of OwlcatGames/OwlcatMonoProfiler.

Open the folder on GitHubat commit c5a4b80

Compare with similar skills

Analyze Owl Capture 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.

Analyze Owl Capture compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Analyze Owl Capture this skillOwlcatGames/OwlcatMonoProfiler114—~1.1kAutomated safety check: PassMIT
Paperclippaperclipai/paperclip99k—~9.6kAutomated safety check: PassMIT
Nodejs Backend Patternsever-works/ever-works16218 repos~4kAutomated safety check: PassAGPL-3.0
OpenAPI to MCP Servermcp-use/mcp-use11k—~5.2kAutomated safety check: PassApache-2.0
Use Yaakmountain-loop/yaak19k—~1.9kAutomated safety check: PassMIT
API DesignerJeffallan/claude-skills12k1 repos~2kAutomated safety check: PassMIT

Similar skills

  • Paperclip

    paperclipai/paperclip

    Interact with the Paperclip control plane API for task coordination and governance.

    99k GitHub stars~9.6k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Nodejs Backend Patterns

    ever-works/ever-works

    Build production-ready Node.js backend services with Express/Fastify, implementing middleware patterns, error handling, authentication, database integration, and API design best practices.

    162 GitHub starsUsed in 18 repos~4k tokens
    Backend & APIsAuto-check passed
  • OpenAPI to MCP Server

    mcp-use/mcp-use

    Turns an OpenAPI or Swagger spec into an MCP server with the mcp-use TypeScript SDK, mapping each operation to a tool, wiring auth, testing and deploying.

    11k GitHub stars~5.2k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Use Yaak

    mountain-loop/yaak

    A skill your agent uses when the user mentions Yaak, a Yaak workspace, or the yaak command, or asks to call, hit, or smoke test HTTP/REST endpoints, save or organize API requests for reuse or manual…

    19k GitHub stars~1.9k tokensUpdated 4 days ago
    Backend & APIsAuto-check passed
  • API Designer

    Jeffallan/claude-skills

    Designs REST and GraphQL APIs from resource modeling to an OpenAPI 3.1 contract, with versioning, pagination and RFC 7807 error handling.

    12k GitHub starsUsed in 1 repo~2k tokens
    Backend & APIsAuto-check passed
  • Covers the RuView `wifi-densepose` command line binary, its Axum REST API and the WebAssembly builds for browsers and ESP32, for embedding or scripting RuView.

    97k GitHub stars~1.2k tokensUpdated yesterday
    Backend & APIsAuto-check: notes

Categories

Questions about Analyze Owl Capture

What does Analyze Owl Capture do?

Analyze a saved .owl memory capture (find leaks, growth, top allocators) using the owlquery serve-mode HTTP API. Analyze Owl Capture is an agent skill from OwlcatGames/OwlcatMonoProfiler.owl memory capture (find leaks, growth, top allocators) using the owlquery serve-mode HTTP API.

When should I use Analyze Owl Capture?

Analyze Owl Capture fits situations like: asked to analyze a capture; investigate memory growth/leaks in a profiling session; answer questions about what a game allocated.

How do I install Analyze Owl Capture in Claude Code?

Run `npx skills add OwlcatGames/OwlcatMonoProfiler --skill analyze-owl-capture -a claude-code`. Or copy the skill folder (.claude/skills/analyze-owl-capture in OwlcatGames/OwlcatMonoProfiler) into .claude/skills/analyze-owl-capture in your project. Claude Code loads it when a task matches its description.

How do I install Analyze Owl Capture in Codex?

Run `npx skills add OwlcatGames/OwlcatMonoProfiler --skill analyze-owl-capture -a codex`. Or copy the skill folder (.claude/skills/analyze-owl-capture in OwlcatGames/OwlcatMonoProfiler) into .agents/skills/analyze-owl-capture in your project. Codex loads it when a task matches its description.

Can I use Analyze Owl Capture 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 OwlcatGames/OwlcatMonoProfiler --skill analyze-owl-capture -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/analyze-owl-capture, .gemini/skills/analyze-owl-capture, .github/skills/analyze-owl-capture and .opencode/skills/analyze-owl-capture in your project.

What does Analyze Owl Capture need to run?

Going by SKILL.md and its folder, Analyze Owl Capture needs the command-line tools its instructions call (curl).

Does Analyze Owl Capture access the network?

SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Analyze Owl Capture 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 Analyze Owl Capture use?

Analyze Owl Capture 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 Analyze Owl Capture use?

About 1.1k tokens (SKILL.md is roughly 4.4k 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 Analyze Owl Capture?

Skills that share tags, products or a category with Analyze Owl Capture: Paperclip (paperclipai/paperclip, 99k stars), Nodejs Backend Patterns (ever-works/ever-works, 162 stars), OpenAPI to MCP Server (mcp-use/mcp-use, 11k stars) and Use Yaak (mountain-loop/yaak, 19k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Analyze Owl Capture?

OwlcatGames (a GitHub organization) maintains it in OwlcatGames/OwlcatMonoProfiler, which has 114 GitHub stars. The repository was last updated on August 25, 2026.

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