hopper-mcp
Skill1 starsChanged 2 months agoMITView on GitHub
Operate Hopper Disassembler through its MCP server only when the user explicitly asks to inspect a binary in Hopper or invokes this skill. Do not trigger merely because a task mentions reverse engineering.
In this repository39 other files it gives its agents.
- apple-native-motionSkill
- apple-ui-copySkill
- audit-macos-appSkill
- brain-wikiSkill
- catch-me-upSkill
- checkpointSkill
- claude-md-coachSkill
- claudeSkill
- codexSkill
- crash-debuggingSkill
- cut-memorySkill
- explaining-problemsSkill
- file-batch-safetySkill
- handoffSkill
- heads-downSkill
- icon-designSkill
- interface-integritySkill
- ios-defaultsSkill
- kitSkill
- macos-defaultsSkill
- mock-and-pickSkill
- obsess-heroSkill
- obsessSkill
- offline-archiveSkill
- os-workaroundsSkill
- paper-mcpSkill
- predictionSkill
- second-loopSkill
- session-auditSkill
- ship-macosSkill
- show-meSkill
- slice-and-reviewSkill
- slow-modeSkill
- spatial-interfacesSkill
- standupSkill
- synthetic-fixturesSkill
- transitional-interfacesSkill
- web-design-defaultsSkill
- window-captureSkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 6 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Use only for an explicit Hopper/binary-inspection request.
- Very specific: line 15
Use list_documents to identify the open documents and select the exact target by name.
- Distinctive: line 25
Start with targeted strings, names, selectors, classes, URLs, paths, and error text.
- Distinctive: line 26
Follow cross-references to candidate functions, then use callers to find how a feature is reached and callees to find what it can affect.
- Distinctive: line 28
Read bundle metadata, entitlements, linked libraries, and exports as capability context—not proof that a path executes.
- Distinctive: line 44
Read references/binary-reading.md for Objective-C, Swift, Mach-O, and terminal details.
- Distinctive: line 50
When documenting a format or interface for interoperability, separate observed bytes/calls from proposed semantics and preserve …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Hopper MCP
Use only for an explicit Hopper/binary-inspection request. Generic words such as reverse engineering, decompilation, interoperability, app behavior, or binary format are not enough to activate this skill.
Hopper's tools navigate an analysis database the user has open. The job is to locate relevant code quickly, interpret lossy output without being seduced by plausible pseudo-code, and separate confirmed behavior from attractive guesses.
Establish the target
- Confirm the binary/bundle, architecture, provenance, and question.
- Use
list_documentsto identify the open documents and select the exact target by name. Usecurrent_documentonly when the foreground GUI document matters; focus is not a reliable substitute for choosing a target. - Pass that document name in the
documentargument of every document-scoped tool call. Wait for each target's initial analysis to finish; partial analysis produces false absences. - For an app bundle, determine whether the behavior lives in the main executable, XPC service, login item, helper, framework, or extension before interpreting a missing result. The main executable is often only the UI shell.
Inspect and compare multiple open documents when the question spans components. Keep addresses, search results, annotations, and conclusions labeled with their document; an address in one document does not identify the same code in another. Recheck the selected document and analysis state whenever results appear inconsistent.
Search broad, trace narrow
Read references/tool-workflow.md.
- Start with targeted strings, names, selectors, classes, URLs, paths, and error text. Avoid dumping global procedure/string tables.
- Follow cross-references to candidate functions, then use callers to find how a feature is reached and callees to find what it can affect. A feature's shape is often visible in the call graph before its pseudo-code is readable.
- Inspect function size/blocks before decompiling. Use assembly when pseudo-code loses control flow, constants, dispatch, or pointer indirection.
- Read bundle metadata, entitlements, linked libraries, and exports as capability context—not proof that a path executes.
- For static pointer tables and chained fixups, use platform tooling that resolves encoded on-disk pointers; raw bytes may not be addresses.
Annotate or rename inside Hopper only when useful and within the user's request. Prefer comments that state evidence and uncertainty. Do not turn a tentative hypothesis into a persistent symbol name.
Evidence discipline
Separate:
- present: code/data exists in this binary;
- reachable: a known entry path can call it;
- observed: runtime evidence shows it executed;
- inferred: the best explanation, not yet corroborated.
Corroborate material findings with independent signals such as string + xref + caller/callee, metadata + implementation, or static path + runtime observation. One suggestive name is a lead, not a finding. Hopper pseudo-code and symbol recovery are lossy.
Read references/binary-reading.md for Objective-C, Swift, Mach-O, and terminal details. Read references/scenarios.md for common investigations.
Report behavior first
Lead with behavior in plain language, then supply mechanism where it explains the result. “It scans this directory on launch” is usually more useful than opening with an objc_msgSend signature. State target binary/architecture, evidence grade, path to the relevant code, corroborating signals, uncertainty, and the next check that would upgrade confidence. Distinguish what the app can do from what it does in normal use—the classic overclaim is finding an upload path and reporting that normal use uploads data without proving reachability or observation.
When documenting a format or interface for interoperability, separate observed bytes/calls from proposed semantics and preserve representative hashes/offsets so another analyst can reproduce the claim.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

