Skip to main content

CyGuide – TUI-Based Guided Cybersecurity Learning and Terminal Tool Orchestration Platform

CyGuide is a Terminal User Interface (TUI) platform for cybersecurity education, designed as a pluggable ecosystem for security tools.

🏗️ New Plugin Architecture

CyGuide has been restructured into a "Smart Adapter / Stupid Framework" model:

  • Core Engine (cyguide/engine): Manages a stateful entity graph and event log using SQLite.
  • Unified Schemas (cyguide/schemas): Defines a shared language for security findings (Hosts, Services, Endpoints, etc.).
  • Plugin System (tools/): Allows adding new tools (nmap, gobuster, etc.) without touching the core codebase.
  • Textual TUI (cyguide/ui): A modern, async terminal interface.

🚀 Getting Started

Prerequisites

  • Python 3.11+
  • (Optional) Ollama for local LLM explanations.

To automatically install all required security tools (nmap, gobuster, nikto, whois, subfinder) and their system dependencies on Linux/macOS, run:

./scripts/install_deps.sh

Installation

# Clone and install in editable mode
pip install -e .

Launching

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

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

LLM Configuration

CyGuide supports both local and cloud-based LLMs for generating explanations:

Local (Ollama)

Launch with the --ollama flag and optionally specify a model (defaults to gemma):

cyg --ollama --ollama-model llama3

Cloud APIs (OpenAI, Anthropic, OpenRouter, Grok, etc.)

CyGuide uses environment variables to configure cloud LLM providers. You can set these in your shell or copy .env.example to .env.

# Required
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., https://openrouter.ai/api/v1
export CYGUIDE_API_MODEL="gpt-4o"      # E.g., claude-3-5-sonnet-20240620

🩺 Diagnostic Health Check

Verify your environment, database permissions, installed security tools, and AI backends:

cyg check

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

💾 Session Portability & Reporting

CyGuide provides built-in mechanisms to export, import, and generate reports from your investigations:

1. Machine-Readable Database Exports (exports/)

Export a standalone, self-contained SQLite archive of a specific session containing its full entity graph, relationships, and raw command execution logs:

cyg export <session_id> exports/my_session.db

Import a previously exported session .db into your local workspace on any machine:

cyg import exports/my_session.db
  • Who are Exports for?
    • Instructors & Graders: Students can export their lab/CTF session into an archive and submit it. Instructors can run cyg import to review findings, topology, and execution timelines in the TUI.
    • Security Teams: Analysts can share specific engagement graphs with team members for peer review or shift handoffs without exposing the entire global database.
    • Archiving: Lightweight, standalone backups of completed pentest engagements or CTF challenges.

2. Human-Readable Markdown Reports (reports/)

Generate a formatted executive and technical Markdown report summarizing all discovered hosts, services, vulnerabilities, and executed commands:

cyg export <session_id> exports/my_session.db --report reports/my_session_report.md

(You can also trigger automatic export and reporting directly inside Power Mode by pressing Ctrl+E).

📜 Utility Scripts

CyGuide includes dedicated helper scripts under scripts/:

Script Purpose
./scripts/install_deps.sh Automatically installs required system tools (nmap, gobuster, nikto, whois, subfinder) and Perl XML dependencies across Debian/Ubuntu, Arch, Fedora/RHEL, and macOS (Homebrew).
./scripts/verify.sh Runs the comprehensive verification pipeline: executes the 86-test pytest suite, validates and regenerates the 15-schema documentation, and checks integration pipelines.
./scripts/generate_schema_registry.py Introspects the cyguide.schemas module and dynamically updates docs/developer/SCHEMA_REGISTRY.md with active finding schemas and Primary Identity Keys (PIKs).

✅ Testing & Verification

To verify the codebase stability and ensure documentation is in sync with the schemas, run:

./scripts/verify.sh

🛠️ Adding a Tool

CyGuide is built for extensibility. See docs/user/CONTRIBUTING.md to learn how to write a new adapter.

📚 Documentation

📂 Project Structure & Data Isolation

  • cyguide/: The core application package (engine, schemas, modes, TUI).
  • tools/: Tool plugin adapters and manifests (nmap, gobuster, nikto, whois, subfinder).
  • scripts/: Development and system installation scripts.
  • docs/: Technical and user documentation.
  • data/: Default directory for local runtime SQLite databases (cyguide.db) and scratchpad notes (ignored from version control).
  • exports/: Destination for exported portable session .db archives (ignored from version control).
  • reports/: Destination for generated Markdown investigation reports (ignored from version control).

Metadata

Release files for cyguide 1.0.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.0.0
File Size Uploaded Provenance Actions
cyguide-1.0.0.tar.gz 74.8 kB With provenance Details for cyguide-1.0.0.tar.gz

Built distribution (wheel)

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

Total release size: 166.2 kB

Release files / cyguide-1.0.0.tar.gz

Download URL cyguide-1.0.0.tar.gz
Size 74.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ed5735a95cfe6d60e9f347847b8198e6177fa2879a51af63e65284490bac90f3
BLAKE2b-256 checksum
How to use checksums
93cf39cffe391037eab209e393b676e2790452135d8d1bb11d8f28ec60898b81
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 4, 2026.

Transparency log

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

Download URL cyguide-1.0.0-py3-none-any.whl
Size 91.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fe15bee539d7e46ffaa21deff312f55f389b0ce18a940fd643580110e2af5f86
BLAKE2b-256 checksum
How to use checksums
91f3788034695c56eea372226c42831138c5f92b20824c4240bea902860afe28
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 4, 2026.

Transparency log

Security for cyguide 1.0.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.0.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 4, 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