Metadata-Version: 2.4
Name: siyarix
Version: 1.0.0
Summary: Siyarix — AI Cybersecurity Orchestration Agent
Project-URL: Homepage, https://github.com/mufthakherul/siyarix
Project-URL: Repository, https://github.com/mufthakherul/siyarix.git
Project-URL: Documentation, https://github.com/mufthakherul/siyarix
Project-URL: Changelog, https://github.com/mufthakherul/siyarix/releases
Author-email: MD MUFTHAKHERUL ISLAM MIRAZ <130831166+mufthakherul@users.noreply.github.com>
License: AGPL-3.0-or-later
License-File: LICENSE
License-File: LICENSE_SUMMARY.md
License-File: NOTICE
Keywords: agent,ai,automation,autonomous,cybersecurity,nmap,orchestration,pentest,scanner,siyarix
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Natural Language :: English
Classifier: Operating System :: Android
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows :: Windows 10
Classifier: Operating System :: Microsoft :: Windows :: Windows 11
Classifier: Operating System :: OS Independent
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: iOS
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Security
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: System :: Networking
Classifier: Topic :: System :: Operating System
Classifier: Topic :: System :: Systems Administration
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: cryptography>=46.0.6
Requires-Dist: defusedxml>=0.7.1
Requires-Dist: httpx>=0.27
Requires-Dist: jinja2>=3.1
Requires-Dist: keyring>=25
Requires-Dist: prompt-toolkit>=3
Requires-Dist: psutil>=5.9
Requires-Dist: pydantic>=2.5
Requires-Dist: pyyaml>=6
Requires-Dist: rich>=13
Requires-Dist: typer>=0.12
Provides-Extra: all
Requires-Dist: anthropic>=0.40; extra == 'all'
Requires-Dist: bandit>=1.7.9; extra == 'all'
Requires-Dist: colorama>=0.4.6; (sys_platform == 'win32') and extra == 'all'
Requires-Dist: fastapi>=0.110; extra == 'all'
Requires-Dist: google-generativeai>=0.8; extra == 'all'
Requires-Dist: httpx>=0.27; extra == 'all'
Requires-Dist: openai>=2.31; extra == 'all'
Requires-Dist: pip-audit>=2.7; extra == 'all'
Requires-Dist: prompt-toolkit>=3; extra == 'all'
Requires-Dist: pyjwt>=2.8; extra == 'all'
Requires-Dist: pywin32>=306; (sys_platform == 'win32') and extra == 'all'
Requires-Dist: rich>=13; extra == 'all'
Requires-Dist: safety>=3.2; extra == 'all'
Requires-Dist: textual>=0.50; extra == 'all'
Requires-Dist: typer>=0.12; extra == 'all'
Requires-Dist: uvicorn[standard]>=0.29; extra == 'all'
Provides-Extra: anthropic
Requires-Dist: anthropic>=0.40; extra == 'anthropic'
Provides-Extra: api
Requires-Dist: fastapi>=0.110; extra == 'api'
Requires-Dist: pyjwt>=2.8; extra == 'api'
Requires-Dist: uvicorn[standard]>=0.29; extra == 'api'
Provides-Extra: autonomous
Requires-Dist: anthropic>=0.40; extra == 'autonomous'
Requires-Dist: google-generativeai>=0.8; extra == 'autonomous'
Requires-Dist: openai>=2.31; extra == 'autonomous'
Provides-Extra: cli
Requires-Dist: colorama>=0.4.6; (sys_platform == 'win32') and extra == 'cli'
Requires-Dist: prompt-toolkit>=3; extra == 'cli'
Requires-Dist: pywin32>=306; (sys_platform == 'win32') and extra == 'cli'
Requires-Dist: rich>=13; extra == 'cli'
Requires-Dist: textual>=0.50; extra == 'cli'
Requires-Dist: typer>=0.12; extra == 'cli'
Provides-Extra: dev
Requires-Dist: bandit>=1.7.9; extra == 'dev'
Requires-Dist: build>=1.2; extra == 'dev'
Requires-Dist: click>=8; extra == 'dev'
Requires-Dist: colorama>=0.4.6; (sys_platform == 'win32') and extra == 'dev'
Requires-Dist: hypothesis>=6.100; extra == 'dev'
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: openai>=2.31; extra == 'dev'
Requires-Dist: pip-audit>=2.7; extra == 'dev'
Requires-Dist: pre-commit>=3.7; extra == 'dev'
Requires-Dist: prompt-toolkit>=3; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.24; extra == 'dev'
Requires-Dist: pytest-cov>=5; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Requires-Dist: pywin32>=306; (sys_platform == 'win32') and extra == 'dev'
Requires-Dist: respx>=0.21; extra == 'dev'
Requires-Dist: rich>=13; extra == 'dev'
Requires-Dist: ruff>=0.5; extra == 'dev'
Requires-Dist: safety>=3.2; extra == 'dev'
Requires-Dist: textual>=0.50; extra == 'dev'
Requires-Dist: twine>=5; extra == 'dev'
Provides-Extra: gemini
Requires-Dist: google-generativeai>=0.8; extra == 'gemini'
Provides-Extra: mobile
Requires-Dist: colorama>=0.4.6; (sys_platform == 'win32') and extra == 'mobile'
Requires-Dist: httpx>=0.27; extra == 'mobile'
Requires-Dist: prompt-toolkit>=3; extra == 'mobile'
Requires-Dist: pywin32>=306; (sys_platform == 'win32') and extra == 'mobile'
Requires-Dist: rich>=13; extra == 'mobile'
Requires-Dist: textual>=0.50; extra == 'mobile'
Provides-Extra: openai
Requires-Dist: openai>=2.31; extra == 'openai'
Provides-Extra: security
Requires-Dist: bandit>=1.7.9; extra == 'security'
Requires-Dist: pip-audit>=2.7; extra == 'security'
Requires-Dist: safety>=3.2; extra == 'security'
Provides-Extra: siem
Requires-Dist: httpx>=0.27; extra == 'siem'
Provides-Extra: terminal
Requires-Dist: colorama>=0.4.6; (sys_platform == 'win32') and extra == 'terminal'
Requires-Dist: prompt-toolkit>=3; extra == 'terminal'
Requires-Dist: pywin32>=306; (sys_platform == 'win32') and extra == 'terminal'
Requires-Dist: rich>=13; extra == 'terminal'
Requires-Dist: textual>=0.50; extra == 'terminal'
Provides-Extra: windows
Requires-Dist: colorama>=0.4.6; (sys_platform == 'win32') and extra == 'windows'
Requires-Dist: prompt-toolkit>=3; extra == 'windows'
Requires-Dist: pywin32>=306; (sys_platform == 'win32') and extra == 'windows'
Requires-Dist: rich>=13; extra == 'windows'
Requires-Dist: textual>=0.50; extra == 'windows'
Description-Content-Type: text/markdown

