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)
Ollamafor 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 importto 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.
- Instructors & Graders: Students can export their lab/CTF session into an archive and submit it. Instructors can run
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
- User Manual: Operating guide, keyboard shortcuts, UI panel descriptions, and export/import usage.
- Architecture & Domain Context: System design details, database schemas, and facade layers.
- Database Architecture & Specification: Exhaustive database models, PIK hashing, ER diagrams, and portability.
- Schema Registry: Standard 15-schema vocabulary and Primary Identity Key (PIK) rules.
- Roadmap & Progress Tracker: Unified project phases, task checklists, and historical walkthroughs.
- Autonomous Agent Harness Vision: Architecture for autonomous AI agents, HITL safety gates, and multi-agent roles.
- Developer Performance Notes: Real-time streaming, event loops, and CPU load roadblocks.
- Contributors: Project ownership and governance.
📂 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.dbarchives (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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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 logRelease 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 logSecurity 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.
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 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.