Strava CLI
Strava from your terminal. Pipe it, script it, automate it.
Install
uvx strava-terminal --helpclaude mcp add strava-cli -- uvx strava-terminal --help{
"mcpServers": {
"strava-cli": {
"command": "uvx",
"args": [
"strava-terminal",
"--help"
]
}
}
}Install command taken from the project's README or registry entry. Always review code before running it.
README excerpt
Read full README on GitHub →Strava CLI
Strava from your terminal. Pipe it, script it, automate it.
Exploring CLI tools as skills for AI agents. Background below.
Features
- All your Strava data — activities, stats, segments, routes, clubs, gear
- Script and automate — composable with jq, pipes, xargs, and standard Unix tools
- AI agent ready — install the skill for Claude, Cursor, and other assistants
- Flexible output — JSON for scripts, CSV for spreadsheets, tables for humans
Installation
Quick Install (Recommended)
curl -fsSL https://raw.githubusercontent.com/eddmann/strava-cli/main/install.sh | sh
Downloads the pre-built binary for your platform (macOS/Linux) to ~/.local/bin.
Homebrew
brew install eddmann/tap/strava-cli
Using uv
Requires Python 3.10+ and uv.
uvx strava-terminal --help
uv tool install strava-terminal
The PyPI package is strava-terminal for uvx/uv tool usage; the project remains Strava CLI and the primary command remains strava.
From Source
git clone https://github.com/eddmann/strava-cli
cd strava-cli
make deps
uv run strava --help
Quick Start
1. Authenticate
strava auth login
First time? You'll be guided to create a Strava API application:
- Go to https://www.strava.com/settings/api
- Create an application (set callback domain to
localhost) - Enter your Client ID and Client Secret when prompted
Credentials and tokens are stored in ~/.config/strava-cli/config.toml.
2. Use the CLI
# List recent activities
strava activities list --limit 10
# Get a specific activity
strava activities get 12345678
# Get your athlete profile
strava athlete
# Get your stats
strava athlete stats
Command Reference
Global Options
| Flag | Short | Description |
|---|---|---|
--format |
-f |
Output format: json (default), jsonl, csv, tsv, human |
--fields |
Comma-separated list of fields to include | |
--no-header |
Omit header row in CSV/TSV output | |
--verbose |
-v |
Verbose output to stderr |
--quiet |
-q |
Suppress non-essential output |
--config |
-c |
Path to config file |
--profile |
-p |
Named profile to use |
--version |
-V |
Show version and exit |
Context (LLM Helper)
strava context # Get full context: athlete, stats, gear, clubs, recent activities
strava context --activities 10 # Include more recent activities
strava context --focus stats,gear # Only specific sections
strava context --no-clubs # Exclude clubs
Authentication
By default, the OAuth flow requests the scopes needed to read profile and activity data, star or unstar segments, and create, update, upload, or delete activities.
Similar plugs
CLI proxy that reduces LLM token consumption by 60-90% on common dev commands. Single Rust binary, zero dependencies
Bash is all you need - A nano claude code–like 「agent harness」, built from 0 to 1
Documented system prompts from Anthropic - Claude Fable 5.1, Opus 5.5, Claude Design, Claude Code. OpenAI - ChatGPT GPT-6-Astra, Codex. Google - Gemini 3.8 Flash, 3.1 Pro,…
Wrap Antigravity, ChatGPT Codex, Claude Code, Grok Build, Muse Code, Devin as an OpenAI/Gemini/Claude/Codex compatible API service, allowing you to enjoy the free Gemini…