Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add okeefeco/pyeye-mcp --skill python-exploregit clone --depth 1 https://github.com/okeefeco/pyeye-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/okeefeco/pyeye-mcp/python-explore)<a href="https://agentmods.dev/skills/okeefeco/pyeye-mcp/python-explore"><img src="https://agentmods.dev/badge/skills/okeefeco/pyeye-mcp/python-explore/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/okeefeco/pyeye-mcp/python-explore"><img src="https://agentmods.dev/badge/skills/okeefeco/pyeye-mcp/python-explore.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00144 | $0.05708 |
| Opus 5.5 | $0.00058 | $0.02283 |
| Sonnet 5.5 | $0.00029 | $0.01142 |
| Haiku 4.5 | $0.00014 | $0.00571 |
Grade A, and why
python-explore scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 440 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Python Explore
Build a structural model of Python code with pyeye before reading or changing it — orient cheap, drill on demand.
The Model: Progressive Disclosure
pyeye answers questions in three widening steps. Start at the cheapest that answers your question; only go wider when you need to.
- Orient (cheap):
resolvea name to a canonical handle, theninspectit for structure, oroutlinea module/class for its skeleton. - Drill (on demand):
expandone edge from a handle to see its immediate neighbours (members, callees, importers, subclasses…). - Trace (across hops):
tracefollows edges multiple hops to see structure across a call chain, import closure, or member tree.
Canonical handles are the currency. A handle is Python's own dotted notation —
a.b.c.Name — anchored at the definition site, stable across edits, and the same
no matter which import alias you arrived through. Everything downstream takes a handle.
pyeye returns pointers and structured facts, never source — when you need the actual
code, Read the file:line it points you at.
Skill Type: Mixed Rigid/Flexible
Rigid gates (non-negotiable):
- Your first move on unfamiliar Python is pyeye, not a blind
Read(). - Never re-explore what pyeye already surfaced in this conversation.
Flexible (use judgement):
- How deep to go (a single
inspect, or a multi-hoptrace). - Which primitives and edges to call.
- Whether to write out a mental-model summary — do it when it helps the user, not as ceremony (see Stating Your Mental Model).
Do NOT Trigger When
- User says "show me", "print", "display", "read this file" — respect explicit requests,
use
Read(). - User says "run", "execute" — that is not exploration.
- User asks "what's the syntax for" — a language question, not a codebase question.
- Single-line typo/string fix where the user gives the exact location.
- Adding a new test case only (not modifying the code under test).
- pyeye output for this symbol is already visible in conversation context — skip straight to using it.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 440 lines · 144 tokens per session scan A a48061027389
python-explore is a skill published in the GitHub repository okeefeco/pyeye-mcp (0 stars, last pushed 5d ago), licensed MIT. It adds 144 tokens to every session and 5,708 once invoked, about $0.0006 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
idapython
IDA Pro Python scripting for reverse engineering. Use when writing IDAPython scripts, analyzing binaries, working with IDA's API for disassembly, decompilation (Hex-Rays), type systems, cross-references, functions, segments, or any IDA database manipulation. Covers ida modules (50+), idautils iterators, and common…
python-api
This skill should be used when writing, editing, or debugging Python code that runs inside TouchDesigner — scripts, expressions, DAT callbacks, Extensions, or one-off snippets passed to executepythonscript — or whenever there is uncertainty about a td class's methods, members, or module-level API. Trigger phrases…
python-code-quality
Code quality checks, linting, formatting, and type checking commands for the Agent Framework Python codebase. Use this when running checks, fixing lint errors, or troubleshooting CI failures.
plugin-architecture-patterns
Design, implement, or diagnose Xberg plugin traits, typed registries, priority collisions, lifecycle, native extractors, and Alef-generated Python plugin bridges. Load for plugin-system work, not ordinary extractor parsing.
test-corpus
The testdocuments submodule is a bucket-fetched fixture corpus that is not committed. This skill covers readtestfixture, missing fixtures, valid A/B controls, and submodule push order. Load before running Rust tests on a fresh clone, setting up an A/B control, adding a fixture-backed test, or diagnosing…
memory-optimization
Optimize Python code for reduced memory usage and improved memory efficiency. Use when asked to reduce memory footprint, fix memory leaks, optimize data structures for memory, handle large datasets efficiently, or diagnose memory issues. Covers object sizing, generator patterns, efficient data structures, and memory…