Skip to main content

CyGuide

CI CodeQL PyPI Python Docker Security Policy License: MIT

TUI-Based Guided Cybersecurity Learning and Terminal Tool Orchestration Platform.

CyGuide transforms penetration testing and security learning from disorganized terminal tabs into an integrated, stateful terminal workstation. It orchestrates industry-standard security tools (nmap, gobuster, nikto, whois, subfinder), normalizes their outputs into a live entity graph, resolves contextual target variables dynamically, and provides real-time explanations through local (Ollama) or cloud AI models.


Why CyGuide?

  • No More Terminal Tab Chaos: Run multiple reconnaissance tools concurrently with dedicated tabs, active job monitoring, and instant output review.
  • Stateful Entity Graph: Discoveries (hosts, open ports, endpoints, DNS records, vulnerabilities) automatically link together in a deterministic graph using SHA-256 Primary Identity Keys (PIKs).
  • Universal Variable Injection: Click any node in your target tree to bind variables ($TARGET, $PORT, $SERVICE) into subsequent commands without retyping IP addresses.
  • Offline-First AI Tutor: Get immediate, structured breakdowns of scan results and security recommendations powered by local Ollama models or cloud APIs.
  • Portable Engagement Archives: Export investigations into standalone .db archives and Markdown reports (cyg export). Instructors can import (cyg import) and replay a student's exact methodology step-by-step.

Architecture Overview

CyGuide is built on a Smart Adapter / Stupid Framework model:

┌────────────────────────────────────────────────────────────────────────┐
│                        Textual TUI Workstation                         │
│  [ Dashboard Hub ]   [ Guided Learning Mode ]   [ Power Mode Workbench]│
└───────────────────────────────────┬────────────────────────────────────┘
                                    │ Actions / Context
┌───────────────────────────────────▼────────────────────────────────────┐
│                       Deterministic Core Engine                        │
│  • ActionGateway (SSRF & Scope Policy)  • Subprocess Async Executor    │
│  • GraphStore (SQLite PIK Deduplication) • Reactive Recommendation Engine│
└───────────────────────────────────┬────────────────────────────────────┘
                                    │ Event Streaming
┌───────────────────────────────────▼────────────────────────────────────┐
│                         Security Tool Adapters                         │
│   nmap  •  gobuster  •  nikto  •  whois  •  subfinder  •  custom...    │
└────────────────────────────────────────────────────────────────────────┘
  • Core Engine (cyguide/engine): Asynchronous process executor, policy gateway, and SQLite graph store.
  • Unified Schemas (cyguide/schemas): 15 standard Pydantic models defining shared security entities.
  • Smart Adapters (tools/): Isolated plugins that construct commands and parse streaming output.
  • Textual TUI (cyguide/ui): Fast, keyboard-driven terminal interface with split panes and scratchpad.

Installation & Getting Started

CyGuide can be run or installed through several methods depending on your workflow:

Method Best For Security Tools Setup Time
Docker (GHCR) Quick trials, isolated testing, zero host pollution Pre-bundled < 30 seconds
pipx Everyday CLI usage on Linux/macOS Installed via script/OS ~ 1 minute
pip / PyPI Existing Python virtual environments Installed via script/OS ~ 1 minute
Source (Git) Contributing, local tool plugin development Installed via script/OS ~ 2 minutes

Option 1: Instant Evaluation via Docker (Zero Setup)

Run CyGuide immediately with Python 3.11+ and all 5 security tools pre-installed inside an isolated container:

docker run -it --rm --net=host -v ~/.cyguide:/root/.cyguide ghcr.io/h45sh/cyguide

Install CyGuide into an isolated application environment:

pipx install cyguide

(Ensure system security tools are installed via the Universal Installer or native package managers below).


Option 3: Install from PyPI or Source

If working inside a virtual environment or contributing to CyGuide:

# Install from PyPI
pip install cyguide

# OR clone and install editable for development
git clone https://github.com/h45sh/cyguide.git
cd cyguide
pip install -e .

Installing Security Tools & Dependencies

CyGuide orchestrates standard CLI security tools. You can install them automatically using our universal installer, or manually with your package manager:

