Skip to content

arturogarrido/claudinho

Repository files navigation

Claudinho ⚽

CI npm: @claudinho/cli npm: @claudinho/mcp node license: MIT #VibingLaVidaLoca

Live scores for the 2026 men's football tournament — in your terminal, your Claude Code statusline, and any MCP client. No API key, no signup; all 104 fixtures ship bundled, so the schedule works offline.

claudinho next, today, and vibe — live fixtures with emoji flags and commentary flair in a dark terminal

npx @claudinho/cli today      # try it in 10 seconds — no install, no key

While matches are live, your Claude Code statusline reads:

⚽ 🇳🇴 1–1 🇫🇷 87' · 🇸🇳 1–2 🇮🇶 86'

And claudinho share prints a card made for the group chat:

Next up for United States

🇺🇸 United States vs Paraguay 🇵🇾
Jun 12 · 18:00 America/Los_Angeles
SoFi Stadium, Inglewood, California, USA

#VibingLaVidaLoca · Independent fan project · not affiliated with FIFA or Anthropic.
Try it: npx @claudinho/cli next USA

⚠️ Not affiliated with, endorsed by, or connected to FIFA or Anthropic. Claudinho is an independent, open-source fan project. It displays factual match data (scores, fixtures, standings) and uses emoji flags only — no logos, emblems, kits, broadcast footage, or player likenesses.

Install

Just the CLI

npm i -g @claudinho/cli
claudinho today
claudinho next MEX --tz America/Mexico_City --lang es

Claude Code — statusline, score-aware hook, MCP

npm i -g @claudinho/cli
claudinho init-statusline    # live scores inline while you code (<150ms, cache-only)
claudinho init-hook          # Claude knows the score during matches (silent off-match)
claude mcp add claudinho -- npx -y @claudinho/mcp

Both init-* commands back up ~/.claude/settings.json first and are idempotent. Restart Claude Code to activate.

Other MCP clients — Cursor, Codex, Claude Desktop, Windsurf, Zed, VS Code

codex mcp add claudinho -- npx -y @claudinho/mcp    # Codex CLI

Everything else takes the standard stdio config:

{ "mcpServers": { "claudinho": { "command": "npx", "args": ["-y", "@claudinho/mcp"] } } }

Surfaces

  • CLItoday, live, next MEX, table, match <id>, markets, share (and vibe 😎). --json on everything; TZ-aware via --tz.
  • Claude Code statusline — every live score inline; reads a local micro-cache, never blocks on the network. Also works in tmux/Starship via claudinho prompt.
  • Score-aware Claude — a UserPromptSubmit hook that drops the live score into Claude's context during matches; zero tokens off-match.
  • MCP server — 7 read-only tools (get_today, get_live, get_match, get_next_fixture, get_standings, get_market_signal, get_share_snippet) plus my_team / tournament_today prompts.
  • Prediction-market signals — a read-only "who's favored" line (market-implied percentages, Source: Polymarket), shown only when a reliable market exists. Informational only — not betting advice. Opt out: --no-markets / CLAUDINHO_MARKETS=off.
  • Shareable cardsclaudinho share next MEX --copy puts a plain-text match card on your clipboard.

Speaks en / es / pt / fr, with optional localized commentary flair (¡GOOOOL!) — dial it down with --flavor subtle|off.

Planned (not shipped yet): a desktop notifier and an AI pundit with a public accuracy scorecard.

FAQ

Do I need an API key or account? No. Nothing to sign up for; npx and done.

Does it work offline? The schedule, next, and group skeletons do — all 104 fixtures are bundled. Only live scores hit the network.

Where does the data come from? Live scores from ESPN's public scoreboard (attributed in output as Live data: ESPN); market signals from Polymarket public data. Rate limits respected.

Is the market line betting advice? No. It's read-only, informational-only market data with attribution — no trading, no links — and it never appears on the statusline or hook.

Why no crests, kits, or player photos? Legal-clean by design: facts and emoji flags only.

Windows? Works, but flag emoji rendering varies by terminal — best on macOS/Linux.

License

MIT © 2026 Arturo Garrido. All three packages publish with npm provenance via OIDC trusted publishing.


Built while watching the games. #VibingLaVidaLoca