<p align="center">
  <img src="assets/logo.png" alt="Siyarix Logo" width="160"/>
</p>

<h1 align="center">Siyarix</h1>

<p align="center">
  <strong>Your AI-Powered Cybersecurity Orchestration Assistant</strong><br/>
  <em>Translating your natural language goals into precise, multi-tool security workflows.</em>
</p>

<p align="center">
  <!-- Core Releases & CI/CD -->
  <a href="https://github.com/mufthakherul/siyarix/releases">
    <img src="https://img.shields.io/github/v/release/mufthakherul/siyarix?style=for-the-badge&logo=github&color=3388ff" alt="Latest GitHub Release"/>
  </a>
  <a href="https://github.com/mufthakherul/siyarix/actions/workflows/ci.yml">
    <img src="https://img.shields.io/github/actions/workflow/status/mufthakherul/siyarix/ci.yml?branch=main&style=for-the-badge&logo=githubactions&logoColor=white&label=build" alt="Build Status"/>
  </a>
  <a href="https://github.com/mufthakherul/siyarix/actions/workflows/ci.yml">
    <img src="https://img.shields.io/github/actions/workflow/status/mufthakherul/siyarix/ci.yml?branch=main&style=for-the-badge&logo=githubactions&logoColor=white&label=tests" alt="Tests"/>
  </a>
  <a href="https://github.com/mufthakherul/siyarix/actions/workflows/codeql.yml">
    <img src="https://img.shields.io/github/actions/workflow/status/mufthakherul/siyarix/codeql.yml?branch=main&style=for-the-badge&logo=githubactions&logoColor=white&label=codeql" alt="CodeQL"/>
  </a>
  <a href="https://securityscorecards.dev/viewer/?uri=github.com/mufthakherul/siyarix">
    <img src="https://img.shields.io/ossf-scorecard/github.com/mufthakherul/siyarix?label=openssf%20scorecard&style=for-the-badge&logo=openssf&logoColor=white" alt="OpenSSF Scorecard"/>
  </a>

  <!-- Package & Ecosystem -->
  <a href="https://github.com/mufthakherul/siyarix">
    <img src="https://img.shields.io/github/v/tag/mufthakherul/siyarix?style=for-the-badge&logo=github&logoColor=white&color=blue" alt="GitHub Tag"/>
  </a>
  <a href="https://pypi.org/project/siyarix/">
    <img src="https://img.shields.io/pypi/dm/siyarix?style=for-the-badge&logo=pypi&logoColor=white&color=blue" alt="PyPI Downloads"/>
  </a>
  <a href="https://github.com/mufthakherul/siyarix/blob/main/pyproject.toml">
    <img src="https://img.shields.io/badge/python-3.11%20|%203.12%20|%203.13-blue?style=for-the-badge&logo=python&logoColor=white" alt="Supported Python Versions"/>
  </a>
  <a href="https://github.com/mufthakherul/siyarix">
    <img src="https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows%20%7C%20Android-blue?style=for-the-badge&logo=linux&logoColor=white" alt="Supported Platforms"/>
  </a>
  <a href="https://github.com/mufthakherul/siyarix/pkgs/container/siyarix">
    <img src="https://img.shields.io/badge/Docker-Ready-2496ED?style=for-the-badge&logo=docker&logoColor=white" alt="Docker Ready"/>
  </a>

  <!-- Code Standards & Compliance -->
  <a href="https://github.com/mufthakherul/siyarix/blob/main/LICENSE">
    <img src="https://img.shields.io/github/license/mufthakherul/siyarix?style=for-the-badge&logo=gnu&logoColor=white&color=blue" alt="License"/>
  </a>
  <a href="https://github.com/astral-sh/ruff">
    <img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json&style=for-the-badge" alt="Ruff Formatter"/>
  </a>
  <a href="https://github.com/pre-commit/pre-commit">
    <img src="https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white&style=for-the-badge" alt="Pre-commit Enabled"/>
  </a>
  <a href="https://github.com/mufthakherul/siyarix/blob/main/CODE_OF_CONDUCT.md">
    <img src="https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg?style=for-the-badge&logo=contributorcovenant&logoColor=white" alt="Code of Conduct"/>
  </a>
  <a href="https://github.com/mufthakherul/siyarix/blob/main/SECURITY.md">
    <img src="https://img.shields.io/badge/Security-Policy%20Enabled-success?style=for-the-badge&logo=githubsecurity" alt="Security Policy"/>
  </a>

  <!-- Repository Stats & Engagement -->
  <a href="https://github.com/mufthakherul/siyarix/stargazers">
    <img src="https://img.shields.io/github/stars/mufthakherul/siyarix?style=for-the-badge&logo=github&color=yellow" alt="GitHub Stars"/>
  </a>
  <a href="https://github.com/mufthakherul/siyarix/network/members">
    <img src="https://img.shields.io/github/forks/mufthakherul/siyarix?style=for-the-badge&logo=github&color=999" alt="GitHub Forks"/>
  </a>
  <a href="https://github.com/mufthakherul/siyarix/graphs/contributors">
    <img src="https://img.shields.io/github/contributors/mufthakherul/siyarix?style=for-the-badge&logo=github&color=orange" alt="Contributors"/>
  </a>
  <a href="https://github.com/mufthakherul/siyarix/issues">
    <img src="https://img.shields.io/github/issues/mufthakherul/siyarix?style=for-the-badge&logo=github&color=red" alt="Open Issues"/>
  </a>
  <a href="https://github.com/mufthakherul/siyarix/pulls">
    <img src="https://img.shields.io/github/issues-pr/mufthakherul/siyarix?style=for-the-badge&logo=github&color=brightgreen" alt="Open Pull Requests"/>
  </a>
  <a href="https://github.com/mufthakherul/siyarix/commits/main">
    <img src="https://img.shields.io/github/last-commit/mufthakherul/siyarix?style=for-the-badge&logo=github&color=lightgrey" alt="Last Commit"/>
  </a>
