codetective


Namecodetective JSON
Version 0.1.0b4 PyPI version JSON
download
home_pageNone
SummaryMulti-Agent Code Review Tool
upload_time2025-09-02 15:00:39
maintainerNone
docs_urlNone
authorNone
requires_python<3.13,>=3.10
licenseCopyright (c) 2025 Eng. Elias Owis Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International You are free to: - Share — copy and redistribute the material in any medium or format. - Adapt — remix, transform, and build upon the material. Under the following terms: - Attribution — You must give appropriate credit. - NonCommercial — You may not use the material for commercial purposes. - ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license. Full license: https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode
keywords code-review security static-analysis ai multi-agent
VCS
bugtrack_url
requirements click langgraph nicegui pydantic requests PyYAML rich typing-extensions ddgs langchain langchain-community langchain-ollama langgraph beautifulsoup4
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![Logo](https://github.com/Eng-Elias/codetective/blob/main/screenshots/Brand/transparent_logo.png?raw=true)
# 🔍 Codetective - Multi-Agent Code Review Tool

A comprehensive code analysis tool that combines multiple scanning engines (SemGrep, Trivy, AI) with automated fixing capabilities using LangGraph orchestration.

# video
[![Youtube Video](https://github.com/Eng-Elias/codetective/blob/main/screenshots/Brand/thumbnail.png?raw=true)](https://youtu.be/cmb_k1Je8zs)

## Features

- **Multi-Agent Scanning**: Combines SemGrep, Trivy, and AI-powered analysis
- **Automated Fixing**: AI-powered code fixes and explanatory comments
- **CLI Interface**: Command-line interface for automation and CI/CD integration
- **Web GUI**: Modern web interface with NiceGUI
- **LangGraph Orchestration**: Intelligent agent coordination and workflow management
- **Smart Comment Generation**: Concise TODO comments under 100 words
- **Intelligent Issue Filtering**: Removes fixed issues from GUI automatically
- **Configurable**: Flexible configuration via files and environment variables

## Installation

### Prerequisites

Before installing Codetective, ensure you have the following tools installed:

1. **Python 3.10+**
2. **SemGrep** (optional but recommended):
   ```bash
   pip install semgrep
   ```
3. **Trivy** (optional but recommended):
   - Follow installation instructions at: https://aquasecurity.github.io/trivy/latest/getting-started/installation/
4. **Ollama** (optional, for AI features):
   - Download from: https://ollama.ai/download
   - Install a code model: `ollama pull codellama`
   - Start Ollama: `ollama start`

### Install Codetective

```bash
# Clone the repository
git clone https://github.com/codetective/codetective.git
cd codetective

# Install the package
pip install -e .
# OR
make install

# Or install from PyPI
pip install codetective
```

## Quick Start

### 1. Check System Compatibility

```bash
ollama start
```

```bash
codetective info
```

This will show you which tools are available and their versions.

![codetective_info](https://github.com/Eng-Elias/codetective/blob/main/screenshots/CLI/00_codetective_info.png?raw=true)

### 2. Run a Code Scan

```bash
# Scan current directory with all agents
codetective scan .

# Scan specific paths with selected agents
codetective scan /path/to/code --agents semgrep,trivy --timeout 600

# Custom output file
codetective scan . --output my_scan_results.json
```

![vulnerable_script_py](https://github.com/Eng-Elias/codetective/blob/main/screenshots/CLI/01_vulnerable_script_py.png?raw=true)

![codetective_scan](https://github.com/Eng-Elias/codetective/blob/main/screenshots/CLI/02_codetective_scan.png?raw=true)

### 3. Apply Fixes

```bash
# Apply automatic fixes
codetective fix codetective_scan_results.json
```

![codetective_fix](https://github.com/Eng-Elias/codetective/blob/main/screenshots/CLI/03_codetective_edit_fix.png?raw=true)

![fixed_vulnerable_script_py](https://github.com/Eng-Elias/codetective/blob/main/screenshots/CLI/04_fixed_vulnerable_script.png?raw=true)

```bash
# Add explanatory comments instead
codetective fix codetective_scan_results.json --agent comment
```

![codetective_comment](https://github.com/Eng-Elias/codetective/blob/main/screenshots/CLI/05_codetective_comment_fix.png?raw=true)

![commented_vulnerable_script_py](https://github.com/Eng-Elias/codetective/blob/main/screenshots/CLI/06_commented_vulnerable_script.png?raw=true)

### 4. Launch Web GUI

```bash
# Launch NiceGUI interface (default)
codetective gui

# Custom host and port
codetective gui --host 0.0.0.0 --port 7891
```

Then open your browser to `http://localhost:7891` (NiceGUI)

![Codetective GUI](https://github.com/Eng-Elias/codetective/blob/main/screenshots/GUI/Codetective_GUI.gif?raw=true)

## CLI Commands

### `codetective info`
Check system compatibility and tool availability.

### `codetective scan [paths]`
Execute multi-agent code scanning.

**Options:**
- `-a, --agents`: Comma-separated agents (semgrep,trivy,ai_review)
- `-t, --timeout`: Timeout in seconds (default: 900)
- `-o, --output`: Output JSON file (default: codetective_scan_results.json)

**Examples:**
```bash
codetective scan .
codetective scan src/ tests/ --agents semgrep,trivy --timeout 600
codetective scan . --output security_scan.json
```

### `codetective fix <json_file>`
Apply automated fixes to identified issues.

**Options:**
- `-a, --agent`: Fix agent (comment,edit) (default: edit)
- `--keep-backup`: Keep backup files after fix completion
- `--selected-issues`: Comma-separated list of issue IDs to fix

**Examples:**
```bash
codetective fix scan_results.json
codetective fix scan_results.json --agent comment
```

## Web GUI Usage

Codetective offers a modern web interface:

### NiceGUI Interface (Default)
A modern, responsive web interface with better state management and real-time updates.

### 1. Project Selection
- Enter or browse to your project path
- Select which agents to run
- Configure scan timeout
- Start the scanning process

### 2. Scan Results
- View results in tabbed interface (one tab per agent)
- See detailed issue information
- Select issues for fixing
- Export results

### 3. Fix Application
- Choose fix strategy (edit or comment)
- Configure backup options and keep-backup settings
- Select specific issues to fix or use "Select All"
- Apply fixes with progress tracking and button state management
- View fix results and modified files
- Fixed issues are automatically removed from the GUI
- Real-time progress updates with disabled button during operations

## JSON Output Format

Codetective always outputs results in a standardized JSON format:

```json
{
  "timestamp": "2024-01-01T12:00:00",
  "scan_path": "/path/to/project",
  "semgrep_results": [
    {
      "id": "semgrep-rule-file-line",
      "title": "Issue title",
      "description": "Detailed description",
      "severity": "high",
      "file_path": "/path/to/file.py",
      "line_number": 42,
      "rule_id": "rule.id",
      "fix_suggestion": "Suggested fix",
      "status": "detected"
    }
  ],
  "trivy_results": [...],
  "ai_review_results": [...],
  "total_issues": 15,
  "scan_duration": 45.2
}
```

## Agent Types

### Scan Agents

- **SemGrep Agent**: Static analysis using SemGrep rules
- **Trivy Agent**: Security vulnerability and misconfiguration scanning
- **AI Review Agent**: Intelligent code review using Ollama

### Output Agents

- **Comment Agent**: Generates concise TODO comments (under 100 words) for issues
  - Handles None/empty line numbers by adding comments at file beginning
  - Processes multiple issues in same file with proper line number tracking
  - Ignores existing comments when generating new explanations
- **Edit Agent**: Automatically applies code fixes
  - Focuses only on actual security vulnerabilities, not influenced by existing comments
  - Maintains original code structure and functionality

## Architecture

Codetective uses a multi-agent architecture orchestrated by LangGraph:

```
┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│   CLI/GUI       │     │   Orchestrator   │     │   Config        │
│   Interface     │───▶│   (LangGraph)     │◀───│   Management    │
└─────────────────┘     └──────────────────┘     └─────────────────┘
                                │
                ┌───────────────┼───────────────┐
                │               │               │
        ┌───────▼──────┐ ┌──────▼──────┐ ┌──────▼───────┐
        │ Scan Agents  │ │Output Agents│ │   Utils      │
        │              │ │             │ │              │
        │ • SemGrep    │ │ • Comment   │ │ • File I/O   │
        │ • Trivy      │ │ • Edit      │ │ • Validation │
        │ • AI Review  │ │             │ │ • System     │
        └──────────────┘ └─────────────┘ └──────────────┘
```

## Contributing

Contributions to the Codetective are welcome. Follow the [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines.

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## License

This application is open-source and is released under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. See the [LICENSE](LICENSE) file for details.

Shield: [![CC BY-NC-SA 4.0][cc-by-nc-sa-shield]][cc-by-nc-sa]

This work is licensed under a
[Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License][cc-by-nc-sa].

[![CC BY-NC-SA 4.0][cc-by-nc-sa-image]][cc-by-nc-sa]

[cc-by-nc-sa]: http://creativecommons.org/licenses/by-nc-sa/4.0/
[cc-by-nc-sa-image]: https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png
[cc-by-nc-sa-shield]: https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg

## Acknowledgments

- [SemGrep](https://semgrep.dev/) for static analysis capabilities
- [Trivy](https://trivy.dev/) for security vulnerability scanning
- [Ollama](https://ollama.ai/) for local AI model serving
- [LangGraph](https://langchain-ai.github.io/langgraph/) for agent orchestration
- [NiceGUI](https://nicegui.io/) for the modern web interface
- [FOCUS--Context-Engineering](https://github.com/Eng-Elias/FOCUS--Context_Engineering) for AI IDEs (Windsurf, Cursor, etc.)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "codetective",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.13,>=3.10",
    "maintainer_email": null,
    "keywords": "code-review, security, static-analysis, ai, multi-agent",
    "author": null,
    "author_email": "\"Eng. Elias\" <elias@engelias.website>",
    "download_url": "https://files.pythonhosted.org/packages/7d/e4/b48c6c0bd79e2aa7084ac78af861356da47bd93d1b2bc5e34e8fba984ac3/codetective-0.1.0b4.tar.gz",
    "platform": null,
    "description": "![Logo](https://github.com/Eng-Elias/codetective/blob/main/screenshots/Brand/transparent_logo.png?raw=true)\r\n# \ud83d\udd0d Codetective - Multi-Agent Code Review Tool\r\n\r\nA comprehensive code analysis tool that combines multiple scanning engines (SemGrep, Trivy, AI) with automated fixing capabilities using LangGraph orchestration.\r\n\r\n# video\r\n[![Youtube Video](https://github.com/Eng-Elias/codetective/blob/main/screenshots/Brand/thumbnail.png?raw=true)](https://youtu.be/cmb_k1Je8zs)\r\n\r\n## Features\r\n\r\n- **Multi-Agent Scanning**: Combines SemGrep, Trivy, and AI-powered analysis\r\n- **Automated Fixing**: AI-powered code fixes and explanatory comments\r\n- **CLI Interface**: Command-line interface for automation and CI/CD integration\r\n- **Web GUI**: Modern web interface with NiceGUI\r\n- **LangGraph Orchestration**: Intelligent agent coordination and workflow management\r\n- **Smart Comment Generation**: Concise TODO comments under 100 words\r\n- **Intelligent Issue Filtering**: Removes fixed issues from GUI automatically\r\n- **Configurable**: Flexible configuration via files and environment variables\r\n\r\n## Installation\r\n\r\n### Prerequisites\r\n\r\nBefore installing Codetective, ensure you have the following tools installed:\r\n\r\n1. **Python 3.10+**\r\n2. **SemGrep** (optional but recommended):\r\n   ```bash\r\n   pip install semgrep\r\n   ```\r\n3. **Trivy** (optional but recommended):\r\n   - Follow installation instructions at: https://aquasecurity.github.io/trivy/latest/getting-started/installation/\r\n4. **Ollama** (optional, for AI features):\r\n   - Download from: https://ollama.ai/download\r\n   - Install a code model: `ollama pull codellama`\r\n   - Start Ollama: `ollama start`\r\n\r\n### Install Codetective\r\n\r\n```bash\r\n# Clone the repository\r\ngit clone https://github.com/codetective/codetective.git\r\ncd codetective\r\n\r\n# Install the package\r\npip install -e .\r\n# OR\r\nmake install\r\n\r\n# Or install from PyPI\r\npip install codetective\r\n```\r\n\r\n## Quick Start\r\n\r\n### 1. Check System Compatibility\r\n\r\n```bash\r\nollama start\r\n```\r\n\r\n```bash\r\ncodetective info\r\n```\r\n\r\nThis will show you which tools are available and their versions.\r\n\r\n![codetective_info](https://github.com/Eng-Elias/codetective/blob/main/screenshots/CLI/00_codetective_info.png?raw=true)\r\n\r\n### 2. Run a Code Scan\r\n\r\n```bash\r\n# Scan current directory with all agents\r\ncodetective scan .\r\n\r\n# Scan specific paths with selected agents\r\ncodetective scan /path/to/code --agents semgrep,trivy --timeout 600\r\n\r\n# Custom output file\r\ncodetective scan . --output my_scan_results.json\r\n```\r\n\r\n![vulnerable_script_py](https://github.com/Eng-Elias/codetective/blob/main/screenshots/CLI/01_vulnerable_script_py.png?raw=true)\r\n\r\n![codetective_scan](https://github.com/Eng-Elias/codetective/blob/main/screenshots/CLI/02_codetective_scan.png?raw=true)\r\n\r\n### 3. Apply Fixes\r\n\r\n```bash\r\n# Apply automatic fixes\r\ncodetective fix codetective_scan_results.json\r\n```\r\n\r\n![codetective_fix](https://github.com/Eng-Elias/codetective/blob/main/screenshots/CLI/03_codetective_edit_fix.png?raw=true)\r\n\r\n![fixed_vulnerable_script_py](https://github.com/Eng-Elias/codetective/blob/main/screenshots/CLI/04_fixed_vulnerable_script.png?raw=true)\r\n\r\n```bash\r\n# Add explanatory comments instead\r\ncodetective fix codetective_scan_results.json --agent comment\r\n```\r\n\r\n![codetective_comment](https://github.com/Eng-Elias/codetective/blob/main/screenshots/CLI/05_codetective_comment_fix.png?raw=true)\r\n\r\n![commented_vulnerable_script_py](https://github.com/Eng-Elias/codetective/blob/main/screenshots/CLI/06_commented_vulnerable_script.png?raw=true)\r\n\r\n### 4. Launch Web GUI\r\n\r\n```bash\r\n# Launch NiceGUI interface (default)\r\ncodetective gui\r\n\r\n# Custom host and port\r\ncodetective gui --host 0.0.0.0 --port 7891\r\n```\r\n\r\nThen open your browser to `http://localhost:7891` (NiceGUI)\r\n\r\n![Codetective GUI](https://github.com/Eng-Elias/codetective/blob/main/screenshots/GUI/Codetective_GUI.gif?raw=true)\r\n\r\n## CLI Commands\r\n\r\n### `codetective info`\r\nCheck system compatibility and tool availability.\r\n\r\n### `codetective scan [paths]`\r\nExecute multi-agent code scanning.\r\n\r\n**Options:**\r\n- `-a, --agents`: Comma-separated agents (semgrep,trivy,ai_review)\r\n- `-t, --timeout`: Timeout in seconds (default: 900)\r\n- `-o, --output`: Output JSON file (default: codetective_scan_results.json)\r\n\r\n**Examples:**\r\n```bash\r\ncodetective scan .\r\ncodetective scan src/ tests/ --agents semgrep,trivy --timeout 600\r\ncodetective scan . --output security_scan.json\r\n```\r\n\r\n### `codetective fix <json_file>`\r\nApply automated fixes to identified issues.\r\n\r\n**Options:**\r\n- `-a, --agent`: Fix agent (comment,edit) (default: edit)\r\n- `--keep-backup`: Keep backup files after fix completion\r\n- `--selected-issues`: Comma-separated list of issue IDs to fix\r\n\r\n**Examples:**\r\n```bash\r\ncodetective fix scan_results.json\r\ncodetective fix scan_results.json --agent comment\r\n```\r\n\r\n## Web GUI Usage\r\n\r\nCodetective offers a modern web interface:\r\n\r\n### NiceGUI Interface (Default)\r\nA modern, responsive web interface with better state management and real-time updates.\r\n\r\n### 1. Project Selection\r\n- Enter or browse to your project path\r\n- Select which agents to run\r\n- Configure scan timeout\r\n- Start the scanning process\r\n\r\n### 2. Scan Results\r\n- View results in tabbed interface (one tab per agent)\r\n- See detailed issue information\r\n- Select issues for fixing\r\n- Export results\r\n\r\n### 3. Fix Application\r\n- Choose fix strategy (edit or comment)\r\n- Configure backup options and keep-backup settings\r\n- Select specific issues to fix or use \"Select All\"\r\n- Apply fixes with progress tracking and button state management\r\n- View fix results and modified files\r\n- Fixed issues are automatically removed from the GUI\r\n- Real-time progress updates with disabled button during operations\r\n\r\n## JSON Output Format\r\n\r\nCodetective always outputs results in a standardized JSON format:\r\n\r\n```json\r\n{\r\n  \"timestamp\": \"2024-01-01T12:00:00\",\r\n  \"scan_path\": \"/path/to/project\",\r\n  \"semgrep_results\": [\r\n    {\r\n      \"id\": \"semgrep-rule-file-line\",\r\n      \"title\": \"Issue title\",\r\n      \"description\": \"Detailed description\",\r\n      \"severity\": \"high\",\r\n      \"file_path\": \"/path/to/file.py\",\r\n      \"line_number\": 42,\r\n      \"rule_id\": \"rule.id\",\r\n      \"fix_suggestion\": \"Suggested fix\",\r\n      \"status\": \"detected\"\r\n    }\r\n  ],\r\n  \"trivy_results\": [...],\r\n  \"ai_review_results\": [...],\r\n  \"total_issues\": 15,\r\n  \"scan_duration\": 45.2\r\n}\r\n```\r\n\r\n## Agent Types\r\n\r\n### Scan Agents\r\n\r\n- **SemGrep Agent**: Static analysis using SemGrep rules\r\n- **Trivy Agent**: Security vulnerability and misconfiguration scanning\r\n- **AI Review Agent**: Intelligent code review using Ollama\r\n\r\n### Output Agents\r\n\r\n- **Comment Agent**: Generates concise TODO comments (under 100 words) for issues\r\n  - Handles None/empty line numbers by adding comments at file beginning\r\n  - Processes multiple issues in same file with proper line number tracking\r\n  - Ignores existing comments when generating new explanations\r\n- **Edit Agent**: Automatically applies code fixes\r\n  - Focuses only on actual security vulnerabilities, not influenced by existing comments\r\n  - Maintains original code structure and functionality\r\n\r\n## Architecture\r\n\r\nCodetective uses a multi-agent architecture orchestrated by LangGraph:\r\n\r\n```\r\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510     \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510     \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n\u2502   CLI/GUI       \u2502     \u2502   Orchestrator   \u2502     \u2502   Config        \u2502\r\n\u2502   Interface     \u2502\u2500\u2500\u2500\u25b6\u2502   (LangGraph)     \u2502\u25c0\u2500\u2500\u2500\u2502   Management    \u2502\r\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518     \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518     \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n                                \u2502\r\n                \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n                \u2502               \u2502               \u2502\r\n        \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25bc\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u25bc\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u25bc\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n        \u2502 Scan Agents  \u2502 \u2502Output Agents\u2502 \u2502   Utils      \u2502\r\n        \u2502              \u2502 \u2502             \u2502 \u2502              \u2502\r\n        \u2502 \u2022 SemGrep    \u2502 \u2502 \u2022 Comment   \u2502 \u2502 \u2022 File I/O   \u2502\r\n        \u2502 \u2022 Trivy      \u2502 \u2502 \u2022 Edit      \u2502 \u2502 \u2022 Validation \u2502\r\n        \u2502 \u2022 AI Review  \u2502 \u2502             \u2502 \u2502 \u2022 System     \u2502\r\n        \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n```\r\n\r\n## Contributing\r\n\r\nContributions to the Codetective are welcome. Follow the [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines.\r\n\r\n1. Fork the repository\r\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\r\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\r\n4. Push to the branch (`git push origin feature/amazing-feature`)\r\n5. Open a Pull Request\r\n\r\n## License\r\n\r\nThis application is open-source and is released under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. See the [LICENSE](LICENSE) file for details.\r\n\r\nShield: [![CC BY-NC-SA 4.0][cc-by-nc-sa-shield]][cc-by-nc-sa]\r\n\r\nThis work is licensed under a\r\n[Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License][cc-by-nc-sa].\r\n\r\n[![CC BY-NC-SA 4.0][cc-by-nc-sa-image]][cc-by-nc-sa]\r\n\r\n[cc-by-nc-sa]: http://creativecommons.org/licenses/by-nc-sa/4.0/\r\n[cc-by-nc-sa-image]: https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png\r\n[cc-by-nc-sa-shield]: https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg\r\n\r\n## Acknowledgments\r\n\r\n- [SemGrep](https://semgrep.dev/) for static analysis capabilities\r\n- [Trivy](https://trivy.dev/) for security vulnerability scanning\r\n- [Ollama](https://ollama.ai/) for local AI model serving\r\n- [LangGraph](https://langchain-ai.github.io/langgraph/) for agent orchestration\r\n- [NiceGUI](https://nicegui.io/) for the modern web interface\r\n- [FOCUS--Context-Engineering](https://github.com/Eng-Elias/FOCUS--Context_Engineering) for AI IDEs (Windsurf, Cursor, etc.)\r\n",
    "bugtrack_url": null,
    "license": "Copyright (c) 2025 Eng. Elias Owis\r\n        \r\n        Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International\r\n        \r\n        You are free to:\r\n        - Share \u2014 copy and redistribute the material in any medium or format.\r\n        - Adapt \u2014 remix, transform, and build upon the material.\r\n        \r\n        Under the following terms:\r\n        - Attribution \u2014 You must give appropriate credit.\r\n        - NonCommercial \u2014 You may not use the material for commercial purposes.\r\n        - ShareAlike \u2014 If you remix, transform, or build upon the material, you must distribute your contributions under the same license.\r\n        \r\n        Full license: https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode\r\n        ",
    "summary": "Multi-Agent Code Review Tool",
    "version": "0.1.0b4",
    "project_urls": {
        "Bug Tracker": "https://github.com/Eng-Elias/codetective/issues",
        "Documentation": "https://github.com/Eng-Elias/codetective/blob/main/README.md",
        "Homepage": "https://github.com/Eng-Elias/codetective",
        "Repository": "https://github.com/Eng-Elias/codetective"
    },
    "split_keywords": [
        "code-review",
        " security",
        " static-analysis",
        " ai",
        " multi-agent"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5026f9e1c2e7a0309a05484533406dbf74e7ba2916b554a212c19d153775c2a3",
                "md5": "70107f6853e4e2beebd92b394a6fb0a7",
                "sha256": "d1d8e2d5e48e18984d58d25256c64dba32efd0b02c329855df619c59b648d30b"
            },
            "downloads": -1,
            "filename": "codetective-0.1.0b4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "70107f6853e4e2beebd92b394a6fb0a7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.13,>=3.10",
            "size": 58886,
            "upload_time": "2025-09-02T15:00:37",
            "upload_time_iso_8601": "2025-09-02T15:00:37.534072Z",
            "url": "https://files.pythonhosted.org/packages/50/26/f9e1c2e7a0309a05484533406dbf74e7ba2916b554a212c19d153775c2a3/codetective-0.1.0b4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7de4b48c6c0bd79e2aa7084ac78af861356da47bd93d1b2bc5e34e8fba984ac3",
                "md5": "0ac794d61f7d654a3bbd8524865cd84e",
                "sha256": "823e24c2f3c4d06515a3038f84b076bb2aaa0155006b1f3f93041c7766dde1d3"
            },
            "downloads": -1,
            "filename": "codetective-0.1.0b4.tar.gz",
            "has_sig": false,
            "md5_digest": "0ac794d61f7d654a3bbd8524865cd84e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.13,>=3.10",
            "size": 53027,
            "upload_time": "2025-09-02T15:00:39",
            "upload_time_iso_8601": "2025-09-02T15:00:39.282664Z",
            "url": "https://files.pythonhosted.org/packages/7d/e4/b48c6c0bd79e2aa7084ac78af861356da47bd93d1b2bc5e34e8fba984ac3/codetective-0.1.0b4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-02 15:00:39",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Eng-Elias",
    "github_project": "codetective",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "click",
            "specs": [
                [
                    ">=",
                    "8.0.0"
                ]
            ]
        },
        {
            "name": "langgraph",
            "specs": [
                [
                    ">=",
                    "0.0.40"
                ]
            ]
        },
        {
            "name": "nicegui",
            "specs": [
                [
                    ">=",
                    "2.22.2"
                ]
            ]
        },
        {
            "name": "pydantic",
            "specs": [
                [
                    ">=",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    ">=",
                    "2.28.0"
                ]
            ]
        },
        {
            "name": "PyYAML",
            "specs": [
                [
                    ">=",
                    "6.0.0"
                ]
            ]
        },
        {
            "name": "rich",
            "specs": [
                [
                    ">=",
                    "13.0.0"
                ]
            ]
        },
        {
            "name": "typing-extensions",
            "specs": [
                [
                    ">=",
                    "4.0.0"
                ]
            ]
        },
        {
            "name": "ddgs",
            "specs": [
                [
                    ">=",
                    "4.0.0"
                ]
            ]
        },
        {
            "name": "langchain",
            "specs": [
                [
                    ">=",
                    "0.1.0"
                ]
            ]
        },
        {
            "name": "langchain-community",
            "specs": [
                [
                    ">=",
                    "0.0.10"
                ]
            ]
        },
        {
            "name": "langchain-ollama",
            "specs": [
                [
                    ">=",
                    "0.1.0"
                ]
            ]
        },
        {
            "name": "langgraph",
            "specs": [
                [
                    ">=",
                    "0.2.0"
                ]
            ]
        },
        {
            "name": "beautifulsoup4",
            "specs": [
                [
                    ">=",
                    "4.12.0"
                ]
            ]
        }
    ],
    "lcname": "codetective"
}
        
Elapsed time: 1.00585s