Skip to main content

Lykos - Git Secret Guardian

lykos Logo

A comprehensive Python toolkit for detecting, removing, and preventing secrets in Git repositories. This suite combines scanning, history cleaning, and protection mechanisms to secure your codebase.

Quick Start

pip install -r requirements.txt

# full protection workflow
lykos protect --confidence HIGH

lykos scan --all --confidence MEDIUM

TLDR - Essential Commands

lykos scan --all --confidence HIGH
lykos scan --recent 50 --confidence MEDIUM # last 50 commits

# this will install a hook 
lykos guard --install --confidence HIGH

# clean secrets manually from history
lykos clean --confidence HIGH
lykos clean --scope all --confidence MEDIUM

Example: lykos clean --replace "AIzaSyMaps567890abcdefghijklmnopqrstuv==REDACTED_OPENAI_KEY" ## this will replace whatever secrets you have with REDACTED_OPENAI_KEY

# full workflow
lykos protect --confidence HIGH

lykos guard --check-files *.py --confidence HIGH
lykos guard --check-staged --confidence HIGH

lykos status 

Commands Overview

Command Purpose
lykos scan Scan git history for potential or known secrets
lykos guard Install pre-commit hooks to prevent secrets from going into your git
lykos clean Removes secrets from git history
lykos protect Complete workflow: scan, clean, and setup protection

Command Usage

1. Scanning (lykos scan)

Scan git history for potential secrets using patterns and entropy analysis.

lykos scan --all --confidence MEDIUM

# last 50 commits on current branch
lykos scan --recent 50 --confidence HIGH

# scan specific branch without switching
lykos scan --branch main --confidence HIGH

# custom output file and entropy threshold
lykos scan --all --output my_secrets.json --entropy 5.0 --confidence LOW

# Save report instead of interactive mode
lykos scan --recent 100 --save-report --confidence MEDIUM

Tip: If you omit --all, --branch, and --recent, lykos already scopes the scan to the current branch by default. So a plain:

Features:

  • Pattern matching for AWS, Google, GitHub, OpenAI, Stripe keys
  • Shannon entropy detection for generic high-entropy strings
  • Confidence scoring system (HIGH/MEDIUM/LOW/VERY_LOW)
  • Interactive cleaning workflow
  • JSON report generation

2. Pre-commit Protection (lykos guard)

Prevent secrets from being committed in the first place.

lykos guard --install --confidence HIGH

lykos guard --check-staged --confidence MEDIUM

# Check specific files
lykos guard --check-files file1.py file2.py --confidence HIGH

# Check entire directory
lykos guard --check-dir src/ --confidence MEDIUM

# Strict mode (blocks commits for any violation)
lykos guard --check-staged --strict --confidence LOW

Features:

  • Automatic git hook installation
  • Configurable confidence thresholds

3. History Cleaning (lykos clean)

Remove secrets from git history using git-filter-repo.

# clean secrets from currently-checked-out files
lykos clean --confidence MEDIUM

# Clean from all branches
lykos clean --scope all --confidence HIGH

# you can do manual replacements if lykos fails to flag it out
lykos clean --replace "old_secret==NEW_SECRET" --confidence HIGH

# multiple manual replacements
lykos clean --replace "secret1==REDACTED" --replace "secret2==REDACTED" --confidence MEDIUM

Features:

  • Auto backup branch creation
  • Integration with scanner confidence scores
  • Able to do manual replacement

4. Complete Protection (lykos protect)

Full workflow: scan for secrets, clean history, and setup protection.

# complete protection workflow with HIGH confidence
lykos protect --confidence HIGH

# Protect recent commits only
lykos protect --recent 100 --confidence MEDIUM

# Dry run to see what would be done
lykos protect --dry-run --confidence HIGH

# Custom report file
lykos protect --report my_custom_report.json --confidence MEDIUM

Quick Workflows

Emergency: "I just committed a secret!"

# Quick scan and clean recent commits
lykos protect --recent 10 --confidence HIGH

# Then immediately:
# 1. Revoke the exposed key
# 2. Force push: git push --force-with-lease
# 3. Notify team to re-clone

Secure New Repository

# Setup protection for new repo
lykos guard --install --confidence HIGH

Check Repository Status

# Get security status overview
lykos status

Config

Confidence Levels

Choose the appropriate confidence level for your security needs:

  • HIGH (0.8+): Only very likely real secrets (recommended for production)
  • MEDIUM (0.5+): Probable secrets with some false positives (good default)
  • LOW (0.2+): Includes more potential secrets (higher false positive rate)
  • VERY_LOW (0.05+): Maximum sensitivity (many false positives)
