Find trail-camera spots for mountain lions from free public map data, ranked and explained.
CougarMap finds where to put a trail camera for mountain lions (cougars). Give it a place and it reads the terrain from free public map data. It ranks camera spots you can walk to and explains why each one is good. The results come as a Google Earth map.
It works anywhere in the United States. It was built and tuned in the dry conifer mountains of the inland Northwest.
1. Install. On a Mac or Linux, in a terminal:
curl -LsSf https://raw.githubusercontent.com/bryantclark/cougarmap/main/installer/install.sh | sh
On Windows, in PowerShell:
powershell -c "irm https://raw.githubusercontent.com/bryantclark/cougarmap/main/installer/install.ps1 | iex"
It installs uv (which brings its own Python) if you don't have it, installs
CougarMap, and connects it to the AI apps it finds (step 3). Run it again any time to update. Then open a new
terminal window so the cougarmap command is found.
uv tool install --python 3.12 cougarmap installs just the command.CougarMap-installer.zip from the
latest release and double-click the installer in it.2. Find camera spots around a coordinate. Give latitude and longitude the way Google Maps copies them. Optionally use the --radius-km flag to set a radius size.
cougarmap analyze --near "47.3712, -116.1029" --radius-km 3
The first run in a new place takes a few minutes, mostly downloading elevation and map data. Later runs take under a minute. When it finishes, it prints the best spots and a link to the map, and opens the map in Google Earth Pro (free).
To search a whole region around a town instead, use hotspots. It screens a 25 km circle and analyzes the
most promising blocks:
cougarmap hotspots "Missoula, MT"
3. Use it from your AI assistant. The installer already connected CougarMap to the AI apps it found on your
computer: Claude, Codex, Gemini CLI, Antigravity or Cursor. Restart the app, then ask "find me cougar camera
spots near Missoula, MT". If you installed with uv tool install, or added an app later, run:
cougarmap setup
For each spot:
The Google Earth map has the ranked pins (click one for its reasons), walking routes, dawn and dusk air-flow arrows, saddles, and a layer for each factor you can switch on and off.
The ranked spots are on public land within 1 mile of walking from a road open that month. Private land is
scored the same way and its best spots are found too, but kept apart: they're listed separately (P1, P2...) and
sit in map layers that start switched off. Tick "Private land spots" in Google Earth to see them, for example to
scan your own property, and get landowner permission before using one. --max-walk-miles and --month change
the other defaults.
CougarMap stacks four things lions use. The more of them at one spot, the better the spot:
It also favors natural travel lines such as drainage bottoms and ridge crossings. In winter it adds low, sun-facing ground with shallow snow, where deer spend the winter. It avoids paved roads, towns, trailheads and campgrounds. docs/HOW_IT_WORKS.md has the details.
What it can't see: the wind is modeled from weather history, not measured on the ground. Prey isn't modeled.
Small springs and seeps are often missing from maps. If you know of water the maps miss, pin it in Google Earth
and import the file (cougarmap import-kml my-pins.kml): your pins count as water. Some parks and state land
restrict trail cameras, so check with whoever manages the land.
The map is only as good as what it catches. CougarMap keeps a field log of cameras, camera checks, snow tracks
and road surveys. cougarmap validate <area> tests the map against what you logged, with honest sample sizes.
docs/FIELD_PROTOCOL.md explains what to record in plain language.
Everything runs on your computer. CougarMap only downloads public map data (USGS, the Forest Service,
OpenStreetMap, weather and snow data). Your Google Earth files, camera locations and field log stay in
~/Documents/CougarMap/my-data (set COUGARMAP_HOME to move it) and are never uploaded.
MIT; see LICENSE. Data downloaded at run time keeps its own terms (OpenStreetMap is ODbL; the Olympic Cougar Project GPS data used only by the validation check is CC BY-NC 4.0).
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
uvx cougarmapMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-bryantclark-cougarmap": {
"command": "uvx",
"args": [
"cougarmap"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencecougarmappypiCougarMap works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.