The ecosystem

Fourteen packages. One coherent map.

Every package reads and writes the same klyrek-core data model, so output from one feeds directly into the next, no glue code required. Install the whole thing with klyrek-cli, or pull in only the package a job needs.

klyrek-core

Shared models & scope guard

Config, logging, plugin registry, and the authorization-scope guard every other package builds on.

klyrek-http

Scope-checked HTTP client

Rate-limited client that re-checks scope on every redirect hop, not just the first request.

klyrek-crawler

Structural crawling

Breadth-first crawl mapping pages, forms, and JavaScript references within declared scope.

klyrek-tech

Technology fingerprinting

Signature-based detection of servers, frameworks, CMSes, and JS libraries.

klyrek-headers

Headers & misconfiguration

Flags missing security headers, permissive CORS, weak cookie flags, and other low-hanging findings.

klyrek-api

API surface discovery

OpenAPI/Swagger discovery, GraphQL detection, and REST-pattern classification.

klyrek-auth

Auth flow mapping

Classifies login/register forms and detects session mechanisms and auth-gated routes.

klyrek-js

JavaScript endpoint discovery

Extracts endpoints, hardcoded secrets, and exposed source maps from JavaScript.

klyrek-assets

Exposed storage & assets

Subdomain enumeration, cloud storage exposure, and sensitive file probing.

klyrek-osint

Public intelligence

Certificate transparency, WHOIS, and CVE lookups from free public sources.

klyrek-report

Report generation

Markdown, JSON, and self-contained HTML reports with remediation guidance.

klyrek-monitor

Scan diffing

Snapshots a scan and diffs it against the next one to surface what changed.

klyrek-cli

Unified command line

The klyrek crawl command tying every package together into one run.

klyrek-dashboard

Terminal dashboard

Interactive terminal UI for browsing a scan result, no browser required.

Developer experience

Installed in one line. Scriptable in ten.

Use the CLI for a quick pass, or drop into the Python API when you need to fold Klyrek into a larger pipeline.

terminal
$ pip install klyrek-cli
$ klyrek crawl https://target.example.com --format html

Klyrek: scanning https://target.example.com (authorized targets only)

 Done: 47 endpoints, 6 technologies, 12 findings.
 Report written to ./klyrek_output/target.example.com_20260705T091500Z.html
recon.py
from klyrek_cli.pipeline import PipelineOptions, run_scan
from klyrek_auth.forms import find_auth_forms

options = PipelineOptions(max_depth=4, run_js=True, run_assets=True)
result = run_scan("https://target.example.com", options=options)

for form in find_auth_forms(result.endpoints):
    print(form.kind, form.endpoint.url)
my_plugin.py
from klyrek_core.plugins import Plugin, register_plugin

@register_plugin
class GraphQLFinder(Plugin):
    name = "graphql"
    category = "tech-fingerprint"

    def run(self, response):
        if "/graphql" in str(response.url):
            return "graphql-api"

Built to fit your workflow

Every package respects the same conventions, so moving between them costs nothing.

  • Typed public APIs, so your editor tells you what a `ScanResult` can do.
  • Every module reads and writes the same `ScanResult` object, no adapters to write.
  • A plugin is a Python class with one method. Ship it privately or fold it into the pipeline.
  • JSON and Markdown export out of the box, so reports slot into whatever you already use.

Stop mapping by hand.

Install Klyrek, point it at a target you're authorized to test, and start your next engagement already knowing the terrain.