</p>

<p align="center">
  <a href="#-welcome-to-siyarix">Overview</a> |
  <a href="#-why-siyarix-the-problem-we-solve">Why Siyarix?</a> |
  <a href="#-key-features-in-detail">Features</a> |
  <a href="#-how-it-works-under-the-hood-the-request-lifecycle">Architecture</a> |
  <a href="#-quick-start">Quick Start</a> |
  <a href="docs/DOCS_MAP.md">Documentation</a>
</p>

---

> ✋ **Knock KNock.... We are moving!**
> To better support our growing community, Siyarix will soon be migrating from my personal repository (`mufthakherul/siyarix`) to its very own dedicated GitHub organization: **`siyarix/siyarix`**.
> Please read our [Migration Announcement](announcement/repo-migration-announcement.md) for all the details.

---

## 👋 Welcome to Siyarix!

Hello there! Welcome to **Siyarix**. What started as a personal project has steadily grown into a capable AI-driven Cybersecurity Orchestration Platform, built to help streamline security operations.

Have you ever wished you could just tell your security tools what to do in plain English? With Siyarix, you can! Whether you say *"scan this subnet for open ports"*, *"enumerate services on our main web server,"* or even *"perform a full external reconnaissance on example.com,"* Siyarix takes your natural language objective, plans the necessary steps, executes the right tools safely, analyzes the outputs, and generates a clear report for you.

