This repository was archived by the owner on Mar 18, 2026. It is now read-only.
Repository navigation
v2.0.4
[2.0.4] - 2025-11-13
Added
- Complete CLI Refactoring: Major overhaul of the command-line interface with git-like subcommand structure
- New Command Structure: All commands now follow hierarchical subcommand pattern (
leakpy <command> <subcommand> [options]) searchCommand: Search LeakIX for leaks or services- Supports query strings, field extraction, bulk mode, and file output
lookupCommand with Subcommands: Lookup information about specific IPs, domains, or subdomainsleakpy lookup host <IP>- Get detailed information about a specific IP addressleakpy lookup domain <domain>- Get detailed information about a domain and its subdomainsleakpy lookup subdomains <domain>- Get list of subdomains for a specific domain
listCommand with Subcommands: List available plugins or fieldsleakpy list plugins- List all available LeakIX pluginsleakpy list fields- List all available fields from sample queries
configCommand with Subcommands: Manage API key configurationleakpy config set [API_KEY]- Set or update API key (interactive or direct)leakpy config reset- Delete stored API key
cacheCommand with Subcommands: Manage API response cacheleakpy cache clear- Clear all cached API responsesleakpy cache set-ttl <MINUTES>- Set cache TTL in minutesleakpy cache show-ttl- Display current cache TTL setting
statsCommand with Subcommands: Display statistics and metrics with visualizationsleakpy stats cache- Display cache statistics with visualizationsleakpy stats overview- Display overview of all statisticsleakpy stats query- Analyze and display statistics from search queries (by country, protocol, port, etc.)
- Enhanced Help Display: ASCII banner now automatically displays when showing help messages (
--helpor-h)- Banner appears in README.md and documentation homepage for better brand recognition
- Banner is automatically suppressed in
--silentmode for scripting compatibility
- Batch Processing Support: All lookup commands now support batch processing via
-i/--inputoption- Process multiple IPs or domains from a file (one per line)
- Progress bars and summary statistics for batch operations
- JSON output format for batch results
- Improved Display Options: New options for controlling output display
--limitoption to control number of services/leaks displayed (default: 50)--alloption to display all results without limit- Better formatted tables with consistent styling across all lookup types
- New Command Structure: All commands now follow hierarchical subcommand pattern (
- New Library Methods: Expanded Python library API with new functionality
get_host(ip, fields="full", output=None): Get detailed information about a specific IP address- Returns dictionary with 'Services' and 'Leaks' keys containing l9event objects
- Supports field extraction and file output
get_domain(domain, fields="full", output=None): Get detailed information about a domain- Returns dictionary with 'Services' and 'Leaks' keys containing l9event objects
- Includes subdomain information and associated services
get_subdomains(domain, output=None): Get list of subdomains for a specific domain- Returns list of dictionaries with subdomain, distinct_ips, and last_seen information
- Supports file output for easy integration
get_plugins(): Get list of available LeakIX plugins- Returns list of plugin names
get_all_fields(data, current_path=None): Extract all available fields from a data object- Returns set of all field paths (e.g., "protocol", "geoip.country_name", "service.software.name")
- Supports nested field discovery
get_cache_stats(): Get comprehensive cache statistics- Returns dictionary with total_entries, active_entries, expired_entries, TTL information, and cache file details
get_cache_ttl(): Get current cache TTL in minutesset_cache_ttl(minutes): Configure cache TTL programmaticallyclear_cache(): Clear all cached API responses programmaticallydelete_api_key(): Delete stored API key from secure storageanalyze_query_stats(results, fields=None, top=10, all_fields=False): Analyze query results and extract statistics- Returns QueryStats object with dot notation access (e.g.,
stats.total,stats.fields.protocol.http) - Supports object-oriented field extraction with callables
- Flexible field specification (string, list, dict, or callable)
- Can analyze from live queries or JSON files
- Returns QueryStats object with dot notation access (e.g.,
Fixed
- CI Workflow: Fixed import test to use correct module names (
leakpy.leakix.LeakIXinstead of deprecatedleakpy.scraper.LeakIXScraper) - Test Suite: Fixed
test_api_key_manager_read_nonexistentto properly mock keyring and prevent reading from system keychain