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.1.tar.gz (218.1 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.1-py3-none-any.whl (197.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: kekkai_cli-2.2.1.tar.gz
  • Upload date:
  • Size: 218.1 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.1.tar.gz
Algorithm Hash digest
SHA256 bd4cb4aff2483ec56c433f2e2e91d928ecf7afd4011039619dcb89788b256d89
MD5 3ac18ed411fbe82c7b9b7aad0db8b6bf
BLAKE2b-256 a54554ee05bb2095927552a0f3488f4e68b3e771145e1cd7bb670a78caf4b026

See more details on using hashes here.

File details

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

File metadata

  • Download URL: kekkai_cli-2.2.1-py3-none-any.whl
  • Upload date:
  • Size: 197.5 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 96dcec4f4ca96626f7faf1a720342ebac261c128e5c814c5266d6d1c65a76164
MD5 ef7955bc819c65462c1785738a2e0111
BLAKE2b-256 74c09fd436eaa64a92f1eacccf4c4e3bee83674d006a7321976e8584b9dd10e8

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