CyGuide
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/.
🎬 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
.dbarchives 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:
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):
3. Guided Learning Mode & Interactive Tool Browser
Explore tool recipes, inspect command flags before execution, and receive AI-guided security breakdowns and hardening steps:
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:
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) • ExecutionSession (PTY Spool) │
│ • GraphStore (PIK Deduplication) • ActionTimelineRepository │
└───────────────────────────────────┬────────────────────────────────────┘
│ Event Streaming
┌───────────────────────────────────▼────────────────────────────────────┐
│ Security Tool Adapters │
│ nmap • gobuster • nikto • whois • subfinder • custom... │
└────────────────────────────────────────────────────────────────────────┘
- Core Engine (
cyguide/engine): Asynchronous process execution sessions with disk spooling, policy gateway, action timeline repository, workspace repository, and SQLite graph store. - Unified Schemas (
cyguide/schemas): 15 standard Pydantic models defining shared security entities with declarative canonicalization. - 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
Option 2: Install via pipx (Recommended for Python CLI Users)
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:
A. Automated Universal Installer (Recommended)
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.dbarchive 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:
- Project Webpage: Interactive project overview, features, and showcase.
- Documentation Master Hub: Central portal with role-based reading paths.
- User Manual: Navigation guide, hotkeys master table, and UI workflows.
- Architecture & Domain Context: Subsystem pipelines, ADRs, and facade contracts.
- Database Architecture & Specification: Relational schema, PIK hashing, and ER diagrams.
- Schema Registry: Standard 15-schema finding models and identity keys.
- Roadmap & Progress Tracker: Project phases, active tasks, and historical milestones.
- Autonomous Agent Harness Vision: Architecture for autonomous ReAct loops and safety gates.
- Developer Performance Notes: Real-time streaming, event loops, and lessons learned.
- Security Policy: Vulnerability disclosure channels, response SLAs, and threat model scope.
- Contributing Guide: Step-by-step guide for creating new tool plugins, code standards, and PR templates.
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.9.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| cyguide-1.9.0.tar.gz | 156.4 kB | With provenance | Details for cyguide-1.9.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| cyguide-1.9.0-py3-none-any.whl | Python 3 | none | any | Details for cyguide-1.9.0-py3-none-any.whl |
Total release size: 330.1 kB
Release files / cyguide-1.9.0.tar.gz
| Download URL | cyguide-1.9.0.tar.gz |
|---|---|
| Size | 156.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
83c37c5b0895518c812cc70aab911c172faf4683ad619147331eb4897590a7b6
|
|
BLAKE2b-256 checksum How to use checksums |
5852f34a90ae5fc4eb3222fd598eb1d262fe2fd0c01289336be503809a6d858d
|
| 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 14, 2026.
Transparency logRelease files / cyguide-1.9.0-py3-none-any.whl
| Download URL | cyguide-1.9.0-py3-none-any.whl |
|---|---|
| Size | 173.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
aa6522e75498ddaa2feea13d259a4e625f2909d7106d362445698e4aa25d797f
|
|
BLAKE2b-256 checksum How to use checksums |
e97f9a1d130a3916deffca7f11435f63595b6c494c5d51dc1fec8dc506a98988
|
| 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 14, 2026.
Transparency logSecurity for cyguide 1.9.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.
Attestation for cyguide-1.9.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 14, 2026.
Transparency logA 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.