Under the hood, Siyarix is beautifully crafted in **Python 3.11+**. It features a modern, type-safe operations experience powered by **Typer CLI** for seamless terminal commands, **Rich** for gorgeous, readable terminal output, and **Pydantic** for robust data modeling.

## 💡 Why Siyarix? The Problem We Solve

Security operations can be complex. Security professionals often juggle dozens of disparate CLI tools, each with its own obscure syntax, parsing messy text outputs, and manually stringing together workflows.

Siyarix acts as your intelligent, tireless co-pilot. It bridges the gap between **human intent** and **machine execution**.
- **No more memorizing flags:** Let the AI remember that `-p- -sV -T4` is the right `nmap` flag combination for your current goal.
- **Automated parsing:** Siyarix automatically reads the raw output of dozens of common security tools and turns it into structured, actionable intelligence.
- **Scale your efforts:** What normally takes manual typing and correlation can now be orchestrated with a simple plain-English sentence.

---

## 🤖 Agent Modes: Work How You Want to Work

Siyarix adapts to your comfort level and operational needs through four distinct modes:

| Mode | Best Used For | What it does |
|------|--------------|-------------|
| **REGISTRY** | Precise, manual control | Tool-driven mode. You run direct commands (e.g., `siyarix run nmap -sV example.com`), but our AI acts as your assistant, offering syntax help and planning advice on demand. |
| **AUTONOMOUS** | Broad objectives | Goal-driven mode. You set a high-level objective (*"Find vulnerabilities on this server"*), and the agent takes over. It uses an Observe-Reason-Act loop to independently plan, execute, and adapt until the goal is met. |
| **HYBRID** | Safe, supervised operations | The perfect middle ground! The AI proposes a detailed step-by-step plan, but it pauses and waits for your explicit human approval before running any potentially sensitive commands. |
| **INTERACTIVE** | Learning & sensitive audits | Step-by-step interactive mode. Every proposed action is presented for manual review before execution — ideal for sensitive environments or when learning new workflows. |

