@claudinho/cli 0.1.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -7
- package/dist/index.js +1385 -399
- package/package.json +14 -13
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @claudinho/cli ⚽
|
|
2
2
|
|
|
3
|
-
**The 2026 men's football tournament, right in your terminal.** Live scores, fixtures,
|
|
3
|
+
**The 2026 men's football tournament, right in your terminal.** Live scores, fixtures, group tables, and market odds — TZ-aware, localized, scriptable.
|
|
4
4
|
|
|
5
5
|
> ⚠️ **Not affiliated with, endorsed by, or connected to FIFA or Anthropic.**
|
|
6
6
|
> Claudinho is an independent, open-source fan project. It shows factual match
|
|
@@ -18,15 +18,17 @@ npx @claudinho/cli today
|
|
|
18
18
|
## Commands
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
claudinho today [date] # a day's fixtures (default: today), live scores inline
|
|
21
|
+
claudinho today [date] # a day's fixtures in your timezone (default: today), live scores inline
|
|
22
22
|
claudinho live # matches in play right now
|
|
23
23
|
claudinho next <TEAM> # a team's next fixture + countdown (e.g. next MEX)
|
|
24
24
|
claudinho table [GROUP] # group standings (default: all groups)
|
|
25
25
|
claudinho match <id> # a single match's detail
|
|
26
|
+
claudinho markets [target] # prediction-market odds: today | <date> | <id> | next <TEAM>
|
|
26
27
|
claudinho prompt # one compact status line (for statusline/tmux/Starship)
|
|
27
28
|
claudinho init-statusline # wire it into the Claude Code statusline
|
|
28
29
|
claudinho hook # live-score context for a Claude Code hook (silent off-match)
|
|
29
30
|
claudinho init-hook # make Claude itself score-aware (UserPromptSubmit)
|
|
31
|
+
claudinho vibe # a matchday-coder one-liner (#VibingLaVidaLoca)
|
|
30
32
|
```
|
|
31
33
|
|
|
32
34
|
### Examples
|
|
@@ -36,6 +38,7 @@ claudinho today --tz America/Mexico_City --lang es
|
|
|
36
38
|
claudinho next BRA --tz America/Sao_Paulo --lang pt
|
|
37
39
|
claudinho table A
|
|
38
40
|
claudinho live --json | jq '.matches[].status'
|
|
41
|
+
claudinho today --flavor off # just the facts, no commentary
|
|
39
42
|
```
|
|
40
43
|
|
|
41
44
|
## Global options
|
|
@@ -43,13 +46,55 @@ claudinho live --json | jq '.matches[].status'
|
|
|
43
46
|
| Flag | Description |
|
|
44
47
|
|---|---|
|
|
45
48
|
| `--lang <code>` | `en`, `es`, `pt`, `fr` (also via `CLAUDINHO_LANG`; falls back to `$LANG`) |
|
|
46
|
-
| `--tz <zone>` | IANA timezone, e.g. `America/Mexico_City` (also `CLAUDINHO_TZ`; default: system) |
|
|
49
|
+
| `--tz <zone>` | IANA timezone, e.g. `America/Mexico_City` (also `CLAUDINHO_TZ`; default: system). Kickoff times **and** which day a fixture falls on are computed in this zone — a late-night-UTC match shows on the day you actually watch it. |
|
|
47
50
|
| `--json` | machine-readable output for scripting |
|
|
48
51
|
| `--no-color` | disable ANSI color (also honors `NO_COLOR`; auto-off when piped) |
|
|
49
52
|
| `--source <name>` | live data provider (advanced; sensible default) |
|
|
53
|
+
| `--flavor <level>` | commentary flair: `off`, `subtle`, `full` (default: `full`; also `CLAUDINHO_FLAVOR`) |
|
|
54
|
+
| `--no-markets` | hide prediction-market signals in `today`/`match` (also `CLAUDINHO_MARKETS=off`) |
|
|
50
55
|
|
|
51
56
|
Team codes are 3-letter (FIFA/IOC-style): `MEX`, `BRA`, `USA`, `ENG`, …
|
|
52
57
|
|
|
58
|
+
### Commentary flair
|
|
59
|
+
|
|
60
|
+
By default Claudinho narrates with a bit of localized football-broadcast energy —
|
|
61
|
+
`¡GOOOOL!` on a goal, `¡a cancha llena!` before kickoff. These are generic,
|
|
62
|
+
genre-style exclamations (no real commentator is quoted or impersonated),
|
|
63
|
+
localized per `--lang`, and they never affect `--json` output.
|
|
64
|
+
|
|
65
|
+
- `--flavor full` *(default)* — flair on fixtures, live play, goals, and full-time
|
|
66
|
+
- `--flavor subtle` — only goals and full-time
|
|
67
|
+
- `--flavor off` — just the facts
|
|
68
|
+
|
|
69
|
+
## Prediction-market signals
|
|
70
|
+
|
|
71
|
+
`claudinho markets` shows **read-only** prediction-market odds — "who's favored" as
|
|
72
|
+
market-implied percentages — for a date, a match, or a team's next fixture:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
claudinho markets # today's signals
|
|
76
|
+
claudinho markets 2026-06-11 # a specific date
|
|
77
|
+
claudinho markets 760415 # one match by id
|
|
78
|
+
claudinho markets next MEX # a team's next fixture
|
|
79
|
+
claudinho markets today --json # structured sidecar output
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
A short market line is also added under `claudinho today` and `claudinho match`
|
|
83
|
+
when a reliable market is available. It's **informational only — not betting
|
|
84
|
+
advice:** market-implied percentages with attribution, no trading, no links. Data
|
|
85
|
+
comes from Polymarket public market data and is shown
|
|
86
|
+
only when the market maps cleanly to the result and is fresh.
|
|
87
|
+
|
|
88
|
+
Opt out with `--no-markets` (per command) or `CLAUDINHO_MARKETS=off` (global). The
|
|
89
|
+
statusline and hook **never** show market data — it stays off the hot path.
|
|
90
|
+
|
|
91
|
+
> **How matches are matched:** event slugs are derived automatically from each
|
|
92
|
+
> fixture (`fifwc-{home}-{away}-{date}`), so real odds appear for any match with a
|
|
93
|
+
> live Polymarket market — no mapping needed (`mapping.2026.json` is for slug
|
|
94
|
+
> *overrides* only). Matching fails closed, so an unmatched fixture simply shows
|
|
95
|
+
> nothing. For an offline preview, set `CLAUDINHO_MARKETS_SOURCE=fake` to render
|
|
96
|
+
> clearly-labeled synthetic **"demo data"** odds.
|
|
97
|
+
|
|
53
98
|
## Statusline (Claude Code)
|
|
54
99
|
|
|
55
100
|
```bash
|
|
@@ -89,15 +134,22 @@ claudinho live # live friendlies
|
|
|
89
134
|
unset CLAUDINHO_COMPETITION # back to the World Cup
|
|
90
135
|
```
|
|
91
136
|
|
|
92
|
-
Only the live fetch changes; the bundled schedule is always the World Cup.
|
|
137
|
+
Only the live fetch changes; the bundled schedule is always the World Cup. The
|
|
138
|
+
statusline/hook cache is keyed to the active competition, so switching with
|
|
139
|
+
`CLAUDINHO_COMPETITION` never surfaces stale scores from the other competition.
|
|
93
140
|
|
|
94
141
|
## How it works
|
|
95
142
|
|
|
96
|
-
The full fixture list (104 matches, groups, venues, kickoffs) ships **bundled**
|
|
143
|
+
The full fixture list (104 matches, groups, venues, host cities, kickoffs) ships **bundled**
|
|
97
144
|
in the package, so the common path is offline and instant. Only live match
|
|
98
|
-
state hits the network.
|
|
99
|
-
|
|
145
|
+
state hits the network. Live scores come from **ESPN's** public scoreboard (a
|
|
146
|
+
swappable provider, attributed in output as `Live data: ESPN`) and market odds
|
|
147
|
+
from Polymarket; provider attribution and rate limits are respected.
|
|
100
148
|
|
|
101
149
|
## License
|
|
102
150
|
|
|
103
151
|
MIT © 2026 Arturo Garrido · [source & issues](https://github.com/arturogarrido/claudinho)
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
_Built while watching the games._ **#VibingLaVidaLoca** ⚽
|