@claudinho/cli 0.2.0 → 0.4.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.
Files changed (3) hide show
  1. package/README.md +102 -3
  2. package/dist/index.js +991 -44
  3. package/package.json +3 -3
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, and group tables — TZ-aware, localized, scriptable.
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
@@ -23,6 +23,8 @@ 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>
27
+ claudinho share [target] # copy-pasteable match snippet: today | live | <date> | <id> | next <TEAM>
26
28
  claudinho prompt # one compact status line (for statusline/tmux/Starship)
27
29
  claudinho init-statusline # wire it into the Claude Code statusline
28
30
  claudinho hook # live-score context for a Claude Code hook (silent off-match)
@@ -38,6 +40,7 @@ claudinho next BRA --tz America/Sao_Paulo --lang pt
38
40
  claudinho table A
39
41
  claudinho live --json | jq '.matches[].status'
40
42
  claudinho today --flavor off # just the facts, no commentary
43
+ claudinho share next MEX --copy # a shareable card, copied to your clipboard
41
44
  ```
42
45
 
43
46
  ## Global options
@@ -50,6 +53,7 @@ claudinho today --flavor off # just the facts, no commentary
50
53
  | `--no-color` | disable ANSI color (also honors `NO_COLOR`; auto-off when piped) |
51
54
  | `--source <name>` | live data provider (advanced; sensible default) |
52
55
  | `--flavor <level>` | commentary flair: `off`, `subtle`, `full` (default: `full`; also `CLAUDINHO_FLAVOR`) |
56
+ | `--no-markets` | hide prediction-market signals in `today`/`match` (also `CLAUDINHO_MARKETS=off`) |
53
57
 
54
58
  Team codes are 3-letter (FIFA/IOC-style): `MEX`, `BRA`, `USA`, `ENG`, …
55
59
 
@@ -64,6 +68,100 @@ localized per `--lang`, and they never affect `--json` output.
64
68
  - `--flavor subtle` — only goals and full-time
65
69
  - `--flavor off` — just the facts
66
70
 
71
+ ## Prediction-market signals
72
+
73
+ `claudinho markets` shows **read-only** prediction-market odds — "who's favored" as
74
+ market-implied percentages — for a date, a match, or a team's next fixture:
75
+
76
+ ```bash
77
+ claudinho markets # today's signals
78
+ claudinho markets 2026-06-11 # a specific date
79
+ claudinho markets 760415 # one match by id
80
+ claudinho markets next MEX # a team's next fixture
81
+ claudinho markets today --json # structured sidecar output
82
+ ```
83
+
84
+ A short market line is also added under `claudinho today` and `claudinho match`
85
+ when a reliable market is available. It's **informational only — not betting
86
+ advice:** market-implied percentages with attribution, no trading, no links. Data
87
+ comes from Polymarket public market data and is shown
88
+ only when the market maps cleanly to the result and is fresh.
89
+
90
+ Opt out with `--no-markets` (per command) or `CLAUDINHO_MARKETS=off` (global). The
91
+ statusline and hook **never** show market data — it stays off the hot path.
92
+
93
+ > **How matches are matched:** event slugs are derived automatically from each
94
+ > fixture (`fifwc-{home}-{away}-{date}`), so real odds appear for any match with a
95
+ > live Polymarket market — no mapping needed (`mapping.2026.json` is for slug
96
+ > *overrides* only). Matching fails closed, so an unmatched fixture simply shows
97
+ > nothing. For an offline preview, set `CLAUDINHO_MARKETS_SOURCE=fake` to render
98
+ > clearly-labeled synthetic **"demo data"** odds.
99
+
100
+ ## Shareable snippets
101
+
102
+ `claudinho share` prints a polished, **copy-pasteable** match card for chats,
103
+ social posts, READMEs, and issue comments — your terminal football, ready to post:
104
+
105
+ ```bash
106
+ claudinho share # today's matches
107
+ claudinho share live # matches in play
108
+ claudinho share next MEX # a team's next fixture (+ market read, when reliable)
109
+ claudinho share 760415 # one match by id
110
+ claudinho share next MEX --copy # …and copy it straight to the clipboard
111
+ ```
112
+
113
+ ```text
114
+ Next up for Mexico
115
+
116
+ 🇲🇽 Mexico vs South Africa 🇿🇦
117
+ Jun 11 · 13:00 America/Mexico_City
118
+ Estadio Banorte, Mexico City, Mexico
119
+
120
+ Prediction markets slightly favor Mexico.
121
+ Mexico 56% · Draw 25% · South Africa 19%
122
+ Source: Polymarket · informational only
123
+
124
+ #VibingLaVidaLoca · Independent fan project · not affiliated with FIFA or Anthropic.
125
+ Try it: npx @claudinho/cli next MEX
126
+ ```
127
+
128
+ Snippets are **plain text** (no color codes — they paste cleanly everywhere) and
129
+ carry the non-affiliation disclaimer on every paste. The market line uses the
130
+ same reliable gate as `today`/`match` (**informational only — never betting
131
+ advice**) and disappears when no reliable market exists. Per-command options:
132
+
133
+ | Flag | Description |
134
+ |---|---|
135
+ | `--style <social\|compact>` | `social` (default) is the full card; `compact` is one terse line per match |
136
+ | `--copy` | also copy the snippet to the clipboard (best-effort: `pbcopy`/`clip`/`wl-copy`/`xclip`/`xsel`) |
137
+ | `--no-hashtag` | omit the `#VibingLaVidaLoca` tag |
138
+ | `--no-install-line` | omit the `Try it: …` run cue |
139
+
140
+ `--json` returns the structured snippet (`{ kind, snippet, matches, marketSignals, … }`)
141
+ for scripts and future reuse. No clipboard tool? `claudinho share … | pbcopy` works too.
142
+
143
+ ### Want an image?
144
+
145
+ The snippet is plain text, so a **screenshot is your share card** — the disclaimer
146
+ and emoji flags come along automatically. Grab it with your OS screenshot tool, or
147
+ render a crisp terminal image with an existing tool (no Claudinho dependency, no
148
+ account):
149
+
150
+ ```bash
151
+ # capture the command's output directly (charmbracelet/freeze)
152
+ freeze --execute "claudinho share next MEX" -o card.png
153
+
154
+ # …or pipe the text into freeze / silicon
155
+ claudinho share next MEX | freeze --language text -o card.png
156
+ claudinho share next MEX | silicon -l txt -o card.png
157
+
158
+ # …or paste it into a web tool like carbon.now.sh or ray.so
159
+ ```
160
+
161
+ Claudinho stays text-first — it doesn't ship an image renderer, so there's nothing
162
+ extra to install in the CLI and no fonts/licensing to worry about: whatever your
163
+ terminal or the screenshot tool already draws (including the flags) is what you get.
164
+
67
165
  ## Statusline (Claude Code)
68
166
 
69
167
  ```bash
@@ -111,8 +209,9 @@ statusline/hook cache is keyed to the active competition, so switching with
111
209
 
112
210
  The full fixture list (104 matches, groups, venues, host cities, kickoffs) ships **bundled**
113
211
  in the package, so the common path is offline and instant. Only live match
114
- state hits the network. Scores come from a swappable data provider; provider
115
- attribution and rate limits are respected.
212
+ state hits the network. Live scores come from **ESPN's** public scoreboard (a
213
+ swappable provider, attributed in output as `Live data: ESPN`) and market odds
214
+ from Polymarket; provider attribution and rate limits are respected.
116
215
 
117
216
  ## License
118
217