Claudinho Live football scores, fixtures and standings for the competition you follow (the World Cup, the Premier League, LALIGA, the Champions League and 12 more) in your terminal, your Claude Code and Cursor CLI statusline, and MCP clients.** No API key, no signup.
Claudinho ⚽
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
**Live football scores, fixtures and standings for the competition you follow (the World Cup, the Premier League, LALIGA, the Champions League and 12 more) in your terminal, your Claude Code and Cursor CLI statusline, and MCP clients.** No API key, no signup. The World Cup's 104 fixtures ship bundled; the other competitions' schedules are read from the feed. It ran the 2026 World Cup from the opener to the final.
> ⭐ **Like it?** Star the repo: a fan project's only scoreboard is its stars. (claudinho star shows you how anytime.)
While matches are live, your Claude Code or Cursor CLI statusline reads (the same moment as the capture above, eight matches shown and one counted):
And claudinho share prints a card made for the group chat:
> ⚠️ **Not affiliated with FIFA, any confederation, league or club, or Anthropic. Nor endorsed by or connected to any of them.**
> 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
Cursor CLI: statusline + MCP
One command wires the live-score statusline and prints the MCP config to paste:
Captured during the 2026 World Cup group stage.
Restart your agent session to see it. Prefer to paste it yourself? claudinho init cursor --print
emits the snippets, or copy them straight from here:
**Statusline**, in ~/.cursor/cli-config.json:
**MCP tools**, in ~/.cursor/mcp.json (global) or a project .cursor/mcp.json:
**Optional env**: a model + context line below the score, or scope to your team:
> **Note:** Cursor's beforeSubmitPrompt hook doesn't yet reliably inject context into the
> model, so the score-aware *hook* stays Claude Code-only for now; the statusline and MCP
> server work great in Cursor.
Claude Code: statusline, score-aware hook, MCP
init claude backs up ~/.claude/settings.json first and is idempotent. Prefer the pieces
à la carte? Run init-statusline, init-hook, and:
Restart Claude Code to activate.
Claude Code plugin
The plugin draws the live score or the countdown above the prompt (the band), raises a toast that
says what happened (a goal and its scorer, a goal against, a correction, full time and the result), and puts the live-score block beside each prompt for the model while a match is on
(unless its context option is off),
all from the installed CLI (claudinho ambient --json), never a fetch of its own. /claudinho match opens a pane
with the match you follow now as claudinho match prints it (the score, the goals and cards, the status), which
re-reads it while it is in play (that run reads the provider, as the command does). /claudinho answers the
band's line on demand, wherever the plugin loads (a collapsed band, the desktop app, claude -p), with the CLI's
attribution and non-affiliation sentence under it, or one plain sentence when there is nothing to show. Install the CLI
(0.11.2 or later: an older one's band shows nothing and nothing toasts) and follow a competition, then run claudinho init plugin first: it removes the statusline
(claudinho prompt) and the live-score hook (claudinho hook) that init claude wrote to
~/.claude/settings.json, keeps every other setting, and prints the install line and the MCP
one-liner. It removes those two exact commands only: an edited one (a wrapper,
npx -y @claudinho/cli hook) stays where it is, and the command names it for you. Then, at the
prompt of a Claude Code session in a terminal:
Answer y to add the marketplace, then choose a scope. The toasts option (in /config) is
pinned by default (your pinned team's match, claudinho follow --team ; with no pin
saved, no toast), all or off. A toast is one line, the news then the score, written from the names
and fields the CLI gives (⚽ GOAL! Liverpool · Ronald Araújo 22' and the score; Goal for the other side; Full
time and the result), one per match per change, and best effort, never every goal: a change is never said as it happens from a view the CLI could not vouch for (stale, degraded,
or a read that was not whole), a goal across such a gap or a failed run is said at the first current
view after it (late, never lost while the match stays in the list: one gone from the next current