A command-line interface for searching and retrieving mountain peak data from PeakBagger.com.
- π Search peaks by name with instant results
- π Detailed peak info including elevation, prominence, isolation, and location
- π Ascent statistics - analyze climbing activity, seasonal patterns, and trip reports
- π¨ Beautiful output with formatted tables and colors
- π€ JSON output for automation and scripting
- π‘οΈ Respectful scraping with configurable rate limiting
For contributors: See CONTRIBUTING.md for development setup and guidelines.
Run directly without installation:
uvx peakbagger peak search "Mount Rainier"
uvx peakbagger peak show 2296pip install peakbaggerpeakbagger peak search "Mount Rainier"
peakbagger peak search "Denali" --format json
peakbagger peak search "Whitney" --full # Fetch full details for all resultspeakbagger peak show 2296 # Mount Rainier
peakbagger peak show 2296 --format jsonOutput includes elevation, prominence, coordinates, routes, and peak lists.
peakbagger peak ascents 1798 # Mount Pilchuck
peakbagger peak ascents 1798 --within 1y # Last year only
peakbagger peak ascents 1798 --with-gpx # Only ascents with GPS tracks
peakbagger peak ascents 1798 --with-tr # Only with trip reports
peakbagger peak ascents 1798 --limit 50 # First 50 ascentsFilters: --after DATE, --before DATE, --within PERIOD (e.g., 3m, 1y, 10d)
peakbagger peak stats 1798
peakbagger peak stats 1798 --within 5y
peakbagger peak stats 1798 --reference-date 2024-07-15 --seasonal-window 30Shows temporal breakdown, seasonal patterns, and monthly distribution.
peakbagger ascent show 12963
peakbagger ascent show 12963 --format jsonIncludes trip reports and route information.
# Extract specific fields
peakbagger peak show 2296 --format json | jq '.elevation.feet'
peakbagger peak search "Rainier" --format json | jq '.[].pid'
# Find peaks on a specific list
peakbagger peak show 2296 --format json | jq '.peak_lists[] | select(.list_name | contains("Bulger"))'for pid in 2296 271 163756; do
peakbagger peak show $pid --format json >> peaks.json
doneMore examples: See examples/ for complete scripts including CSV export and filtering.
# Show HTTP requests
peakbagger --verbose peak search "Mount Rainier"
peakbagger -v peak show 2296
# Show detailed debug info
peakbagger --debug peak search "Mount Rainier"
# Suppress all output except data
peakbagger --quiet peak search "Mount Rainier"
peakbagger -q peak show 2296Logs go to stderr, so you can redirect separately:
# Save JSON output, show logs on screen
peakbagger -v peak show 2296 --format json > peak.json
# Save output and logs separately
peakbagger -v peak show 2296 --format json > peak.json 2> logs.txtDefault: 2 seconds between requests. Adjust as needed:
peakbagger peak search "Rainier" --rate-limit 3.0 # 3 secondsUse this tool for personal and educational purposes only. Please:
- β Respect the default rate limits (or increase them)
- β Use for personal research and trip planning
- β Attribute data to PeakBagger.com
- β Don't mass-scrape or create bulk datasets
- β Don't use for commercial purposes without permission
- β Don't bypass rate limits to hammer the server
PeakBagger.com provides this data as a free service to the climbing community. Use this tool responsibly.
Cloudflare blocks: Increase rate limit (--rate-limit 3.0) and wait before retrying.
No results: Try different search terms or verify the peak ID is correct.
Installation issues: Requires Python 3.12+ (python3 --version).
All data is scraped from PeakBagger.com. The site aggregates peak information from USGS, LIDAR data, and user contributions.
Limitations: No official API (scrapes HTML), rate-limited for respectful use, data accuracy depends on PeakBagger.com.
- Bug Reports & Features: GitHub Issues
- Questions: GitHub Discussions
MIT License - see LICENSE file for details.