Thanks to visit codestin.com
Credit goes to github.com

Skip to content

mattcookio/configrep

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ConfiGREP 🔍

Find any config value in seconds. A fast CLI tool that discovers and searches through all your configuration files (.env, .json, .yaml, .toml, .ini) with an intuitive Miller Columns interface.

Why ConfiGREP?

Ever wondered where that API key is stored? Or which config file has the database URL? ConfiGREP instantly finds any configuration value across your entire project.

Quick Start

# Run without installation
npx configrep

# Or install globally
npm install -g configrep
cfg  # Use the short 'cfg' command

Core Features

  • Auto-discovery - Finds all config files in your project automatically
  • Miller Columns UI - Navigate configs like macOS Finder
  • Smart search - Search by key, value, or both with regex support
  • Cross-format - Works with .env, JSON, YAML, TOML, and INI files
  • Tree display - View nested configs in hierarchical or flat format

Commands & Examples

Interactive Mode (Default)

cfg                    # Launch interactive explorer
cfg interactive        # Same as above
cfg i                  # Shorthand

# Navigate with arrow keys, filter with 'f', search with '/'
# Press Enter on any value to copy or find similar keys

Search Configurations

# Find database connections
cfg search "database"
cfg search "postgres|mysql|mongo"

# Find all API keys and tokens
cfg search "key|token|secret|password"

# Search only in keys (useful for finding specific settings)
cfg search "timeout" --keys-only

# Search only in values (useful for finding hardcoded IPs/URLs)
cfg search "192.168" --values-only
cfg search "localhost|127.0.0.1" --values-only

# Find staging vs production values
cfg search "staging|prod|development"

List Config Files

# See all config files in your project
cfg list
cfg ls                 # Shorthand

# Find configs in specific directories
cfg list --dir ./src
cfg list --dir ./config

# Exclude test configs
cfg list --ignore "*.test.*" "*.spec.*"

Show Config Contents

# Display all configuration values
cfg show
cfg s                  # Shorthand

# Show specific file
cfg show --file .env
cfg show --file package.json

# Display as nested tree structure
cfg show --tree
cfg show --file tsconfig.json --tree

# Show configs from specific directory
cfg show --dir ./config

Advanced Usage

Create a config file for defaults

cfg init

# Creates configrep.json:
{
  "directory": ".",
  "ignore": ["node_modules", "dist", ".git"],
  "depth": 5,
  "defaultCommand": "interactive"
}

Audit sensitive data

# Find potentially exposed secrets
cfg search "api_key|api_secret|private_key|access_token"

# Check for hardcoded passwords
cfg search "password" --values-only | grep -v "ENV\|env\|process"

# Find non-environment database URLs
cfg search "mongodb://|postgres://|mysql://" --values-only

Debug configuration issues

# Compare key names across files (finds typos/inconsistencies)
cfg show | grep "AUTH" | sort | uniq

# Find duplicate keys
cfg show | cut -d'=' -f1 | sort | uniq -d

# Check which configs are using environment variables
cfg search "\$\{.*\}" --values-only

Migration and refactoring

# Find all timeout settings to standardize
cfg search "timeout|ttl|expir" --keys-only

# Locate all external service URLs
cfg search "http://|https://" --values-only

# Find all port configurations
cfg search "port" --keys-only

Options

Option Description
--dir <path> Directory to search (default: current)
--ignore <patterns...> Glob patterns to ignore
--depth <number> Max directory depth (default: 5)
--tree Display nested structure (show/search)
--keys-only Search only in keys
--values-only Search only in values
--file <path> Target specific file
--all Show all matches, not just first

Tips

  • Use cfg in your project root for best results
  • Create configrep.json to save your preferred settings
  • Pipe output to other tools: cfg search "api" | grep prod
  • Use --tree flag for better visualization of nested configs

License

MIT

About

A powerful CLI tool for exploring and managing configuration files

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published