CyGuide includes an intelligent dependency installer that auto-detects your OS and package manager, installs dependencies, handles fallbacks (e.g. downloading official binaries if a tool isn't in your distro repos), and verifies the setup:

# Install system-wide (requires sudo)
./scripts/install_deps.sh

# Install standalone binaries into ~/.local/bin (no root/sudo needed)
./scripts/install_deps.sh --user

# Verify currently installed tools without making changes
./scripts/install_deps.sh --check

B. Native Package Manager Commands

If you prefer to install packages manually using your distribution's native package manager:

Debian / Ubuntu / Linux Mint / Pop!_OS
sudo apt update
sudo apt install -y nmap gobuster nikto whois libxml-writer-perl curl unzip

# Install subfinder (official ProjectDiscovery binary release)
curl -fsSL https://github.com/projectdiscovery/subfinder/releases/download/v2.6.6/subfinder_2.6.6_linux_amd64.zip -o /tmp/subfinder.zip
unzip -q /tmp/subfinder.zip -d /tmp && sudo mv /tmp/subfinder /usr/local/bin/ && rm /tmp/subfinder.zip
Kali Linux / Parrot OS
# All tools are natively available in official Kali & Parrot repositories
sudo apt update
sudo apt install -y nmap gobuster nikto whois subfinder libxml-writer-perl
Arch Linux / Manjaro / EndeavourOS / BlackArch
sudo pacman -Syu --needed nmap gobuster nikto whois subfinder perl-xml-writer
Fedora / RHEL / CentOS Stream / Rocky / AlmaLinux
sudo dnf install -y nmap whois perl-XML-Writer curl unzip
# Gobuster / Nikto / Subfinder (or run ./scripts/install_deps.sh for automated binaries)
sudo dnf install -y gobuster nikto 2>/dev/null || ./scripts/install_deps.sh
openSUSE (Tumbleweed / Leap)
sudo zypper install -y nmap whois perl-XML-Writer curl unzip
./scripts/install_deps.sh
Alpine Linux
sudo apk add nmap gobuster nikto whois perl-xml-writer curl unzip
./scripts/install_deps.sh
macOS (Homebrew)
brew install nmap gobuster nikto whois subfinder

Launching CyGuide

# Launch with default centralized database (~/.cyguide/cyguide.db)
cyg

# Launch with a custom data directory
cyg --data-dir ~/.my_cyguide

# Launch with a custom SQLite database
cyg --db engagement.db

AI Configuration (Ollama & Cloud)

CyGuide supports both local, privacy-preserving LLMs and cloud APIs:

Local LLM (Ollama)

Launch with the --ollama flag and specify an optional model (defaults to gemma):

cyg --ollama --ollama-model llama3

Cloud LLM Providers

Set your API key via environment variable or in the in-app settings dialog (Ctrl+P -> Configuration):

export CYGUIDE_API_KEY="your_api_key_here"

# Optional overrides (defaults to OpenAI / gpt-4o)
export CYGUIDE_API_TYPE="openai"       # Options: openai, anthropic
export CYGUIDE_API_BASE="https://api.openai.com/v1" # E.g., OpenRouter, Groq, DeepSeek
export CYGUIDE_API_MODEL="gpt-4o"

Diagnostic Health Check

Verify your Python runtime, database write permissions, installed security tools, and AI backends:

cyg check

(Use cyg check --json for scriptable JSON output in CI/CD pipelines).


Session Portability & Reporting

  • Export Session (cyg export): Creates a portable .db archive of findings, relationships, and raw commands:
    cyg export <session_id> exports/my_session.db
    
  • Generate Technical Report: Produces a structured executive Markdown summary:
    cyg export <session_id> exports/my_session.db --report reports/investigation.md
    
  • Import Session (cyg import): Restores an archive into your local workspace:
    cyg import exports/my_session.db
    

Documentation Hub

Our complete documentation is organized using the Diátaxis Framework:


Contributing

Contributions are warmly welcomed! Please read our Contributing Guide to learn how to create new tool plugins, configure pre-commit hooks, and run the verification pipeline:

./scripts/verify.sh

License

This project is licensed under the MIT License - see the LICENSE file for details.

Metadata

Release files for cyguide 1.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cyguide 1.6.0
File Size Uploaded Provenance Actions
cyguide-1.6.0.tar.gz 117.0 kB With provenance Details for cyguide-1.6.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for cyguide 1.6.0
File Interpreter ABI Platform Actions
cyguide-1.6.0-py3-none-any.whl Python 3 none any Details for cyguide-1.6.0-py3-none-any.whl

Total release size: 249.8 kB

Release files / cyguide-1.6.0.tar.gz

Download URL cyguide-1.6.0.tar.gz
Size 117.0 kB
Tags Source
SHA-256 checksum
How to use checksums
8f6e777d60a629664d141dfed95c151c1c9b3be461f9615088dbed2716a6746a
BLAKE2b-256 checksum
How to use checksums
c0a5be6de997ac83415187fef21a5a71e73120507b1b6fe2ec202ce4b0734e23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 7, 2026.

Transparency log

Release files / cyguide-1.6.0-py3-none-any.whl

Download URL cyguide-1.6.0-py3-none-any.whl
Size 132.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
54aad5ac1415ae38fb82a1fb0159de2d11024baa774a7c122c49953b92cabf35
BLAKE2b-256 checksum
How to use checksums
b62c73a036555c4edf5dd2d5f3087d1eacc178d65540b514d2852dccc5aab3ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 7, 2026.

Transparency log

Security for cyguide 1.6.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for cyguide-1.6.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 7, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page