ast-outline-cli

v2.1.1 suspicious
4.0
Medium Risk

Final ast-outline release. Renamed to ast-bro — install via `pip install ast-bro`. Ships ast-bro and sb binaries alongside ast-outline.

🤖 AI Analysis

Final verdict: SUSPICIOUS

The package shows moderate risks due to potential network and shell execution vulnerabilities, despite having low risks in credential handling and code obfuscation. The maintainer's metadata adds some suspicion.

  • Moderate network risk
  • Potential shell injection risk
  • Suspicious maintainer metadata
Per-check LLM notes
  • Network: The network call is likely for downloading archive files, which is common for CLI tools needing updates or dependencies.
  • Shell: Executing external binaries can be risky if not properly sanitized or controlled, as it could lead to arbitrary command execution.
  • Obfuscation: No obfuscation patterns detected, indicating low risk.
  • Credentials: No credential harvesting patterns detected, indicating low risk.
  • Metadata: The maintainer has a new or inactive account and lacks a proper author name, which raises some suspicion but not enough to definitively conclude malice.

📦 Package Quality Overall: Low (3.8/10)

○ Low Test Suite 1.0

No test suite detected

  • No test files or test-runner configuration detected
◈ Medium Documentation 7.0

Some documentation present

  • Documentation URL: "Documentation" -> https://github.com/aeroxy/ast-bro#readme
  • Detailed PyPI description (2101 chars)
○ Low Contributing Guide 2.0

No contributing guide or governance files found

  • No CONTRIBUTING, CODE_OF_CONDUCT, or governance files found
○ Low Type Annotations 1.0

No type annotations detected

  • No type annotations, py.typed marker, or stub files detected
✦ High Multiple Contributors 8.0

Active multi-contributor project

  • 4 unique contributor(s) across 100 commits in aeroxy/ast-bro
  • Small but multi-author team (3–4 contributors)

🔬 Heuristic Checks

Outbound Network Calls score 1.5

Found 1 network call pattern(s)

  • r / f"archive{ext}" with httpx.Client(follow_redirects=True) as client: resp = client.get(
Code Obfuscation

No obfuscation patterns detected

Shell / Subprocess Execution score 2.0

Found 1 shell execution pattern(s)

  • s = sys.argv[1:] result = subprocess.run([str(binary)] + args, cwd=os.getcwd()) sys.exit(result.r
Credential Harvesting

No credential harvesting patterns detected

Typosquatting

No typosquatting candidates detected

Registered Email Domain

No author email provided

Suspicious Page Links

All external links appear legitimate

Git Repository History

Repository aeroxy/ast-bro appears legitimate

Maintainer History score 4.0

2 maintainer concern(s) found

  • Author name is missing or very short
  • Author "" appears to have only 1 package on PyPI (new or inactive account)
Known CVE Vulnerabilities

No known vulnerabilities found in OSV database.

💡 AI App Starter Prompt

Use this prompt to build a project with ast-outline-cli
Create a Python-based code analysis tool named 'CodeInsight' using the 'ast-bro' package. This tool will provide developers with a comprehensive overview of their Python scripts, including structural details like class definitions, function calls, imports, and variable assignments. Here's a step-by-step guide on how to develop this application:

1. **Project Setup**: Initialize a new Python project and install the required packages, including 'ast-bro'. Ensure you have Python 3.6+ installed.
2. **Core Functionality**: Implement the main functionality of 'CodeInsight' which involves parsing input Python files using 'ast-bro' to generate a structured outline of the file content. This outline should include hierarchical information such as modules, classes, functions, and variables.
3. **Output Formatting**: Develop a feature to format the output in a user-friendly manner, either as plain text, JSON, or HTML. Users should be able to choose their preferred format from the command line interface.
4. **Advanced Features**:
   - **Dependency Analysis**: Identify and list all imported modules and dependencies within the analyzed script.
   - **Complexity Metrics**: Calculate complexity metrics such as cyclomatic complexity for functions and methods.
   - **Search Functionality**: Allow users to search for specific elements (e.g., function names, variable names) within the parsed structure.
5. **User Interface**: Design a simple CLI for interacting with 'CodeInsight'. It should accept file paths as input and support various command-line arguments for controlling output format and additional features.
6. **Testing**: Write unit tests to ensure the accuracy of the parsing and formatting processes. Use example Python scripts to test different scenarios, including nested structures and complex syntax.
7. **Documentation**: Provide clear documentation on how to install, use, and extend 'CodeInsight'. Include examples and best practices.
8. **Deployment**: Prepare 'CodeInsight' for deployment by packaging it into a distributable format (e.g., a pip package) and hosting it on a public repository like GitHub.

💬 Discussion Feed

Leave a comment

No discussion yet. Be the first to share your thoughts!