Skip to main content

Terminal UI for Trivy/Semgrep/Gitleaks. Local-first security triage.

Project description

Kekkai CLI Logo

Interactive security triage in the terminal.

PyPI - Version


Kekkai

Stop parsing JSON.

Kekkai is a small open-source CLI that wraps existing security scanners (Trivy, Semgrep, Gitleaks) and focuses on the part that tends to be slow and frustrating: reviewing and triaging results.

Running scanners is easy. Interpreting noisy output, dealing with false positives, and making CI usable is not. Kekkai exists to make that part tolerable..

Hero GIF


What it does

  • Runs Trivy (dependencies), Semgrep (code), and Gitleaks (secrets)
  • Normalizes their outputs into a single report format
  • Provides an interactive terminal UI for reviewing findings
  • Lets you mark findings as false positives and persist decisions locally
  • Supports CI mode with severity-based failure thresholds

Kekkai does not replace scanners or introduce proprietary detection logic. It sits on top of existing tools and focuses on workflow and UX.


Quick Start

Requires Docker and Python 3.12

1. Install

pipx install kekkai-cli

2. Scan

kekkai scan
# Runs Trivy (CVEs), Semgrep (code), Gitleaks (secrets)
# Outputs unified kekkai-report.json

3. Triage

kekkai triage
# Interactive TUI to review findings with keyboard navigation

⚡️ Auto-Install (Pre-commit)

Add this to your .pre-commit-config.yaml to scan on every commit:

  - repo: [https://github.com/kademoslabs/kekkai](https://github.com/kademoslabs/kekkai)
    rev: v2.0.1
    hooks:
      - id: kekkai-scan

No signup, no cloud service required.


Why Kekkai?

Problem Kekkai Solution
Juggling 3+ tools One CLI for Trivy, Semgrep, Gitleaks
Reading JSON logs Interactive terminal UI
Installing scanners Auto-pulls Docker containers
Parsing different formats Unified kekkai-report.json
False positives Mark and ignore with .kekkaiignore
CI/CD integration kekkai scan --ci --fail-on high

Features

Interactive Triage TUI

Stop reading JSON. Use keyboard navigation to review findings, mark false positives, and generate ignore files.

kekkai triage

Controls:

  • j/k or ↑/↓: Navigate findings
  • f: Mark as false positive
  • c: Confirm finding
  • d: Defer/ignore
  • Ctrl+S: Save decisions
  • q: Quit

Triage TUI

Full Triage Documentation →


🚦 CI/CD in 1 Second

Don't write YAML. Run this in your repo:

kekkai init --ci

Full CI Documentation →


GitHub PR Comments

Get security feedback directly in pull requests.

export GITHUB_TOKEN="ghp_..."
kekkai scan --pr-comment

Unified Scanning

Run industry-standard scanners without installing them individually. Each scanner runs in an isolated Docker container.

kekkai scan                          # Scan current directory
kekkai scan --repo /path/to/project  # Scan specific path
kekkai scan --output results.json    # Custom output path

Scanners Included:

Scanner Finds Image
Trivy CVEs in dependencies aquasec/trivy:latest
Semgrep Code vulnerabilities semgrep/semgrep:latest
Gitleaks Hardcoded secrets zricethezav/gitleaks:latest

Container Security:

  • Read-only filesystem
  • No network access
  • Memory limited (2GB)
  • No privilege escalation

Design choices

  • Local-first: no SaaS required, runs entirely on your machine or CI
  • No network access for scanner containers
  • Read-only filesystems, memory-limited containers
  • Uses existing tools instead of reimplementing scanners
  • Terminal-first UX instead of dashboards

Optional features

These are opt-in and not required for basic use:

Local-First AI Threat Modeling

Generate STRIDE threat models with AI that runs on your machine. No API keys. No cloud.

# Ollama (recommended - easy setup, privacy-preserving)
ollama pull mistral
kekkai threatflow --repo . --model-mode ollama --model-name mistral

# Output: THREATS.md with attack surface analysis and Mermaid.js diagrams

Supports:

  • Ollama (recommended)
  • Local GGUF models (llama.cpp)
  • OpenAI/Anthropic (if you trust them with your code)

Full Local-First AI Threat Modeling Documentation →


DefectDojo Integration

Spin up a vulnerability management dashboard locally if you need it.

kekkai dojo up --wait    # Start DefectDojo
kekkai upload            # Import scan results

What You Get:

  • DefectDojo web UI at http://localhost:8080
  • Automatic credential generation
  • Pre-configured for Kekkai imports

DefectDojo Quick Start →


AI-Powered Fix Engine

Generate code patches for findings (experimental).

kekkai fix --input scan-results.json --apply

Compliance Reporting

Map findings to PCI-DSS, OWASP, HIPAA, SOC 2.

kekkai report --input scan-results.json --format pdf --frameworks PCI-DSS,OWASP

What this is not

  • Not a replacement for commercial AppSec platforms
  • Not a new scanner or detection engine
  • Not optimized for large enterprises (yet)
  • Not a hosted service

Right now, Kekkai is aimed at individual developers and small teams who already run scanners but want better triage and less noise.


Security

Kekkai is designed with security as a core principle:

  • Container Isolation: Scanners run in hardened Docker containers
  • No Network Access: Containers cannot reach external networks
  • Local-First AI: run entirely on your machine
  • SLSA Level 3: Release artifacts include provenance attestations
  • Signed Images: Docker images are Cosign-signed

For vulnerability reports, see SECURITY.md.


Documentation

Guide Description
Installation All installation methods
ThreatFlow AI threat modeling setup
Triage TUI Interactive finding review
CI Mode Pipeline integration
DefectDojo Optional vulnerability management
Security SLSA provenance verification

Roadmap (short-term)

  1. Persistent triage state across runs (baselines)
  2. “New findings only” diffs
  3. Better PR-level workflows
  4. Cleaner reporting for small teams

Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.


License

Apache-2.0 — See LICENSE for details.


Built by Kademos Labs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kekkai_cli-2.2.0.tar.gz (213.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kekkai_cli-2.2.0-py3-none-any.whl (195.0 kB view details)

Uploaded Python 3

File details

Details for the file kekkai_cli-2.2.0.tar.gz.

File metadata

  • Download URL: kekkai_cli-2.2.0.tar.gz
  • Upload date:
  • Size: 213.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for kekkai_cli-2.2.0.tar.gz
Algorithm Hash digest
SHA256 1e6a29ead67855a838ad2ba615b2e755b1e9a6021aa74be2e9d5f50f60e4b017
MD5 12c0c6929e46646d63e9ecb8a0c66c35
BLAKE2b-256 a05d481b50aa6c4cac8676246c07bd9733468a1bec7a0571df5e92862d118880

See more details on using hashes here.

File details

Details for the file kekkai_cli-2.2.0-py3-none-any.whl.

File metadata

  • Download URL: kekkai_cli-2.2.0-py3-none-any.whl
  • Upload date:
  • Size: 195.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for kekkai_cli-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0902e0c206e07416a690a642c7674eb500e8e9655d5765fdb2c96acfa1c450ec
MD5 8b082a0658fe1405a044916a2dd74a69
BLAKE2b-256 a710e2c29b17be52f82442583f330eb0fb7325a73fb977739b43f63d9425e6d1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page