---

## ✨ Key Features in Detail

### 🧠 AI Orchestration

- **Multiple AI Providers Supported:** We integrate with the best in the business. Whether you prefer **OpenAI**, **Anthropic (Claude)**, **Groq**, or running **Local models** (like Ollama or LM Studio) completely offline, Siyarix supports it out of the box.
- **Resilient Failover:** API down? No problem. Siyarix features an automatic "circuit breaker." If your primary AI provider fails, the system automatically falls back to your secondary providers, ensuring your scan continues.
- **Semantic Memory:** Siyarix learns as it goes, building an in-memory "Knowledge Graph" of your infrastructure across sessions. If it finds an open port early on, it remembers to target it later.

### 🛠️ Security Tool Integration

- **Native Tool Parsers:** Siyarix doesn't just run tools; it *understands* them. We have native integrations for tools like `nmap`, `nuclei`, `metasploit`, `burpsuite`, `sqlmap`, and more. It takes their messy text output and turns it into clean JSON data for the AI to reason about.
- **Command Pipelines:** Chain your tools together using intuitive logic operators like `|`, `then`, or `and then`. *(Example: run subfinder `then` run httpx on the results)*.
- **Dynamic Plugins:** Have a custom script? You can easily load custom tool integrations from your `~/.siyarix/plugins/` directory.

### 🛡️ Safety & Ethical Operations

We know that combining AI with security tools can be daunting. We take safety seriously:
- **The Permission Gate:** Siyarix never runs commands blindly. It features a two-stage danger analysis before execution. If it looks dangerous, it halts and asks for your permission.
- **Encrypted Credential Vault:** Never hardcode API keys or passwords. Store your sensitive credentials securely using our AES-256-GCM encrypted vault.
- **Stealth Manager:** OPSEC manager handles request jitter, pacing, and User-Agent rotation to keep your operations quiet.
- **Tamper-Evident Logs:** Every single action, AI prompt, and tool execution is recorded in a cryptographically chained (SHA-256) audit log for total accountability. By default, saving session logs is deactivated for security and privacy. You can enable it in the config if you want to keep a record of your operations.

### 💻 A Clean CLI Overview

- **Versatile Exports:** Generate structured outputs in 8 different formats including **Markdown, HTML, JSON, SARIF, XML, and CSV**.
- **Express Yourself:** Choose from **12 stunning color themes** (like SYNTHWAVE, CYBER_NOIR, ARCTIC, or MINIMAL) to match your terminal vibe.
- **Offline Mode:** Working in a secure, air-gapped environment? Siyarix's Offline Mode uses robust heuristic planning—meaning you can still run automated workflows without an external AI provider.

---

## 🔄 How It Works Under the Hood

Wondering what exactly happens when you hit enter? Here is a simplified look at the journey of your request:

```text
1. You ask a question (e.g., "Find vulnerabilities on this web app")
    |
    v
2. Intent Router & Context Manager (Analyzes your request and gathers past data)
    |
    v
3. AI Planner (Drafts a multi-step plan of attack)
    |
    v
4. Permission Gate & Danger Analysis (Safety First!)
         |
    +----+----+
    |         |
 Looks Safe   High Risk (Pauses for your Manual Review!)
    |         |
    v         v
5. Execution Engine (Coordinates the actual work)
    |
    v
6. Tool Registries (Runs tools like Nmap, Nuclei, etc.)
    |
    v
7. Smart Parsers (Converts raw terminal text into structured data)
    |
    +-----------------------+-----------------------+
    |                       |                       |
8. Updates Knowledge Graph  Generates Rich Reports  Writes to Secure Audit Log
    |
    v
9. Self-Correction Loop (If a tool fails, the AI reasons why and tries a new approach!)
```
---

