Skip to content

Strava CLI

Strava from your terminal. Pipe it, script it, automate it.

Install

$uvx strava-terminal --help
Claude Code
claude mcp add strava-cli -- uvx strava-terminal --help
Cursor / Claude Desktop (mcp.json)
{
  "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.

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:

  1. Go to https://www.strava.com/settings/api
  2. Create an application (set callback domain to localhost)
  3. 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

Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.

CLI proxy that reduces LLM token consumption by 60-90% on common dev commands. Single Rust binary, zero dependencies

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…