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 unified default application database (~/.cyguide/cyguide.db)
cyg

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

# 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 166-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.
  • ~/.cyguide/: Default unified application data directory storing runtime database (cyguide.db), scratchpad notes (scratchpad.md), persistent settings (settings.json), exported archives (exports/), and generated investigation reports (reports/) across any launch directory.

Metadata

Release files for cyguide 1.5.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.5.0
File Size Uploaded Provenance Actions
cyguide-1.5.0.tar.gz 112.4 kB With provenance Details for cyguide-1.5.0.tar.gz

Built distribution (wheel)

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

Total release size: 242.3 kB

Release files / cyguide-1.5.0.tar.gz

Download URL cyguide-1.5.0.tar.gz
Size 112.4 kB
Tags Source
SHA-256 checksum
How to use checksums
a13a3131d3e870671eae77389b53c915cbc04d7459ee464d455e35a1753b0231
BLAKE2b-256 checksum
How to use checksums
7dc1b8f5cd1f24ac027cb1c17c90b2e3c81ea5411d22f2b513e6a045d45afc99
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 6, 2026.

Transparency log

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

Download URL cyguide-1.5.0-py3-none-any.whl
Size 129.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
58f62c7801b026449f0a35f5533fc8edbded9ee3161dcb35c4bce6b06d442d1b
BLAKE2b-256 checksum
How to use checksums
770cb94cb0759561193efbe00b362962a2d65e09091c75f13d3c507486132a4d
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 6, 2026.

Transparency log

Security for cyguide 1.5.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.5.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 6, 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