A zero-dependency Python CLI toolset designed for AI agents to analyze codebases with surgical precision.
Project description
pypeeker-cli: Unified Agent-Native Python Analysis CLI
pypeeker-cli is a zero-dependency Python CLI toolset designed for AI agents to analyze codebases with surgical precision. It transforms raw source code into structured, actionable logical maps.
Cartograph Showcase
pypeeker-cli is a premier showcase for Cartograph, a platform for reusable engineering.
Every core feature in pypeeker-cli, from AST parsing to graph cycle detection, is implemented as a standalone, validated Cartograph widget. This architecture ensures that pypeeker-cli is not just a tool, but a modular assembly of hardened building blocks that can be easily extended or repurposed.
Analysis Surface Area
pypeeker-cli categorizes its tools by Analysis Surface Area, allowing agents to choose the right depth for their task:
1. Project Scan (Horizontal)
Broad audits of the entire project tree to find relationships and hazards.
- circular: Find import dependency loops (identifies runtime crashes vs safe TYPE_CHECKING cycles).
- missing: Detect hallucinated or missing internal imports using Dynamic Root Discovery.
- interfaces: Validate code contracts (flags missing docstrings and type hints).
2. Navigation (Relationship)
Pinpoint and trace symbols across file boundaries.
- locate: Find a symbol's exact definition bounds (start/end lines) or trace its usages (
--usages) and ancestry (--inherited).
3. Deep Dive (Vertical)
Surgical analysis inside a specific file or function.
- skeleton: Extract the API surface of a file (imports, classes, variables, signatures) without function bodies.
- flow: Map the logical control flow (pseudocode) of a function with precise line anchors.
- impact: Analyze the blast radius of a function, distinguishing between internal and external side effects.
Installation
Install pypeeker-cli globally using pip:
pip install pypeeker-cli
(Note: While in development, you can install locally via pip install .)
Release Flow
Pypeeker uses Trusted Publishing (OIDC) via GitHub Actions.
- Tag a release:
git tag -a v1.0.0-cli -m "Release v1.0.0-cli" - Push the tag:
git push origin v1.0.0-cli - The
pypi-publish.ymlworkflow will automatically build and publish the version to PyPI.
Agent Native Integration
pypeeker-cli is built to be a native plugin for AI agents using the Model Context Protocol (MCP).
Subcommand Usage
pypeeker mcp
Supported Platforms
- Gemini CLI:
extension/gemini-extension.json - Claude Code:
.claude-plugin/plugin.json - Cursor and Roo Code:
.cursor/mcp.json(Auto-detected) - Continue (VS Code / JetBrains):
.continue/mcpServers/pypeeker.json - Windsurf:
.windsurf/mcp_config.json
Reusable Core
Built using the following Cartograph Widgets (found in cg/):
cg-infra-agent-cli-python: Machine-first declarative CLI framework.data-ast-import-parser-python: Root-aware static import analysis.data-ast-skeleton-parser-python: API signature extraction.data-ast-symbol-locator-python: Surgical symbol pinpointing and ancestry.data-ast-interface-validator-python: API gap detection.data-ast-flow-mapper-python: Logical pseudocode generation.data-ast-impact-analyzer-python: Side-effect and dependency mapping.infra-mcp-manifest-generator-python: Automated distribution scaffolding.universal-agent-response-python: Standardized JSON schema.universal-list-paginator-python: Result set pagination.
License
Licensed under the Apache License, Version 2.0. See the LICENSE file for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pypeeker_cli-1.0.0.tar.gz.
File metadata
- Download URL: pypeeker_cli-1.0.0.tar.gz
- Upload date:
- Size: 47.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d28cfa85f49aa6bfcc5c92d3d8b41df54720d346d231241d9070a7dff1ac581
|
|
| MD5 |
e2f0a3efce2bed37e2b2628f24eb8cdf
|
|
| BLAKE2b-256 |
a2a1e29ad7ccdb669089c2b42678be426e295ece4ff7c76a1c54ad6834ff5f96
|
Provenance
The following attestation bundles were made for pypeeker_cli-1.0.0.tar.gz:
Publisher:
pypi-publish.yml on benteigland11/pypeeker
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypeeker_cli-1.0.0.tar.gz -
Subject digest:
2d28cfa85f49aa6bfcc5c92d3d8b41df54720d346d231241d9070a7dff1ac581 - Sigstore transparency entry: 1428223004
- Sigstore integration time:
-
Permalink:
benteigland11/pypeeker@073c5635e6e2963d5fa492b7e4270c3cc1558b52 -
Branch / Tag:
refs/tags/v1.0.0-release - Owner: https://github.com/benteigland11
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@073c5635e6e2963d5fa492b7e4270c3cc1558b52 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pypeeker_cli-1.0.0-py3-none-any.whl.
File metadata
- Download URL: pypeeker_cli-1.0.0-py3-none-any.whl
- Upload date:
- Size: 66.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8320dffd25d02f0af552f3353fd75e79ffd31f6a5b50535f986f2bdfd3e8d03
|
|
| MD5 |
e5c3906564b28f32c531c540cf11410a
|
|
| BLAKE2b-256 |
19426d0d146b9eebdf8a8ae551f855f0110a2c2ce084e7af4a2459e59080ef06
|
Provenance
The following attestation bundles were made for pypeeker_cli-1.0.0-py3-none-any.whl:
Publisher:
pypi-publish.yml on benteigland11/pypeeker
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypeeker_cli-1.0.0-py3-none-any.whl -
Subject digest:
e8320dffd25d02f0af552f3353fd75e79ffd31f6a5b50535f986f2bdfd3e8d03 - Sigstore transparency entry: 1428223282
- Sigstore integration time:
-
Permalink:
benteigland11/pypeeker@073c5635e6e2963d5fa492b7e4270c3cc1558b52 -
Branch / Tag:
refs/tags/v1.0.0-release - Owner: https://github.com/benteigland11
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@073c5635e6e2963d5fa492b7e4270c3cc1558b52 -
Trigger Event:
push
-
Statement type: