Skip to main content

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

Project description

Kekkai CLI Logo

Stop parsing JSON. Security triage in your terminal.


Kekkai

Interactive security triage in the terminal.

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

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 Policy Gate

Break builds on severity thresholds.

Kekkai can be used as a CI gate based on severity thresholds.

# Fail on any critical or high findings
kekkai scan --ci --fail-on high

# Fail only on critical
kekkai scan --ci --fail-on critical

Exit Codes:

Code Meaning
0 No findings above threshold
1 Findings exceed threshold
2 Scanner error

GitHub Actions Example:

- name: Security Scan
  run: |
    pipx install kekkai-cli
    kekkai scan --ci --fail-on high

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.0.1.tar.gz (203.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.0.1-py3-none-any.whl (188.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: kekkai_cli-2.0.1.tar.gz
  • Upload date:
  • Size: 203.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.0.1.tar.gz
Algorithm Hash digest
SHA256 175be88bd347f962e4d75b261d2c55c4ce33be9f3e66e5ee4b9a26313ae33665
MD5 80b6ff04608387b0c61b94839a4c7ec6
BLAKE2b-256 780dccb816b6a88d348aabb867c298c58ca31b4ab0fa65b5e1258ab1fc2bdf86

See more details on using hashes here.

File details

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

File metadata

  • Download URL: kekkai_cli-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 188.9 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.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2a02eb93580fb7307d046627a585db530a52a5ddd5522aad0931bfed2cd472b2
MD5 f4fff47b0524d5239ee2d7ac0359b429
BLAKE2b-256 66abe8c5542a3915922cd9d6b7ea1eb18e80074f1de61bf620aef1a521243ca0

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