Skip to content

developer codebase overview

MD MUFTHAKHERUL ISLAM MIRAZ edited this page Jun 24, 2026 · 2 revisions

🗺️ Codebase Overview

Welcome to the Siyarix codebase! This document serves as a quick tour of the project structure and core modules. Siyarix started as a personal passion project to explore AI-native orchestration, and it's continuously growing thanks to active development.

Tip

If you are new to the codebase, I recommend starting with the Agent Orchestrator (core/) and Interactive Chat (chat/) modules, as they form the core experience!

📂 Directory Structure

Siyarix lives under the src/siyarix/ directory. Here is the layout:

src/siyarix/
├── __init__.py              # Public API
├── __main__.py              # Entry point for `python -m siyarix`
├── main.py                  # Legacy entry point
│
├── cli/
│   └── __init__.py          # Main Typer CLI app
│
├── chat/                    # 💬 Interactive REPL system
│   ├── engine.py            # LLMEngineMixin
│   ├── repl.py              # SiyarixChat: prompt_toolkit REPL
│   ├── handlers.py          # Slash command handlers
│   ├── openai_compat.py     # Adapter for AI providers
│   └── ...                  
│
├── core/                    # 🧠 Agent Orchestration Kernel
│   ├── __init__.py          # AgentCore
│   ├── pipeline.py          # CommandPipeline
│   └── swarm.py             # SwarmRouter
│
├── providers/               # ☁️ Multi-Provider LLM Abstraction Layer
│   ├── manager.py           # Registration and management
│   ├── state.py             # Cooldowns and caching
│   └── profiles/            # Provider profiles (OpenAI, Gemini, Ollama, etc.)
│
├── parsers/                 # 🔍 Tool Output Parser Subsystem
│   ├── __init__.py          # ParserRegistry
│   ├── nmap_parser.py       # Nmap XML/text parser
│   └── ...                  
│
├── output/                  # 🎨 Output Engine
│   └── __init__.py          # Renders formats (JSON, YAML, HTML, etc.)
│
├── report/                  # 📊 Reporting
│   └── __init__.py          # Generates reports in MARKDOWN, HTML, JSON
│
├── plugins/                 # 🔌 Dynamic Plugin Architecture
├── templates/               # 📝 UI Templates and ASCII Art
├── data/                    # 🗄️ Static assets
├── offline_registry/        # 📴 Offline heuristic planning subsystem
│
└── Root-Level Modules:
    ├── audit_log.py         # Audit trails
    ├── credential_store.py  # Encrypted credential vault
    ├── deep_scan.py         # Reconnaissance engine
    ├── learning_system.py   # Basic learning from executions
    ├── opsec.py             # Basic OPSEC controls
    ├── permission_gate.py   # Command permission control
    ├── workflow.py          # Workflow engine
    └── ...                  

🏗️ Key Subsystems

🧠 Agent Orchestrator (core/)

AgentCore is the brain of Siyarix. It dispatches tasks across four operational modes:

  • REGISTRY (heuristic-based)
  • AUTONOMOUS (LLM-driven)
  • HYBRID (combined)
  • INTERACTIVE (chat-driven)

💬 Chat & REPL (chat/)

Our interactive shell is built on prompt_toolkit, featuring a split-pane layout and context-aware autocomplete. The LLMEngineMixin runs the agent loop.

☁️ Provider Layer (providers/)

Siyarix abstracts various AI providers through a unified adapter (openai_compat.py). The ProviderManager handles failover and backoff, so things keep running if an API goes down.

🔍 Parser System (parsers/)

The ParserRegistry discovers tool parsers at import time. Each parser implements the Parser protocol, mapping raw tool output to structured data.

🛡️ Security Layer (Root Modules)

Siyarix includes some neat security features:

  • PermissionGate: A review stage before running commands.
  • DLP Engine: Tries to mask sensitive data patterns.
  • CredentialStore: Secures API keys locally.
  • AuditLogger: Keeps a log of actions.

🎨 Output & Reporting (output/, report/)

The OutputEngine supports multiple formats and themes, and the ReportEngine compiles assessments into Markdown or HTML.

Important

Implemented Features vs. Stubs Siyarix is a growing project. While features like MultiWaveExecution and BudgetChecking are active, some features listed in chat/stubs.py are placeholders designed for future expansion as I continue building out the tool.

📏 Development Conventions

To keep the codebase manageable, I try to follow these standards:

  • Type Hints: Encouraged on public APIs.
  • Async First: asyncio is used extensively.
  • Structured Data: Using Python dataclasses for representing findings.
  • Error Handling: Use SiyarixException instead of bare except: blocks.
  • Logging: Standard Python logging (logging.getLogger(__name__)).
  • Testing: We rely on pytest. Let's try to keep coverage up!
  • Linting: Using Ruff for formatting and linting.

Note

👋 Welcome to Siyarix! This is a personal passion project built by a single developer. It's currently under active development and growing fast. Expect rough edges, but lots of love! ❤️

🗺️ Siyarix Documentation Map

Welcome to the Siyarix Documentation Map! This page serves as your master compass for navigating the extensive documentation we have built for the platform.

Whether you are a brand new user, a seasoned security operator, or a developer looking to contribute to the core engine, you can find exactly what you need here.


🧭 Quick Navigation

Not sure where to start? Pick the path that best describes you:

🌱 For New Users