# High security - only block/clean obvious secrets
lykos guard --install --confidence HIGH
lykos clean --scope working --confidence HIGH ## rewrite current files
lykos clean --scope history --confidence MEDIUM ## rewrite full history

# Balanced approach - good for most teams
lykos protect --confidence MEDIUM

# Maximum sensitivity - catches everything
lykos scan --all --confidence VERY_LOW

Entropy Threshold

Adjust sensitivity for high-entropy detection:

# More sensitive (lower threshold)
lykos scan --all --entropy 4.0 --confidence MEDIUM

# Less sensitive (higher threshold)  
lykos scan --all --entropy 5.5 --confidence MEDIUM

False Positives

Add known false positives to .secretsignore:

# Create .secretsignore file
echo "YOUR_CUSTOM_TEST_KEY" >> .secretsignore
echo "EXAMPLE_TOKEN_12345" >> .secretsignore

Security Best Practices

After Finding Secrets:

  1. IMMEDIATELY revoke/regenerate the exposed keys
  2. Clean git history: lykos clean --confidence HIGH
  3. Force push the cleaned history: git push --force-with-lease
  4. Check access logs for unauthorized usage
  5. Notify team members to re-clone the repository
  6. Update applications using the compromised keys

Prevention:

  1. Install pre-commit hooks: lykos guard --install --confidence HIGH
  2. Use environment variables for secrets
  3. Use secret management services (AWS Secrets Manager, HashiCorp Vault)
  4. Regular security audits: lykos scan --all --confidence MEDIUM
  5. Team training on secure coding practices

Detection Capabilities

Pattern-Based Detection:

  • AWS Access Keys (AKIA...)
  • AWS Secret Keys (40-char base64)
  • Google API Keys (AIza...)
  • GitHub Tokens (ghp_...)
  • OpenAI API Keys (sk-...)
  • Anthropic API Keys (sk-ant-...)
  • Stripe Keys (sk_live_..., sk_test_...)
  • JWT Tokens (eyJ...)
  • Private Keys (-----BEGIN...)
  • Generic API Keys (pattern-based)
  • Bearer Tokens

Entropy-Based Detection:

  • High-entropy strings that look random
  • Configurable threshold (default: 4.5)
  • Excludes common false positives
  • Smart filtering for timestamps and IDs

Confidence Scoring:

  • HIGH: Very likely real secrets (AWS keys, GitHub tokens, etc.)
  • MEDIUM: Probable secrets with good patterns
  • LOW: Possible secrets, may include false positives
  • VERY_LOW: Maximum sensitivity, many false positives

Important

!!! Git History Rewriting !!!:

  • Creates backup branches automatically
  • Changes commit hashes - coordinate with team
  • Requires force push after cleaning
  • Team needs to re-clone after history rewrite

Dependencies:

  • Requires git-filter-repo for history cleaning: pip install git-filter-repo
  • Python 3.9+ required
  • Git repository required for most operations

Performance:

  • Full repository scans can be slow on large repos
  • Use --recent N for faster scans during development
  • Pre-commit hooks add minimal overhead

Exit Codes

lykos uses exit codes:

  • 0: Success, no secrets found
  • 1: Warnings or low-confidence secrets found
  • 2: High-confidence secrets found (action required)

License

This toolkit is designed for security purposes. Use responsibly and in accordance with your organization's security policies.

Metadata

Release files for lykos 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lykos 0.0.1
File Size Uploaded Provenance
lykos-0.0.1.tar.gz 45.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for lykos 0.0.1
File Interpreter ABI Platform
lykos-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 97.6 kB

Release files / lykos-0.0.1.tar.gz

Download URL lykos-0.0.1.tar.gz
Size 45.7 kB
Tags Source
SHA-256 checksum
How to use checksums
6ff5d1acc1a0006f70ca41ca1f1d1f4be0de7666afa1bff909c881d43256419a
BLAKE2b-256 checksum
How to use checksums
6284f627b84b010541ae18a02b2ce3fe5da8caa2fcdd77f1e5a6c51369a41802
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.6

Release files / lykos-0.0.1-py3-none-any.whl

Download URL lykos-0.0.1-py3-none-any.whl
Size 51.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
53e7643fd3ab256586924d88ccca46cfcb01ca354be74a2b1669ca43e297f26f
BLAKE2b-256 checksum
How to use checksums
473c65290f97789a9050829814ac15b90d664644f98d07e82c6cc2e65e4573da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.6

Security for lykos 0.0.1

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A 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.

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page