Install the "capemon-developer" agent skill from https://github.com/kevoreilly/capemon/tree/capemon/.gemini/skills/capemon-developer into .claude/skills/capemon-developer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "capemon-developer", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add kevoreilly/capemon --skill capemon-developer -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "capemon-developer" agent skill from https://github.com/kevoreilly/capemon/tree/capemon/.gemini/skills/capemon-developer into .agents/skills/capemon-developer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "capemon-developer", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add kevoreilly/capemon --skill capemon-developer -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "capemon-developer" agent skill from https://github.com/kevoreilly/capemon/tree/capemon/.gemini/skills/capemon-developer into .cursor/skills/capemon-developer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "capemon-developer", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add kevoreilly/capemon --skill capemon-developer -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "capemon-developer" agent skill from https://github.com/kevoreilly/capemon/tree/capemon/.gemini/skills/capemon-developer into .gemini/skills/capemon-developer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "capemon-developer", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add kevoreilly/capemon --skill capemon-developer -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "capemon-developer" agent skill from https://github.com/kevoreilly/capemon/tree/capemon/.gemini/skills/capemon-developer into .github/skills/capemon-developer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "capemon-developer", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add kevoreilly/capemon --skill capemon-developer -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "capemon-developer" agent skill from https://github.com/kevoreilly/capemon/tree/capemon/.gemini/skills/capemon-developer into .opencode/skills/capemon-developer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "capemon-developer", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
capemon-developer
GitHub stars
153
Token cost
~4.5k tokens
SKILL.md length
2,086 words
Files
2 (incl. scripts)
Skills in repo
1
Repo updated
First seen
Licence
GPL-3.0
At a glance
Expert capability for navigating, modifying, and extending the capemon malware monitoring codebase.
Works in 8 steps: API Hooking & Monitoring → Debugging & Tracing → Automated Unpacking → …
Tasks that involve Responsive design
SKILL.md covers Core Capabilities, Technical Foundations, Architectural Idioms… and Engineering & Documentation…, plus 2 more sections
Runs Python scripts from its folder; calls python and git
What it does
Capemon Developer is an agent skill from kevoreilly/capemon. Expert capability for navigating, modifying, and extending the capemon malware monitoring codebase. Includes deep knowledge of Windows API hooking, PE structures, and the CAPEv2 sandbox architecture.
Its SKILL.md is about 4.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/agent_worktree.py`).
It works with Windows. The repository describes itself as: capemon: CAPE's monitor. The licence is GPL-3.0.
When your agent uses it
Tasks that involve Responsive design
Example prompts
“/capemon-developer”
Requirements
Python 3
Workflow steps
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 78e6742. 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
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python
git
From the folder's file list and the shell code blocks in SKILL.md.
Network
No URLs in SKILL.md. Its commands use git, 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
Capemon Developer loads about 4.5k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 2,086 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~54
When it runs· the whole SKILL.md, loaded when a task matches
~4.5k
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); the scripts in this folder are not scanned.
Download SKILL.mdSave it as .claude/skills/capemon-developer/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
capemon-developer
description
Expert capability for navigating, modifying, and extending the capemon malware monitoring codebase. Includes deep knowledge of Windows API hooking, PE structures, and the CAPEv2 sandbox architecture.
Capemon Skills
capemon is a monitoring and instrumentation engine designed for malware analysis, configuration extraction, and payload recovery. It acts as the core injection component for the CAPEv2 sandbox.
Core Capabilities
1. API Hooking & Monitoring
capemon implements an extensive hooking engine derived from cuckoomon-modified, providing deep visibility into application behavior across multiple subsystems:
Process & Thread Management: Monitoring creation, termination, and manipulation of processes and threads.
File System Operations: Tracking file creation, deletion, reading, and writing.
Registry Activity: Capturing configuration changes and persistence mechanisms.
Network Communication: Intercepting socket operations, DNS queries, and high-level protocol activity (HTTP, etc.).
Cryptography: Extracting keys and monitoring encryption/decryption routines.
Synchronization & Services: Monitoring mutexes, events, and Windows Service interactions.
Windows Management Instrumentation (WMI): Intercepting WMI queries used for anti-analysis or reconnaissance.
Scripting Engines: Specific hooks for VBScript and other language runtimes.
2. Debugging & Tracing
capemon implements an in-process debugger independent of Windows debugging interfaces, but harnessing the capabilities of the processor:
Hardware breakpoints: Four breakpoints bp0-bp3 that can be set on execute, read or write
Software breakpoints: Unlimited INT3 or 'CC' breakpoints overwriting instruction byte
Single-step: Tracing allows instruction-level capture enhanced with configurable step-over, trace-length, register changes, function names, strings & more
Actions: Configurable actions allow control flow manipulation with skipped or taken jumps, arbitrary register changes or jumps, string capture, dumps, scans & more
Programmable: Debugger configurable either on submission with simple text options or via dynamic YARA signature scans during unpacking or detonation
Integration: Hooking engine integrated with optional behavior log output & breakpoints set on return from hooked APIs (break-on-return)
Stealth: Debugger does not rely upon Windows interface and thus evades detection by a slew of interface-related indicators, with additional stealth from hook-based protections
3. Automated Unpacking
'capemon' implements an unpacking engine using a combination of techniques
Memory region tracking: Regions of memory revealed through indicators of execution, allocation or protection are tracked
Early capture: Multiple possible triggers allow payload capture at earliest moment often resulting in working unpacked samples
Injection capture: Strong coverage of injection techniques for inter-process payload capture
PE unmapping: Integrated Scylla engine allows capture of memory or file-mapped PE images in memory
Shellcode dumping: Shellcode & non-PE regions equally captured as payloads
Architectural Idioms (MANDATORY - read before designing any feature)
capemon has one established way of doing each of the following. New code MUST plug into these paths; parallel mechanisms will be rejected in review.
A. Detection = YARA, not C scanners
Byte-pattern, magic-value or header detection is a YARA rule. Monitor-wide detections go in the built-in InternalYara[] string (CAPE/YaraHarness.c); family/config detections go in the analyzer yara directory.
Do NOT write for (p = start; p < end; p++) if (*(DWORD*)p == MAGIC) loops. Express header validation in the rule condition (uint32(@s[i] + N), for any i in (1..#s) : (...)).
B. Where detection runs = the unpacking engine's region scans
CAPE_post_init() runs BEFORE unpacking. Anything packed (UPX, crypters, shellcode loaders) is not yet visible there.
YaraScan(Address, Size) is already invoked on the initial image (CAPE.c), on tracked regions when they are executed or change protection (ProcessTrackedRegion etc. in CAPE.c), and on debugger-driven scans (Trace.c). A rule added to the rule set fires on all of these automatically.
Never tie a feature to the ImageBase global or GetModuleHandle(NULL) alone.
C. Action dispatch = cape_options metadata
A rule triggers behaviour via meta: cape_options = "...". YaraCallback parses it with user_data = base of the scanned region, and ParseOptionLine resolves $string references to match addresses.
A new action is a new keyword handled in YaraCallback, which calls the feature with an explicit address (region base and/or base + Match->offset).
Features take the base address as a parameter: no globals, and no re-discovery of what YARA has already located.
Regions are re-scanned; expect repeated hits on the same region and make features idempotent (dedup by address).
D. Debugger ownership
Each breakpoint owns its handler: SetBreakpoint(..., Callback) for hardware breakpoints, SetSoftwareBreakpoint(BPs, Address, Callback) for INT3.
NEVER modify SoftwareBreakpointHandler, SoftwareBreakpointCallback, SingleStepHandler or CAPEExceptionFilter to dispatch a feature. Doing so hijacks every other debugger consumer (traces, YARA bp options, syscall breakpoints).
Single-step state is per thread; do not overwrite the global SingleStepHandler to service a feature.
E. Behaviour log: one LOQ_* call per API call or breakpoint hit
Every hook or breakpoint emits at most ONE LOQ_* record per hit. Gather every relevant field first (function name, arguments, buffers, resolved names), then emit them together in a single call with a multi-field format string (e.g. "sSS").
Do NOT log a generic "function called" record and then one record per parameter. Unreadable arguments are logged as empty or zero-length values inside the same record.
A call that spans entry and return (e.g. output buffers) logs once, at the point where the data is available (usually on return). Stay silent at entry.
Bulk metadata (module info, file lists, dependency trees) is one record per object, not one per item. Filter out noise (stdlib, dependencies already listed elsewhere) and cap the size.
DebugOutput goes to the debug log, not the behaviour log, but it should not emit per-item floods either.
F. Design review checklist (answer before writing code)
Does an existing mechanism already do this? Check YaraScan callers, YaraCallback options, SetBreakpoint*, tracked regions, DumpRegion.
Does it work on a UPX-packed sample? On a non-PE (shellcode) region?
Are addresses passed as arguments rather than read from globals?
Does it modify a shared handler? If yes, redesign.
Is it gated by a config option and documented in docs/configuration.md?
Does each hit produce at most one behaviour log record?
Case study: Go hooking (kevoreilly review, PR #181)
Rejected:GoRecoverSymbols(GetModuleHandle(NULL)) called from CAPE_post_init(), a hand-written C pclntab scanner, and GoBreakpointHandler dispatched from SoftwareBreakpointHandler for every software breakpoint. Missed all UPX-packed Go samples.
Accepted:rule golang in InternalYara -> cape_options = "golang" -> YaraCallback -> GoRecoverSymbols(base, ...); Go hooks registered with SetSoftwareBreakpoint(..., GoBreakpointHandler).
Engineering & Documentation Mandates
Always update @docs/configuration.md: Whenever a new configurable option is introduced to the engine (such as log-format, sleep-skip-seconds, etc.), you must immediately append its documentation details to the appropriate table inside the configuration reference document to ensure the user and the system documentation are fully up-to-date.
Always Fetch and Merge Upstream (upstream/capemon): Before starting any development task, creating a new branch, or preparing changes, you MUST always fetch from upstream (git fetch upstream) and merge upstream/capemon into your working branch so all work builds upon the latest commits. Never work on stale code. If any merge conflicts arise, you MUST resolve all conflicts completely and verify that compilation and functionality remain intact across all targets (Win32, x64).
[!IMPORTANT]
Always Work on Latest Upstream (upstream/capemon):
Always Fetch Upstream: Before creating a new branch, starting any task, or making changes, always ensure your working branch is updated with the latest upstream commits:bash
git fetch upstream
git merge upstream/capemon
Ensure the local base branch and working branches are strictly in sync with upstream/capemon (kevoreilly/capemon).
Resolve All Conflicts: If any conflicts arise when merging upstream changes into an active branch or worktree, inspect each conflicting file, resolve all conflicts thoroughly, and verify that the resulting code compiles cleanly for both Win32 and x64. Never leave conflict markers or unresolved states.
Sync Before PR & Finalization: Before pushing commits or finalizing PR branches, fetch and merge upstream/capemon again to guarantee clean, fast-forwardable or conflict-free integration.
Maintainer Commits First on Shared PRs: Maintainers (e.g. kevoreilly) push directly to PR head branches. Before applying review fixes, fetch the PR head (agent_worktree.py update <name> or git pull --ff-only) and confirm the maintainer's latest commit is in your branch. Never force-push over a PR head; never start fixes on a head that predates the maintainer's push.
Isolated Checkouts for Review and Testing
capemon uses the fork convention: origin is your own fork, upstream is
kevoreilly/capemon, and the default branch is capemon (not master).
Reviewing someone's PR or testing a branch therefore means juggling two
remotes, and doing it with git checkout in your working clone risks the
uncommitted work most clones carry.
Use .gemini/skills/capemon-developer/scripts/agent_worktree.py, a wrapper
around git worktree that handles the remote and PR plumbing. It is Python
standard library only - no virtualenv, no dependencies, and it does not care
that this is a C project.
bash
python .gemini/skills/capemon-developer/scripts/agent_worktree.py new --pr 123
python .gemini/skills/capemon-developer/scripts/agent_worktree.py new --branch some-topic-branch
python .gemini/skills/capemon-developer/scripts/agent_worktree.py new --from upstream/capemon --name scratch
python .gemini/skills/capemon-developer/scripts/agent_worktree.py list
python .gemini/skills/capemon-developer/scripts/agent_worktree.py path pr123
python .gemini/skills/capemon-developer/scripts/agent_worktree.py update pr123
python .gemini/skills/capemon-developer/scripts/agent_worktree.py remove pr123
python .gemini/skills/capemon-developer/scripts/agent_worktree.py cleanup
python .gemini/skills/capemon-developer/scripts/agent_worktree.py info
Behaviour relevant to this fork layout:
The canonical repository is read from upstream when it exists, so
new --pr <id> queries kevoreilly/capemon rather than your fork.
new --pr asks gh which fork the head branch lives in and fetches from
the matching remote, or straight from the fork URL when no remote matches.
new --branch tries origin, then upstream, then any other remote, and
reports which one supplied the branch. Force one with --remote.
Worktrees default to ~/.cache/agent-worktrees/capemon/<name>; override
with --base-dir, --path or $AGENT_WORKTREE_DIR.
Only worktrees the tool created are ever removed - they are tagged inside
the repository's git admin directory, so git status stays clean and a
hand-made git worktree add is never touched by cleanup.
remove and cleanup refuse to discard uncommitted changes or unpushed
commits, and the main worktree can never be removed. --force overrides.
Add --json to any command for scripted use. gh is required only for
--pr.
The same script is maintained in the CAPEv2 repository as
utils/agent_worktree.py; keep the two copies in sync when changing it.
Building a Worktree
A worktree is a full checkout, so the MSBuild commands in the next section
work unchanged inside one - point the solution path at the worktree instead
of your main clone. Build output stays in the worktree and disappears with
it.
Build & Compilation Guide
1. Locating MSBuild
On a standard Windows development machine, MSBuild may not be present in the global PATH. You can locate it using PowerShell by running a query over the standard Microsoft Visual Studio or Build Tools installation directories:
Visual Studio 2022 Community Edition:C:\Program Files (x86)\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe
2. Compilation Targets and Toolset Overrides
The capemon solution specifies the legacy Visual Studio 2017 (v141) platform toolset. If your local build system only has Visual Studio 2022 (v143) installed, you can compile successfully by dynamically overriding the platform toolset and disabling Whole Program Optimization (LTCG / Link-Time Code Generation) to prevent linker mismatches against precompiled static .lib dependencies (like libyara).
When developing or integrating C++ components (such as the .NET profiler) into the capemon C codebase, adhere to these guidelines to prevent compiler/linker errors:
Preventing Winsock Redefinition Conflicts: Always include WinSock2.h before windows.h inside C++ files or headers to prevent legacy definitions from being pulled in by default:cpp
Required Include Order for .NET Profiler Headers: corprof.h relies on definitions from cor.h and corhdr.h. To avoid compilation/syntax errors, use this exact order:cpp
Additionally, add #pragma comment(lib, "corguids.lib") in your source files to link the standard GUID definitions for COM callbacks and profiler interfaces.
C++ Keyword and Redefinition Conflicts (hooks.h): Never include hooks.h inside C++ files. hooks.h contains parameter declarations using this (which is a C++ keyword) and tentative global variable declarations (which cause LNK2005 duplicate symbol errors in C++). If you need to access monitor/dump functions like SetCapeMetaData and DumpMemoryRaw, declare them manually as extern "C" rather than including hooks.h or CAPE/CAPE.h.
C++ Type-Safety for Allocations (alloc.h): Since C++ does not support implicit conversion from void*, any allocation calls from alloc.h inline functions (e.g., cm_alloc, cm_calloc, cm_strdup) inside C++ compilation contexts must be explicitly cast to (char*) or the appropriate pointer type.
Capemon Developer 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.
Rebuilds existing web pages as editable local code that matches their content, assets, responsive layout and interactions, including Framer sites and animated pages.
Compares UniGetUI JSON locale files against English, identifies untranslated or source-changed keys, and generates patch, reference, and handoff files for a target language.
Expert capability for navigating, modifying, and extending the capemon malware monitoring codebase. Capemon Developer is an agent skill from kevoreilly/capemon. Expert capability for navigating, modifying, and extending the capemon malware monitoring codebase.
When should I use Capemon Developer?
Capemon Developer fits situations like: tasks that involve Responsive design.
How do I install Capemon Developer in Claude Code?
Run `npx skills add kevoreilly/capemon --skill capemon-developer -a claude-code`. Or copy the skill folder (.gemini/skills/capemon-developer in kevoreilly/capemon) into .claude/skills/capemon-developer in your project. Claude Code loads it when a task matches its description.
How do I install Capemon Developer in Codex?
Run `npx skills add kevoreilly/capemon --skill capemon-developer -a codex`. Or copy the skill folder (.gemini/skills/capemon-developer in kevoreilly/capemon) into .agents/skills/capemon-developer in your project. Codex loads it when a task matches its description.
Can I use Capemon Developer 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 kevoreilly/capemon --skill capemon-developer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/capemon-developer, .gemini/skills/capemon-developer, .github/skills/capemon-developer and .opencode/skills/capemon-developer in your project.
What does Capemon Developer need to run?
Going by SKILL.md and its folder, Capemon Developer needs Python for the scripts in its folder and the command-line tools its instructions call (python and git). Our summary lists: Python 3.
Does Capemon Developer access the network?
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Is Capemon Developer 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
What licence does Capemon Developer use?
Capemon Developer is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Capemon Developer use?
About 4.5k tokens (SKILL.md is roughly 18k 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 Capemon Developer?
Skills that share tags, products or a category with Capemon Developer: Dotnet UI (novotnyllc/dotnet-artisan, 233 stars), UI Styling (Ohh-889/skyroc, 795 stars), Website Cloner (JCodesMore/ai-website-cloner-template, 36k stars) and Translation Diff Export (Devolutions/UniGetUI, 26k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Capemon Developer?
kevoreilly (a GitHub user) maintains it in kevoreilly/capemon, which has 153 GitHub stars. The repository was last updated on October 5, 2026.
Source: kevoreilly/capemon on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.