Just getting started? We highly recommend following these guides in order:

  1. Installation Guide — Get Siyarix running on your machine.
  2. Onboarding Wizard — Let our interactive wizard help you set up your API keys and environment.
  3. Setup & Configuration — A deeper dive into customizing your setup.
  4. Your First Run — A gentle walkthrough of your very first Siyarix command.

🛡️ For Security Operators

Ready to put Siyarix to work? Dive into our operational guides:

💻 For Developers & Contributors

Looking under the hood or wanting to write some code? Start here:


📂 The Complete Documentation Tree

If you prefer to browse the raw structure, here is a complete layout of the docs/ folder:

docs/
├── 🚀 getting-started/       # Installation, onboarding, and configuration
│   ├── installation.md       # Multi-platform install (pip, brew, winget, docker)
│   ├── onboarding.md         # The interactive 11-step setup wizard
│   ├── setup.md              # Managing API keys, credentials, and settings
│   ├── first-run.md          # A walkthrough of your first session
│   ├── configuration.md      # A deep-dive into advanced settings
│   └── troubleshooting.md    # Common issues and how to fix them instantly
│
├── 📖 user/                  # Daily operations and workflows
│   ├── cli-commands.md       # Reference for 50+ CLI commands across 12 groups
│   ├── interactive-chat.md   # Mastering the AI REPL and 54+ slash commands
│   ├── security-workflows.md # Recon, vulnerability assessment, incident response
│   ├── cloud-scanning.md     # Multi-cloud security scanning (under development)
│   ├── compliance.md         # Framework mapping (SOC 2, NIST, GDPR, PCI-DSS)
│   ├── threat-intelligence.md# Integrations with OTX, NVD, and MITRE ATT&CK
│   ├── playbooks.md          # Building automated YAML-based IR playbooks
│   ├── workflow-files.md     # DAG workflow reference (programmatic API)
│   ├── reporting.md          # Multi-format report generation
│   ├── offline-registry.md   # Running without AI (Offline/Registry execution mode)
│   └── ai-workflows.md       # Advanced AI-driven autonomous operations
│
├── 💻 developer/             # Building, testing, and extending Siyarix
│   ├── codebase-overview.md  # Full module structure mapping
│   ├── contribution-guide.md # How to submit PRs and our coding standards
│   ├── module-architecture.md# Component design and responsibilities
│   ├── testing.md            # Writing tests (pytest), coverage, and CI/CD
│   └── building.md           # Packaging, distribution, and Docker builds
│
├── 🏗️ architecture/          # System design and core internals
│   ├── overview.md           # High-level data flow and layered orchestration
│   ├── ai-agent-pipeline.md  # The AgentCore reasoning and execution pipeline
│   ├── provider-abstraction.md# How we unify 26 different AI providers
│   ├── execution-engine.md   # Plan-based step orchestration
│   ├── memory-and-state.md   # Knowledge graph, session persistence, and learning
│   ├── security-model.md     # The Permission Gate, DLP, audit logging, and OPSEC
│   └── intent-routing.md     # Semantic intent classification and routing
│
├── 🧠 ai/                    # Deep dive into the AI provider & agent systems
│   ├── routing.md            # Managing 26 providers, failovers, and circuit breakers
│   ├── persona-system.md     # Overview of our 10 security personas
│   ├── agent-reasoning.md    # The Observe-Reason-Act loop and tool call repair
│   ├── tool-execution.md     # The tool registry, capability graph, and parsers
│   ├── ensemble.md           # Parallel LLM voting strategies
│   ├── multi-wave.md         # Iterative goal execution with context carry-over
│   ├── prompt-architecture.md# System prompt design and management
│   └── safety.md             # Our rigorous 8-layer hallucination mitigation system
│
├── 🛡️ security/              # Safety, ethics, and threat models
│   ├── reporting.md          # How to safely report vulnerabilities to us
│   ├── threat-model.md       # System threat model and our mitigations
│   ├── operational-security.md# TOR routing, stealth modes, and OPSEC controls
│   ├── ethical-policy.md     # Mandatory rules of engagement for all users
│   └── abuse-prevention.md   # How we prevent misuse of the AI engine
│
└── ⚖️ legal/                 # Licensing and governance
    ├── agpl-guide.md         # A plain-English overview of the AGPL-3.0-or-later license
    ├── why-agpl.md           # The philosophy behind our license choice
    ├── trademark-policy.md   # Branding and trademark guidelines
    ├── responsible-ai.md     # Our framework for ethical AI usage
    ├── disclaimer.md         # Important legal disclaimers
    └── plugin-exception.md   # The license exception for building custom plugins

📖 Key Terminology

As you read through the documentation, you might encounter some specific terms. Here is a quick cheat sheet:

Term What It Means
Provider The backend AI engine powering Siyarix (e.g., OpenAI, Anthropic, Ollama).
Tool A traditional security executable installed on your system (e.g., nmap, nuclei).
Plan A step-by-step sequence of tool commands intelligently generated by the AI.
Workflow A hardcoded, predefined execution path (usually defined in YAML/JSON) that doesn't require AI generation.
Persona A specialized behavioral profile given to the AI (e.g., instructing it to act specifically as a "Network Recon Specialist").
Knowledge Graph Siyarix's internal memory where it stores findings (like IP addresses, open ports) to contextually inform future steps.

Need help finding something specific? Feel free to use the search bar at the top of the documentation site, or open a discussion on our GitHub!

Clone this wiki locally