{"id":51115041,"url":"https://github.com/glebmish/intervals-icu-cli","last_synced_at":"2026-06-24T21:00:56.827Z","repository":{"id":365106996,"uuid":"1212830164","full_name":"glebmish/intervals-icu-cli","owner":"glebmish","description":"Command-line client for the intervals.icu training API, built for AI-agent use. 148 operations.","archived":false,"fork":false,"pushed_at":"2026-06-15T21:47:38.000Z","size":139,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-15T23:23:24.196Z","etag":null,"topics":["ai-agents","cli","cycling","golang","intervals-icu","openapi","running"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/glebmish.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-16T19:20:33.000Z","updated_at":"2026-06-15T21:47:40.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/glebmish/intervals-icu-cli","commit_stats":null,"previous_names":["glebmish/intervals-icu-cli"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/glebmish/intervals-icu-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glebmish%2Fintervals-icu-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glebmish%2Fintervals-icu-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glebmish%2Fintervals-icu-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glebmish%2Fintervals-icu-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/glebmish","download_url":"https://codeload.github.com/glebmish/intervals-icu-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glebmish%2Fintervals-icu-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34749211,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-24T02:00:07.484Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agents","cli","cycling","golang","intervals-icu","openapi","running"],"created_at":"2026-06-24T21:00:49.921Z","updated_at":"2026-06-24T21:00:56.819Z","avatar_url":"https://github.com/glebmish.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# intervals-icu-cli\n\n[![CI](https://github.com/glebmish/intervals-icu-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/glebmish/intervals-icu-cli/actions/workflows/ci.yml)\n[![Release](https://img.shields.io/github/v/release/glebmish/intervals-icu-cli)](https://github.com/glebmish/intervals-icu-cli/releases/latest)\n[![License: MIT](https://img.shields.io/github/license/glebmish/intervals-icu-cli)](LICENSE)\n\nA command-line interface for the [intervals.icu](https://intervals.icu) training analytics API. Covers 148 operations across activities, events, workouts, wellness, and more. Designed for AI-agent use with schema discovery, field masking, and dry-run support.\n\n\u003e Not affiliated with or endorsed by intervals.icu. This is an independent client for its public API.\n\n## Installation\n\n### Homebrew\n\n```bash\nbrew install glebmish/tap/intervals\n```\n\nUse the fully-qualified `glebmish/tap/intervals` form (the bare name `intervals` is generic).\n\n### Prebuilt binary\n\nDownload the archive for your platform from the [latest release](https://github.com/glebmish/intervals-icu-cli/releases/latest), extract it, and put the `intervals` binary on your `PATH`.\n\n### go install\n\n```bash\ngo install github.com/glebmish/intervals-icu-cli@latest\n```\n\nThis installs a binary named `intervals-icu-cli` (after the module path). Alias or rename it so the examples below work:\n\n```bash\nalias intervals=intervals-icu-cli\n# or: mv \"$(go env GOPATH)/bin/intervals-icu-cli\" \"$(go env GOPATH)/bin/intervals\"\n```\n\n## Configuration\n\nRun the interactive setup:\n\n```bash\nintervals config init\n```\n\nThis writes `~/.config/intervals/config.yaml` with `0600` permissions. You can also create it manually:\n\n```yaml\napi_key: your_api_key_here\nathlete_id: your_athlete_id_here\n```\n\nGet an API key at \u003chttps://intervals.icu/settings\u003e.\n\n### Environment Variables\n\n| Variable | Description |\n|---|---|\n| `INTERVALS_API_KEY` | API key (overrides config file) |\n| `INTERVALS_ATHLETE_ID` | Athlete ID (overrides config file) |\n| `INTERVALS_BASE_URL` | API base URL (default: `https://intervals.icu`) |\n| `INTERVALS_CONFIG` | Path to the config file (overrides default `~/.config/intervals/config.yaml`) |\n\n## Quick Start\n\n```bash\n# List recent activities\nintervals activities list --oldest 2026-01-01 --fields id,name,start_date_local\n\n# Get a specific activity\nintervals activity get --activity-id a1 --fields id,name,type,distance\n\n# Create a calendar event\nintervals events create --json '{\"name\": \"Threshold Run\", \"start_date_local\": \"2026-04-15T08:00:00\"}'\n\n# Discover available operations\nintervals schema --list\n\n# Inspect a specific operation's parameters and payload shape\nintervals schema activities.list\nintervals schema Activity\n```\n\n`intervals schema --list` enumerates all 148 operations across 13 resource groups, offline and without credentials:\n\n```\nactivities.create-manual                  POST /api/v1/athlete/{id}/activities/manual\nactivities.download-csv                   GET /api/v1/athlete/{id}/activities.csv\nactivities.get-multiple                   GET /api/v1/athlete/{athleteId}/activities/{ids}\nactivities.interval-search                GET /api/v1/athlete/{id}/activities/interval-search\nactivities.list                           GET /api/v1/athlete/{id}/activities\n...\n```\n\nEvery command supports `--dry-run` (print the request without sending it), `--fields` (filter output), and `--format json|ndjson|text`. Run `intervals --help` for the full surface and `intervals --version` for build info.\n\n## Agent Reference\n\nAgent-facing documentation ships inside the binary as skills. Browse or install them:\n\n```bash\nintervals skills list                 # list bundled skills\nintervals skills get intervals-shared # print the shared reference (global flags, exit codes, schema discovery)\nintervals skills install              # install skills into .claude/skills or .agents/skills\n```\n\nThe `intervals-shared` skill is the canonical agent front door: global flags, exit codes, error hints, and schema discovery.\n\n## How it works\n\nSee [docs/design.md](docs/design.md) for the design: the embedded OpenAPI spec, the shared request helpers, input validation, and output sanitization.\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglebmish%2Fintervals-icu-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fglebmish%2Fintervals-icu-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglebmish%2Fintervals-icu-cli/lists"}