Skip to main content

CyGuide

CI CodeQL PyPI Python Docker Website 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.

For an interactive overview and project showcase, visit the official webpage at https://h45sh.com/portfolio/cyguide/.

CyGuide Power Mode Terminal Workstation Demo
🎬 Watch the Full Terminal Workstation Video Walkthrough (assets/demo.mp4)


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.

Workstation Interface

CyGuide features two distinct terminal operational modes and an integrated diagnostic suite:

1. Power Mode (Multi-Tab Concurrent Workbench)

Run multiple asynchronous security tools concurrently, interact with live target graphs, and resolve $TARGET, $PORT, and $SERVICE variables on the fly:

CyGuide Power Mode

2. Dashboard Hub (Workspace & Session Management)

Organize complex penetration tests and CTFs into discrete workspaces and isolated sessions with full archive, rename, and export support (Ctrl+N, Ctrl+S):

CyGuide Dashboard Hub

3. Guided Learning Mode & Interactive Tool Browser

Explore tool recipes, inspect command flags before execution, and receive AI-guided security breakdowns and hardening steps:

CyGuide Guided Learning Mode

CyGuide Learning Mode Tool Selection

4. In-App Diagnostics & Unified Command Palette

Inspect security binary availability on $PATH in real time with Ctrl+P -> Tool Health, and configure AI providers, database paths, and custom plugins:

CyGuide Tool Health Diagnostics

CyGuide Command Palette


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.8.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.8.0
File Size Uploaded Provenance Actions
cyguide-1.8.0.tar.gz 129.2 kB With provenance Details for cyguide-1.8.0.tar.gz

Built distribution (wheel)

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

Total release size: 273.9 kB

Release files / cyguide-1.8.0.tar.gz

Download URL cyguide-1.8.0.tar.gz
Size 129.2 kB
Tags Source
SHA-256 checksum
How to use checksums
5d1c9596015c98257d73add46468fbef35e5b437eabe0b0d6524398065b1baee
BLAKE2b-256 checksum
How to use checksums
2efc4efb20cd1d7da5f2ddbb894e145e33f6ccceb975fb53832a5fa6c257e3c2
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 12, 2026.

Transparency log

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

Download URL cyguide-1.8.0-py3-none-any.whl
Size 144.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4418a9bc938a13a51df4ba541b3d6a666f7289c73df22406bf8fac6fc5e732a4
BLAKE2b-256 checksum
How to use checksums
8ac2a02e54b9cac7722c25500a1e2c94f10c88712e264e609e1e22e50303268e
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 12, 2026.

Transparency log

Security for cyguide 1.8.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.8.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 12, 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