fleece-cli 0.1.0__tar.gz → 0.3.0__tar.gz
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.
- fleece_cli-0.3.0/.agents/skills/fleece/SKILL.md +159 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/.claude/skills/fleece-card.md +3 -3
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/.claude/skills/fleece-compare.md +4 -4
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/.claude/skills/fleece-credits.md +3 -3
- fleece_cli-0.3.0/.claude/skills/fleece-flights.md +51 -0
- fleece_cli-0.3.0/.claude/skills/fleece-hotels.md +48 -0
- fleece_cli-0.3.0/.claude/skills/fleece-mcc.md +65 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/.claude/skills/fleece-news.md +3 -3
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/.claude/skills/fleece-partners.md +4 -4
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/.claude/skills/fleece-rates.md +4 -4
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/.claude/skills/fleece-recommend.md +5 -5
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/.claude/skills/fleece-roi.md +3 -3
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/.claude/skills/fleece-wallet.md +5 -5
- fleece_cli-0.3.0/.github/workflows/publish-skills.yml +29 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/.github/workflows/publish.yml +4 -4
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/CLAUDE.md +7 -2
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/PKG-INFO +2 -2
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/cli.py +148 -0
- fleece_cli-0.3.0/docs/CNAME +1 -0
- fleece_cli-0.3.0/docs/index.html +606 -0
- fleece_cli-0.3.0/mcc_codes.jsonl +981 -0
- fleece_cli-0.3.0/pointsyeah.py +58 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/pyproject.toml +3 -3
- fleece_cli-0.3.0/tests/test_pointsyeah.py +31 -0
- fleece_cli-0.1.0/.agents/skills/fleece/SKILL.md +0 -115
- fleece_cli-0.1.0/.github/workflows/databricks-app-deploy.yml +0 -40
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/.devcontainer/devcontainer.json +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/.gitignore +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/.streamlit/config.toml +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/Advertiser Disclosure.md +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/KnowledgeCatalog.json +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/LICENSE +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/MyCards.json +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/README.md +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/app.yaml +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/assets/default_card.png +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/assets/default_card.svg +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/db.py +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/fleece poc.ipynb +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/fleece.py +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/image_service.py +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/install.sh +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/migrate.py +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/pages/credit_cards.py +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/pages/my_credit_cards.py +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/plan.md +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/prompts/agent_system_prompt.py +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/reference/Analyzer.md +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/requirements-test.txt +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/requirements.txt +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/style.css +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/test_fleece.py +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/tests/__init__.py +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/tests/test_brave_client.py +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/tests/test_cli.py +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/tests/test_tools.py +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/tools/__init__.py +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/tools/brave_client.py +0 -0
- {fleece_cli-0.1.0 → fleece_cli-0.3.0}/tools/credit_card_tools.py +0 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fleece
|
|
3
|
+
description: "What credit card should I use for dining, travel, groceries, or gas?" — Fleece answers this with live data. Looks up rewards rates, annual fees, welcome bonuses, statement credits, and transfer partners for Chase, Amex, Citi, Capital One, Bilt, and all major US issuers. Compare cards side-by-side, find gaps in your wallet, estimate first-year ROI, get personalized card recommendations, and generate PointsYeah award flight and hotel search URLs. Install: `pip install fleece-cli`.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Fleece — Credit Card Research & Redemption
|
|
7
|
+
|
|
8
|
+
Use this skill when the user asks about:
|
|
9
|
+
- **Specific cards**: "What are the Amex Gold benefits?", "Is the Chase Sapphire Preferred worth it?", "What changed with the Citi Double Cash?"
|
|
10
|
+
- **Earning rates**: "Which card earns the most on dining?", "What's the best card for groceries?"
|
|
11
|
+
- **Transfer partners**: "Where can I transfer Chase Ultimate Rewards?", "What airlines does Amex transfer to?"
|
|
12
|
+
- **Statement credits**: "How do I use the Amex Gold dining credit?", "What credits does the Venture X have?"
|
|
13
|
+
- **Wallet optimization**: "Which card should I use for travel?", "What gaps does my wallet have?"
|
|
14
|
+
- **Card recommendations**: "Best travel credit card for beginners", "No annual fee cash back card"
|
|
15
|
+
- **ROI / value**: "Is the Amex Platinum worth the $695 fee?", "First-year value of the Sapphire Preferred"
|
|
16
|
+
- **Award redemptions**: "Find business class flights JFK to Tokyo", "Search hotels in Paris with points"
|
|
17
|
+
|
|
18
|
+
Live US credit card data via Brave Search. All commands output JSON for programmatic use.
|
|
19
|
+
|
|
20
|
+
## Prerequisites
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Install once
|
|
24
|
+
pip install fleece-cli
|
|
25
|
+
|
|
26
|
+
# Set in environment or .env file
|
|
27
|
+
export BRAVE_API_KEY=<your_key>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Commands
|
|
31
|
+
|
|
32
|
+
### Full card report
|
|
33
|
+
```bash
|
|
34
|
+
fleece card "<card name>" --json
|
|
35
|
+
```
|
|
36
|
+
Returns fees, welcome offer, earning rates, credits, benefits, and strategy.
|
|
37
|
+
|
|
38
|
+
### Earning rates
|
|
39
|
+
```bash
|
|
40
|
+
fleece rates "<card name>" --json
|
|
41
|
+
fleece rates "<card name>" --category "<dining|travel|groceries|gas>" --json
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Transfer partners
|
|
45
|
+
```bash
|
|
46
|
+
fleece partners "<card name>" --json
|
|
47
|
+
```
|
|
48
|
+
Returns airline and hotel partners with ratios and transfer timing.
|
|
49
|
+
|
|
50
|
+
### Statement credits
|
|
51
|
+
```bash
|
|
52
|
+
fleece credits "<card name>" --json
|
|
53
|
+
```
|
|
54
|
+
Returns all credits with amounts, cadence, and enrollment requirements.
|
|
55
|
+
|
|
56
|
+
### Recent news (past month)
|
|
57
|
+
```bash
|
|
58
|
+
fleece news "<card name>" --json
|
|
59
|
+
```
|
|
60
|
+
Freshness-filtered to the past month.
|
|
61
|
+
|
|
62
|
+
### Side-by-side comparison
|
|
63
|
+
```bash
|
|
64
|
+
fleece compare "<card A>" "<card B>" --json
|
|
65
|
+
fleece compare "<card A>" "<card B>" --aspects "fees,rewards,credits" --json
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Portfolio / wallet analysis
|
|
69
|
+
```bash
|
|
70
|
+
fleece wallet "<card 1>" "<card 2>" "<card 3>" --json
|
|
71
|
+
```
|
|
72
|
+
Returns coverage map, overlaps, gaps, and next-card suggestions.
|
|
73
|
+
|
|
74
|
+
### First-year ROI
|
|
75
|
+
```bash
|
|
76
|
+
fleece roi "<card name>" --travel <monthly $> --dining <monthly $> --other <monthly $> --json
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Profile-based recommendations
|
|
80
|
+
```bash
|
|
81
|
+
fleece recommend "<spending profile>" --json
|
|
82
|
+
fleece recommend "<spending profile>" --preferences "<preferences>" --json
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Output format
|
|
86
|
+
|
|
87
|
+
Every command with `--json` returns:
|
|
88
|
+
```json
|
|
89
|
+
{
|
|
90
|
+
"command": "card",
|
|
91
|
+
"query": "...",
|
|
92
|
+
"result": "...",
|
|
93
|
+
"ok": true,
|
|
94
|
+
"error": null
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
On error, `ok` is `false` and `error` contains the message. Always check `ok` before using `result`.
|
|
99
|
+
|
|
100
|
+
## Exit codes
|
|
101
|
+
|
|
102
|
+
| Code | Meaning |
|
|
103
|
+
|------|---------|
|
|
104
|
+
| `0` | Success |
|
|
105
|
+
| `1` | Search / tool error (Brave API failure) |
|
|
106
|
+
| `2` | `BRAVE_API_KEY` not set |
|
|
107
|
+
|
|
108
|
+
## Stdin piping
|
|
109
|
+
|
|
110
|
+
The primary argument on any single-card command accepts `-` to read from stdin:
|
|
111
|
+
```bash
|
|
112
|
+
echo "Chase Sapphire Preferred" | fleece card - --json
|
|
113
|
+
echo "high dining spend" | fleece recommend - --json
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
The `wallet` command accepts `-` as its sole argument to read newline-delimited card names:
|
|
117
|
+
```bash
|
|
118
|
+
printf "Amex Gold\nChase Freedom Unlimited\nBilt\n" | fleece wallet - --json
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Coverage
|
|
122
|
+
|
|
123
|
+
Supports all major US issuers: Amex, Bank of America, Barclays, Bilt, Capital One,
|
|
124
|
+
Chase, Citi, Discover, Robinhood, U.S. Bank, Wells Fargo.
|
|
125
|
+
|
|
126
|
+
## Redemption — PointsYeah URL generation
|
|
127
|
+
|
|
128
|
+
No API key required. These commands generate best-effort PointsYeah deep-link URLs
|
|
129
|
+
and optionally open them in the browser. Pure stdlib, no external calls.
|
|
130
|
+
|
|
131
|
+
### Flight search
|
|
132
|
+
```bash
|
|
133
|
+
fleece flights JFK LAX --date 2026-06-01 --json
|
|
134
|
+
fleece flights JFK LHR --date 2026-06-01 --return 2026-06-15 --adults 2 --cabin business --open
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Options: `--date` (required), `--return`, `--adults` (default 1), `--cabin` (economy | premium-economy | business | first), `--open`, `--json`
|
|
138
|
+
|
|
139
|
+
### Hotel search
|
|
140
|
+
```bash
|
|
141
|
+
fleece hotels "Tokyo" --checkin 2026-06-01 --checkout 2026-06-07 --json
|
|
142
|
+
fleece hotels "Jersey City" --checkin 2026-04-10 --checkout 2026-04-12 --guests 2 --rooms 1 --open
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Options: `--checkin` (required), `--checkout` (required), `--guests` (default 1), `--rooms` (default 1), `--open`, `--json`
|
|
146
|
+
|
|
147
|
+
### JSON output format
|
|
148
|
+
```json
|
|
149
|
+
{
|
|
150
|
+
"command": "flights",
|
|
151
|
+
"origin": "JFK", "destination": "LAX", "date": "2026-06-01",
|
|
152
|
+
"return_date": null, "adults": 1, "cabin": "economy",
|
|
153
|
+
"url": "https://www.pointsyeah.com/?type=flights&...",
|
|
154
|
+
"ok": true, "error": null
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
> PointsYeah does not publish a stable deep-link spec. If the URL stops working,
|
|
159
|
+
> the query parameters still serve as a useful manual search reference.
|
|
@@ -15,7 +15,7 @@ Fetches a comprehensive report for a US credit card using live Brave Search data
|
|
|
15
15
|
## Usage
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
|
|
18
|
+
fleece card "<card name>" --json
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
The `--json` flag returns a structured envelope your can parse:
|
|
@@ -33,6 +33,6 @@ Use `result` as your research context, then synthesize a natural answer.
|
|
|
33
33
|
## Example
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
fleece card "Chase Sapphire Preferred" --json
|
|
37
|
+
fleece card "Amex Gold" --json
|
|
38
38
|
```
|
|
@@ -15,8 +15,8 @@ Searches live data for both cards and returns research for a structured comparis
|
|
|
15
15
|
## Usage
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
fleece compare "<card A>" "<card B>" --json
|
|
19
|
+
fleece compare "<card A>" "<card B>" --aspects "fees,rewards,credits" --json
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
Default aspects: `fees,rewards,welcome_offer,credits,transfer_partners`
|
|
@@ -24,8 +24,8 @@ Default aspects: `fees,rewards,welcome_offer,credits,transfer_partners`
|
|
|
24
24
|
## Example
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
fleece compare "Amex Gold" "Chase Sapphire Preferred" --json
|
|
28
|
+
fleece compare "Capital One Venture X" "Chase Sapphire Reserve" --json
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
After receiving the result, synthesize a clear recommendation based on the user's stated priorities.
|
|
@@ -15,12 +15,12 @@ Fetches the full list of statement credits and perks for a card.
|
|
|
15
15
|
## Usage
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
|
|
18
|
+
fleece credits "<card name>" --json
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
## Example
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
fleece credits "Amex Platinum" --json
|
|
25
|
+
fleece credits "Chase Sapphire Reserve" --json
|
|
26
26
|
```
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fleece-flights
|
|
3
|
+
description: Generate a PointsYeah flight search URL. No API key required. Use when the user wants to search for award flights or find redemption options for a route.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /fleece-flights
|
|
7
|
+
|
|
8
|
+
Generates a PointsYeah flight search URL from origin, destination, and date. No Brave API key needed — pure URL generation.
|
|
9
|
+
|
|
10
|
+
## When to use
|
|
11
|
+
- User asks to search for award flights on a route
|
|
12
|
+
- User wants to find redemption options after a `fleece wallet` or `fleece partners` analysis
|
|
13
|
+
- User provides an origin, destination, and date and wants to look up availability
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
fleece flights <ORIGIN> <DESTINATION> --date <YYYY-MM-DD> --json
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**With return date and cabin:**
|
|
22
|
+
```bash
|
|
23
|
+
fleece flights JFK LHR --date 2026-06-01 --return 2026-06-15 --adults 2 --cabin business --json
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Open in browser:**
|
|
27
|
+
```bash
|
|
28
|
+
fleece flights JFK LAX --date 2026-06-01 --open
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Cabin options: `economy` | `premium-economy` | `business` | `first` (default: `economy`)
|
|
32
|
+
|
|
33
|
+
## Output
|
|
34
|
+
|
|
35
|
+
```json
|
|
36
|
+
{
|
|
37
|
+
"command": "flights",
|
|
38
|
+
"origin": "JFK",
|
|
39
|
+
"destination": "LAX",
|
|
40
|
+
"date": "2026-06-01",
|
|
41
|
+
"return_date": null,
|
|
42
|
+
"adults": 1,
|
|
43
|
+
"cabin": "economy",
|
|
44
|
+
"url": "https://www.pointsyeah.com/?type=flights&origin=JFK&destination=LAX&date=2026-06-01&return=&adults=1&cabin=economy",
|
|
45
|
+
"ok": true,
|
|
46
|
+
"error": null
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
> PointsYeah does not publish a stable deep-link spec. If the URL stops resolving,
|
|
51
|
+
> the query parameters still serve as a useful manual search reference.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fleece-hotels
|
|
3
|
+
description: Generate a PointsYeah hotel search URL. No API key required. Use when the user wants to search for award hotel stays or find redemption options for a destination.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /fleece-hotels
|
|
7
|
+
|
|
8
|
+
Generates a PointsYeah hotel search URL from location and dates. No Brave API key needed — pure URL generation.
|
|
9
|
+
|
|
10
|
+
## When to use
|
|
11
|
+
- User asks to search for award hotel stays at a destination
|
|
12
|
+
- User wants to redeem hotel points after a `fleece wallet` or `fleece partners` analysis
|
|
13
|
+
- User provides a location and dates and wants to look up availability
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
fleece hotels "<location>" --checkin <YYYY-MM-DD> --checkout <YYYY-MM-DD> --json
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**With guests and rooms:**
|
|
22
|
+
```bash
|
|
23
|
+
fleece hotels "Tokyo" --checkin 2026-06-01 --checkout 2026-06-07 --guests 2 --rooms 1 --json
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Open in browser:**
|
|
27
|
+
```bash
|
|
28
|
+
fleece hotels "Jersey City" --checkin 2026-04-10 --checkout 2026-04-12 --open
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Output
|
|
32
|
+
|
|
33
|
+
```json
|
|
34
|
+
{
|
|
35
|
+
"command": "hotels",
|
|
36
|
+
"location": "Tokyo",
|
|
37
|
+
"checkin": "2026-06-01",
|
|
38
|
+
"checkout": "2026-06-07",
|
|
39
|
+
"guests": 1,
|
|
40
|
+
"rooms": 1,
|
|
41
|
+
"url": "https://www.pointsyeah.com/?type=hotels&location=Tokyo&checkin=2026-06-01&checkout=2026-06-07&guests=1&rooms=1",
|
|
42
|
+
"ok": true,
|
|
43
|
+
"error": null
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
> PointsYeah does not publish a stable deep-link spec. If the URL stops resolving,
|
|
48
|
+
> the query parameters still serve as a useful manual search reference.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fleece-mcc
|
|
3
|
+
description: Look up a Merchant Category Code (MCC) and find the best card in the user's wallet to use at that merchant. No API key needed for basic lookup; BRAVE_API_KEY needed for wallet cross-reference. Use when the user asks "what card should I use at [merchant]?" or provides an MCC code.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /fleece-mcc
|
|
7
|
+
|
|
8
|
+
Looks up an MCC code from the bundled dataset (981 codes, offline) and optionally cross-references with the user's saved wallet to find the highest-earning card.
|
|
9
|
+
|
|
10
|
+
## When to use
|
|
11
|
+
- User asks "what card should I use at [merchant type]?" and you know or can infer the MCC
|
|
12
|
+
- User provides an MCC code directly and wants to know the category
|
|
13
|
+
- User wants to know which card earns most at a specific merchant category
|
|
14
|
+
- After `fleece wallet` identifies a gap, find which MCC codes fall into that gap
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
|
|
18
|
+
**Basic lookup (no API key needed):**
|
|
19
|
+
```bash
|
|
20
|
+
fleece mcc 5812
|
|
21
|
+
# → MCC 5812: Eating Places, Restaurants
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**With wallet cross-reference (requires BRAVE_API_KEY):**
|
|
25
|
+
```bash
|
|
26
|
+
fleece mcc 5812 --wallet --json
|
|
27
|
+
fleece mcc 5411 --wallet --json # Grocery Stores
|
|
28
|
+
fleece mcc 5541 --wallet --json # Service Stations (gas)
|
|
29
|
+
fleece mcc 4111 --wallet --json # Transportation / Commuter
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Common MCCs
|
|
33
|
+
|
|
34
|
+
| MCC | Category |
|
|
35
|
+
|------|----------|
|
|
36
|
+
| 5411 | Grocery Stores, Supermarkets |
|
|
37
|
+
| 5812 | Eating Places, Restaurants |
|
|
38
|
+
| 5541 | Service Stations (gas) |
|
|
39
|
+
| 5912 | Drug Stores, Pharmacies |
|
|
40
|
+
| 5310 | Discount Stores |
|
|
41
|
+
| 5732 | Electronics Stores |
|
|
42
|
+
| 4111 | Transportation / Commuter |
|
|
43
|
+
| 4411 | Cruise Lines |
|
|
44
|
+
| 7011 | Hotels, Motels, Resorts |
|
|
45
|
+
| 4511 | Airlines, Air Carriers |
|
|
46
|
+
|
|
47
|
+
## Output (--json)
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"command": "mcc",
|
|
52
|
+
"mcc": "5812",
|
|
53
|
+
"category": "Eating Places, Restaurants",
|
|
54
|
+
"irs_description": "Restaurants",
|
|
55
|
+
"ok": true,
|
|
56
|
+
"error": null
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
With `--wallet`, returns live research on earning rates per card plus a recommendation for the best card to use.
|
|
61
|
+
|
|
62
|
+
## Notes
|
|
63
|
+
- Dataset is bundled with `fleece-cli` — works fully offline for basic lookups
|
|
64
|
+
- Source: github.com/greggles/mcc-codes (981 codes)
|
|
65
|
+
- `--wallet` mode requires cards saved via `fleece cards add`
|
|
@@ -15,7 +15,7 @@ Searches for the latest news and changes for a card using freshness-filtered res
|
|
|
15
15
|
## Usage
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
|
|
18
|
+
fleece news "<card name>" --json
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
Results are filtered to the past month (`freshness=pm`).
|
|
@@ -23,6 +23,6 @@ Results are filtered to the past month (`freshness=pm`).
|
|
|
23
23
|
## Example
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
fleece news "Amex Gold" --json
|
|
27
|
+
fleece news "Chase Sapphire Reserve" --json
|
|
28
28
|
```
|
|
@@ -15,13 +15,13 @@ Fetches transfer partner details for a card's rewards currency.
|
|
|
15
15
|
## Usage
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
|
|
18
|
+
fleece partners "<card name>" --json
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
## Example
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
fleece partners "Chase Sapphire Preferred" --json
|
|
25
|
+
fleece partners "Capital One Venture X" --json
|
|
26
|
+
fleece partners "Amex Platinum" --json
|
|
27
27
|
```
|
|
@@ -15,8 +15,8 @@ Looks up earning rates for a credit card, with optional category filtering.
|
|
|
15
15
|
## Usage
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
fleece rates "<card name>" --json
|
|
19
|
+
fleece rates "<card name>" --category "<category>" --json
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
Categories: `dining`, `travel`, `groceries`, `gas`, `streaming`, `drugstores`, etc.
|
|
@@ -24,6 +24,6 @@ Categories: `dining`, `travel`, `groceries`, `gas`, `streaming`, `drugstores`, e
|
|
|
24
24
|
## Example
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
fleece rates "Chase Sapphire Preferred" --json
|
|
28
|
+
fleece rates "Amex Gold" --category dining --json
|
|
29
29
|
```
|
|
@@ -15,8 +15,8 @@ Searches for best-match US credit cards for a given spending profile.
|
|
|
15
15
|
## Usage
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
fleece recommend "<spending profile>" --json
|
|
19
|
+
fleece recommend "<spending profile>" --preferences "<extra preferences>" --json
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
Keep the profile concise: categories + rough amounts or priorities.
|
|
@@ -24,9 +24,9 @@ Keep the profile concise: categories + rough amounts or priorities.
|
|
|
24
24
|
## Example
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
fleece recommend "high dining and travel spend, $500/mo dining, $300/mo travel" --json
|
|
28
|
+
fleece recommend "everyday spending, mostly groceries and gas" --preferences "no annual fee" --json
|
|
29
|
+
fleece recommend "frequent international traveler" --preferences "priority pass lounge access" --json
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
After receiving results, present 2–3 top recommendations with a brief rationale for each.
|
|
@@ -15,7 +15,7 @@ Estimates first-year return on investment for a card based on the user's spendin
|
|
|
15
15
|
## Usage
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
|
|
18
|
+
fleece roi "<card name>" --travel <monthly $> --dining <monthly $> --other <monthly $> --json
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
All spend flags are optional and default to `0`. Omit any category the user didn't mention.
|
|
@@ -23,8 +23,8 @@ All spend flags are optional and default to `0`. Omit any category the user didn
|
|
|
23
23
|
## Example
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
fleece roi "Chase Sapphire Preferred" --travel 500 --dining 300 --other 1000 --json
|
|
27
|
+
fleece roi "Amex Gold" --dining 800 --other 500 --json
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
The result includes annual spend totals, an assumed cents-per-point value, and live research context.
|
|
@@ -18,19 +18,19 @@ Analyzes a multi-card portfolio and identifies optimization opportunities.
|
|
|
18
18
|
**If the user has a saved profile (most common)** — no args needed; the CLI auto-loads from `fleece.db`:
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
|
|
21
|
+
fleece wallet
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
**To pass cards explicitly:**
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
|
-
|
|
27
|
+
fleece wallet "Amex Platinum" "Chase Freedom Unlimited" "Bilt"
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
**Agent-friendly JSON output:**
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
|
-
|
|
33
|
+
fleece wallet --json
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
Cards can come from three sources (in priority order):
|
|
@@ -55,8 +55,8 @@ The result includes:
|
|
|
55
55
|
|
|
56
56
|
```bash
|
|
57
57
|
# Auto-load saved wallet (preferred)
|
|
58
|
-
|
|
58
|
+
fleece wallet
|
|
59
59
|
|
|
60
60
|
# Explicit cards
|
|
61
|
-
|
|
61
|
+
fleece wallet "Amex Gold" "Chase Sapphire Preferred" "Citi Double Cash"
|
|
62
62
|
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: Publish Skills to ClawHub
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
paths:
|
|
8
|
+
- ".agents/skills/**"
|
|
9
|
+
- ".claude/skills/**"
|
|
10
|
+
workflow_dispatch:
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
publish:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v5
|
|
17
|
+
|
|
18
|
+
- uses: actions/setup-node@v5
|
|
19
|
+
with:
|
|
20
|
+
node-version: "20"
|
|
21
|
+
|
|
22
|
+
- name: Install clawhub
|
|
23
|
+
run: npm install -g clawhub
|
|
24
|
+
|
|
25
|
+
- name: Authenticate
|
|
26
|
+
run: clawhub login --token "${{ secrets.CLAWHUB_TOKEN }}" --no-browser
|
|
27
|
+
|
|
28
|
+
- name: Publish skills
|
|
29
|
+
run: clawhub sync --root .agents/skills --all --changelog "Automated publish from ${{ github.sha }}"
|
|
@@ -9,9 +9,9 @@ jobs:
|
|
|
9
9
|
build:
|
|
10
10
|
runs-on: ubuntu-latest
|
|
11
11
|
steps:
|
|
12
|
-
- uses: actions/checkout@
|
|
12
|
+
- uses: actions/checkout@v5
|
|
13
13
|
|
|
14
|
-
- uses: actions/setup-python@
|
|
14
|
+
- uses: actions/setup-python@v6
|
|
15
15
|
with:
|
|
16
16
|
python-version: "3.12"
|
|
17
17
|
|
|
@@ -19,7 +19,7 @@ jobs:
|
|
|
19
19
|
|
|
20
20
|
- run: python -m build
|
|
21
21
|
|
|
22
|
-
- uses: actions/upload-artifact@
|
|
22
|
+
- uses: actions/upload-artifact@v6
|
|
23
23
|
with:
|
|
24
24
|
name: dist
|
|
25
25
|
path: dist/
|
|
@@ -31,7 +31,7 @@ jobs:
|
|
|
31
31
|
permissions:
|
|
32
32
|
id-token: write
|
|
33
33
|
steps:
|
|
34
|
-
- uses: actions/download-artifact@
|
|
34
|
+
- uses: actions/download-artifact@v6
|
|
35
35
|
with:
|
|
36
36
|
name: dist
|
|
37
37
|
path: dist/
|
|
@@ -33,12 +33,17 @@ Fleece is a chatbot that:
|
|
|
33
33
|
- **No structured research**: Lacks the ability to provide specific, verified credit card information (fees, benefits, offers, transfer partners, etc.)
|
|
34
34
|
|
|
35
35
|
## Future Integration Opportunities
|
|
36
|
-
- **credit-card-skills integration**: Add specialized research capabilities to access live issuer data
|
|
37
36
|
- **Multi-page app expansion**: Build out the "Credit Cards" discovery page and "My Credit Cards" portfolio management
|
|
38
37
|
- **Database backend**: Store user profiles, card portfolios, and preferences
|
|
39
38
|
|
|
39
|
+
## CLI — Redemption Commands
|
|
40
|
+
The `fleece flights` and `fleece hotels` commands are merged from the former `pointsyeah-cli` project (now archived). They generate PointsYeah search URLs with no API key required — pure stdlib, zero external dependencies. Source lives in `pointsyeah.py`.
|
|
41
|
+
|
|
40
42
|
## Development Notes
|
|
41
43
|
- Author: Yuan Chen
|
|
42
44
|
- Created: March 16, 2025
|
|
43
45
|
- Uses custom CSS styling (style.css)
|
|
44
|
-
- Requires OpenAI API key (entered via sidebar, not stored)
|
|
46
|
+
- Requires OpenAI API key (entered via sidebar, not stored)
|
|
47
|
+
|
|
48
|
+
## Infrastructure Notes
|
|
49
|
+
- **Databricks**: No Databricks resources are available at the moment. The Databricks App deployment workflow has been removed. Do not suggest or implement Databricks-based solutions until resources are provisioned.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fleece-cli
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary: Credit card research CLI — live data via Brave Search, designed for humans and AI agents.
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: Credit card research and redemption CLI — live data via Brave Search, PointsYeah URL generation, designed for humans and AI agents.
|
|
5
5
|
Author-email: Yuan Chen <cysbc1999@gmail.com>
|
|
6
6
|
License: MIT
|
|
7
7
|
License-File: LICENSE
|