## 📦 Installation

The easiest way to install Siyarix is via Python's package manager:

```bash
pip install siyarix
```

*Prefer a different method?* We also support **Docker, Homebrew (macOS), Winget (Windows), Termux, and Linux** packages!

Check out our incredibly detailed [Installation Guide](docs/getting-started/installation.md) for step-by-step instructions for all platforms and optional extras.

---

## 🚀 Quick Start

Getting started is a breeze! When you run Siyarix for the very first time, an interactive **Onboarding Wizard** will launch to guide you through configuring your favorite AI providers.

```bash
# 1. Install easily via pip
pip install siyarix

# 2. Launch the interactive shell (this starts the onboarding wizard!)
siyarix

# 3. Try a quick pre-configured scan
siyarix scan quick example.com

# 4. Or talk to it in natural language!
siyarix run "enumerate services on 10.0.0.1 and output to a markdown file"

# 5. Delegate a broad goal to the autonomous agent
siyarix agent "find subdomains for example.com and check them for live web servers"

# 6. Working entirely offline? No problem.
siyarix --mode offline run "scan example.com"

# Check your system health and tool dependencies anytime
siyarix health
```

---

## 📚 Documentation

Want to dive much deeper into what makes Siyarix tick? We have written extensive, easy-to-read guides ready for you:

| Explore This Guide | To Learn About... |
|---------|-------------|
| 🚀 [Getting Started](docs/getting-started/installation.md) | Step-by-step installation, initial setup, and troubleshooting common issues. |
| 📖 [User Guide](docs/user/cli-commands.md) | Full CLI reference, daily operational workflows, and advanced scanning methodologies. |
| 🧠 [AI Internals](docs/ai/agent-reasoning.md) | Fascinating details on how the AI thinks, reasons, corrects itself, and routes your requests. |
| 🏗️ [Architecture](docs/architecture/overview.md) | System design, our secure execution engine, and how the Knowledge Graph works. |
| 🛡️ [Security & Ethics](docs/security/ethical-hacking-policy.md) | Our strict ethical use policies, OPSEC configurations, and system safety measures. |

---

## ⚖️ A Note on Safety & Ethical Use

Siyarix is a tool built **strictly for authorized security testing, legitimate research, and defensive operations**.

> **🛑 CRITICAL REMINDER:** You must NEVER use Siyarix to scan, test, or interact with systems, applications, or networks without explicit, documented permission from their respective owners.

***We strongly believe in building tools that protect, not harm.***

Before running your first scan, please read our full [ETHICAL_USE.md](ETHICAL_USE.md) and [RESPONSIBLE_AI_USE.md](RESPONSIBLE_AI_USE.md) policies.

---

## 🤝 Contributing

Siyarix started as a personal project, but it is **now officially public** and open for contributions!

We **warmly welcome** contributors of all skill levels. Whether you want to fix a typo in the documentation, add a new AI provider, or write a parser for a security tool you love, your help is deeply appreciated.

> 👋 **Heads Up:** To better support our growing community of contributors, Siyarix will soon be moving to its own dedicated GitHub organization (`siyarix/siyarix`). Don't worry, all links will seamlessly redirect!

Check out our [Contribution Guide](docs/developer/contribution-guide.md) to get started. Let's build the future of AI-assisted security together!

---

## 📝 License

Siyarix is proudly open-source and released under the **GNU Affero General Public License v3.0 or later** (AGPL-3.0-or-later). This ensures the project remains free and open for everyone. For the full legal details, please see our [LICENSE](LICENSE) file.

---

<p align="center">
  <em>Helping secure the world, one command at a time. 🌍🔒</em>
</p>
