fleece-cli 0.3.0__tar.gz → 0.3.1__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 → fleece_cli-0.3.1}/.agents/skills/fleece/SKILL.md +27 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-compare.md +12 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-rates.md +10 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-recommend.md +16 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-wallet.md +17 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/PKG-INFO +1 -1
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/cli.py +17 -9
- fleece_cli-0.3.1/docs/SEO.md +113 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/docs/index.html +112 -6
- fleece_cli-0.3.1/docs/robots.txt +4 -0
- fleece_cli-0.3.1/docs/sitemap.xml +9 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/install.sh +5 -3
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/pyproject.toml +1 -1
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-card.md +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-credits.md +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-flights.md +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-hotels.md +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-mcc.md +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-news.md +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-partners.md +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-roi.md +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.devcontainer/devcontainer.json +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.github/workflows/publish-skills.yml +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.github/workflows/publish.yml +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.gitignore +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.streamlit/config.toml +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/Advertiser Disclosure.md +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/CLAUDE.md +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/KnowledgeCatalog.json +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/LICENSE +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/MyCards.json +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/README.md +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/app.yaml +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/assets/default_card.png +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/assets/default_card.svg +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/db.py +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/docs/CNAME +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/fleece poc.ipynb +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/fleece.py +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/image_service.py +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/mcc_codes.jsonl +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/migrate.py +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/pages/credit_cards.py +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/pages/my_credit_cards.py +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/plan.md +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/pointsyeah.py +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/prompts/agent_system_prompt.py +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/reference/Analyzer.md +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/requirements-test.txt +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/requirements.txt +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/style.css +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/test_fleece.py +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/tests/__init__.py +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/tests/test_brave_client.py +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/tests/test_cli.py +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/tests/test_pointsyeah.py +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/tests/test_tools.py +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/tools/__init__.py +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/tools/brave_client.py +0 -0
- {fleece_cli-0.3.0 → fleece_cli-0.3.1}/tools/credit_card_tools.py +0 -0
|
@@ -14,9 +14,36 @@ Use this skill when the user asks about:
|
|
|
14
14
|
- **Card recommendations**: "Best travel credit card for beginners", "No annual fee cash back card"
|
|
15
15
|
- **ROI / value**: "Is the Amex Platinum worth the $695 fee?", "First-year value of the Sapphire Preferred"
|
|
16
16
|
- **Award redemptions**: "Find business class flights JFK to Tokyo", "Search hotels in Paris with points"
|
|
17
|
+
- **Merchant lookup**: "What card should I use at Costco?", "Which card earns the most at gas stations?", "What MCC is a pharmacy?"
|
|
17
18
|
|
|
18
19
|
Live US credit card data via Brave Search. All commands output JSON for programmatic use.
|
|
19
20
|
|
|
21
|
+
## MCC-enriched workflow
|
|
22
|
+
|
|
23
|
+
The bundled MCC dataset (981 codes, offline) enables a precise end-to-end flow:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
fleece wallet → identify category gaps
|
|
27
|
+
fleece mcc 5411 → confirm "Grocery Stores, Supermarkets"
|
|
28
|
+
fleece mcc 5411 --wallet → find best card for that exact merchant type
|
|
29
|
+
fleece recommend "grocery stores, gas, transit" → suggest a card to fill the gap
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Common MCCs to know:**
|
|
33
|
+
|
|
34
|
+
| MCC | Category | Typical card bonus |
|
|
35
|
+
|------|----------|--------------------|
|
|
36
|
+
| 5411 | Grocery Stores | Amex Gold 4x, BofA Cash Rewards 3% |
|
|
37
|
+
| 5812 | Restaurants | Amex Gold 4x, CSP 3x |
|
|
38
|
+
| 5814 | Fast Food | Varies — not always same as 5812 |
|
|
39
|
+
| 5541 | Gas Stations | Citi Custom Cash 5x, BofA 3% |
|
|
40
|
+
| 4511 | Airlines | Amex Platinum 5x, CSR 3x |
|
|
41
|
+
| 7011 | Hotels | Amex Platinum 5x (Amex Travel), CSR 3x |
|
|
42
|
+
| 4111 | Transit / Commuter | CSR 3x, Bilt 3x |
|
|
43
|
+
| 5912 | Drugstores | Chase Freedom Flex 3x |
|
|
44
|
+
|
|
45
|
+
Use `fleece mcc <code>` (no API key needed) to resolve any MCC before running a rates or wallet query.
|
|
46
|
+
|
|
20
47
|
## Prerequisites
|
|
21
48
|
|
|
22
49
|
```bash
|
|
@@ -29,3 +29,15 @@ 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.
|
|
32
|
+
|
|
33
|
+
## MCC-precise comparison
|
|
34
|
+
|
|
35
|
+
When comparing two cards on rewards, use `fleece mcc` to identify the exact merchant category first — then compare on that specific category for a more accurate result:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# User wants to know which card earns more at Costco (a grocery/wholesale club)
|
|
39
|
+
fleece mcc 5411 # → Grocery Stores, Supermarkets
|
|
40
|
+
|
|
41
|
+
# Then compare with that category as the focus
|
|
42
|
+
fleece compare "Amex Gold" "Chase Sapphire Preferred" --aspects "grocery rewards,supermarket earning rate" --json
|
|
43
|
+
```
|
|
@@ -27,3 +27,13 @@ Categories: `dining`, `travel`, `groceries`, `gas`, `streaming`, `drugstores`, e
|
|
|
27
27
|
fleece rates "Chase Sapphire Preferred" --json
|
|
28
28
|
fleece rates "Amex Gold" --category dining --json
|
|
29
29
|
```
|
|
30
|
+
|
|
31
|
+
## MCC precision tip
|
|
32
|
+
|
|
33
|
+
Category names like `dining` are broad — a card may earn differently at MCC 5812 (sit-down restaurants) vs 5814 (fast food) vs 5411 (grocery stores with a café). When exact merchant-level precision matters, pair with `fleece mcc`:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# Confirm the MCC for the merchant type, then look up the rate
|
|
37
|
+
fleece mcc 5814 # → Fast Food Restaurants
|
|
38
|
+
fleece rates "Amex Gold" --category "fast food restaurants" --json
|
|
39
|
+
```
|
|
@@ -30,3 +30,19 @@ fleece recommend "frequent international traveler" --preferences "priority pass
|
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
After receiving results, present 2–3 top recommendations with a brief rationale for each.
|
|
33
|
+
|
|
34
|
+
## MCC-informed spending profiles
|
|
35
|
+
|
|
36
|
+
For more precise recommendations, identify the MCC codes for the user's top merchants first, then describe the profile by category name:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# User shops at Whole Foods (5411), commutes by subway (4111), eats out often (5812)
|
|
40
|
+
fleece mcc 5411 # → Grocery Stores, Supermarkets
|
|
41
|
+
fleece mcc 4111 # → Transportation / Commuter
|
|
42
|
+
fleece mcc 5812 # → Eating Places, Restaurants
|
|
43
|
+
|
|
44
|
+
# Then recommend based on confirmed categories
|
|
45
|
+
fleece recommend "grocery stores, transit, restaurants" --json
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
This avoids vague profiles like "I spend a lot on food" and maps the user's real spend to known card bonus categories.
|
|
@@ -60,3 +60,20 @@ fleece wallet
|
|
|
60
60
|
# Explicit cards
|
|
61
61
|
fleece wallet "Amex Gold" "Chase Sapphire Preferred" "Citi Double Cash"
|
|
62
62
|
```
|
|
63
|
+
|
|
64
|
+
## MCC-enriched gap analysis
|
|
65
|
+
|
|
66
|
+
After `fleece wallet` identifies a gap (e.g., "no bonus on grocery stores"), use `fleece mcc` to drill into the precise merchant category and find the best card for it:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# Wallet says "gap on groceries" → confirm the MCC and cross-reference wallet
|
|
70
|
+
fleece mcc 5411 --wallet --json # Grocery Stores, Supermarkets
|
|
71
|
+
|
|
72
|
+
# Other common gap MCCs to check after a wallet analysis
|
|
73
|
+
fleece mcc 5541 --wallet # Gas stations
|
|
74
|
+
fleece mcc 5912 --wallet # Drugstores / pharmacies
|
|
75
|
+
fleece mcc 4111 --wallet # Transit / commuter
|
|
76
|
+
fleece mcc 5812 --wallet # Restaurants
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
This turns a vague "gap on groceries" into a precise card recommendation for a specific merchant category.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fleece-cli
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.1
|
|
4
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
|
|
@@ -4,10 +4,13 @@ Fleece CLI — agent-friendly companion to the Fleece Streamlit chatbot.
|
|
|
4
4
|
Exposes credit card research tools as shell commands backed by Brave Search.
|
|
5
5
|
Designed for use by AI agents (Claude Code, Codex) and humans alike.
|
|
6
6
|
|
|
7
|
+
BRAVE_API_KEY is optional — commands that don't need live search (mcc, flights,
|
|
8
|
+
hotels) work fully offline. Research commands (card, rates, wallet, …) require it.
|
|
9
|
+
|
|
7
10
|
Exit codes:
|
|
8
11
|
0 success
|
|
9
12
|
1 search / tool error
|
|
10
|
-
2
|
|
13
|
+
2 BRAVE_API_KEY required but not set
|
|
11
14
|
"""
|
|
12
15
|
import json
|
|
13
16
|
import sys
|
|
@@ -18,7 +21,11 @@ from dotenv import load_dotenv
|
|
|
18
21
|
|
|
19
22
|
app = typer.Typer(
|
|
20
23
|
name="fleece",
|
|
21
|
-
help=
|
|
24
|
+
help=(
|
|
25
|
+
"Fleece credit card research CLI — live data via Brave Search.\n\n"
|
|
26
|
+
"BRAVE_API_KEY is optional: mcc, flights, and hotels work offline.\n"
|
|
27
|
+
"Research commands (card, rates, wallet, …) require it."
|
|
28
|
+
),
|
|
22
29
|
no_args_is_help=True,
|
|
23
30
|
)
|
|
24
31
|
|
|
@@ -27,20 +34,21 @@ app = typer.Typer(
|
|
|
27
34
|
# ---------------------------------------------------------------------------
|
|
28
35
|
|
|
29
36
|
def _resolve_key(api_key: Optional[str], no_dotenv: bool) -> str:
|
|
30
|
-
"""Load env and return the Brave API key
|
|
37
|
+
"""Load env and return the Brave API key (may be empty — checked at use time)."""
|
|
31
38
|
import os
|
|
32
39
|
if not no_dotenv:
|
|
33
40
|
load_dotenv()
|
|
34
|
-
|
|
41
|
+
return api_key or os.getenv("BRAVE_API_KEY", "")
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def _get_wrapper(key: str, freshness: Optional[str] = None):
|
|
35
45
|
if not key:
|
|
36
46
|
_error_exit(
|
|
37
|
-
"BRAVE_API_KEY
|
|
47
|
+
"BRAVE_API_KEY is required for live research. "
|
|
48
|
+
"Set it in your environment, add it to .env, or pass --api-key. "
|
|
49
|
+
"Commands mcc, flights, and hotels work without it.",
|
|
38
50
|
code=2,
|
|
39
51
|
)
|
|
40
|
-
return key
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
def _get_wrapper(key: str, freshness: Optional[str] = None):
|
|
44
52
|
from tools.brave_client import build_brave_wrapper
|
|
45
53
|
return build_brave_wrapper(key, freshness=freshness)
|
|
46
54
|
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# ClawHub Skill SEO Log
|
|
2
|
+
|
|
3
|
+
Tracking description changes, tag updates, and search ranking results for the `fleece` skill on ClawHub.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## v1.0.0 — Initial publish (2026-05-18)
|
|
8
|
+
|
|
9
|
+
**Description:**
|
|
10
|
+
> Fleece credit card research CLI. Provides live US credit card data via Brave Search — full reports, earning rates, transfer partners, statement credits, recent news, card comparisons, portfolio analysis, ROI estimates, and profile-based recommendations. Install with `pip install fleece-cli`. Use whenever you need current credit card information.
|
|
11
|
+
|
|
12
|
+
**Tags:** `latest`
|
|
13
|
+
|
|
14
|
+
**Search results:**
|
|
15
|
+
| Query | Rank | Score |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| `credit card` | #13 | 0.701 |
|
|
18
|
+
|
|
19
|
+
**Issues identified:**
|
|
20
|
+
- Generic name "Fleece" gives no signal to vector search
|
|
21
|
+
- Description truncated in results — key terms buried
|
|
22
|
+
- No categorical tags
|
|
23
|
+
- Zero results for conversational queries like "what card should I use for dining"
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## v1.1.0 — Keyword-rich description + tags (2026-05-18)
|
|
28
|
+
|
|
29
|
+
**Changes:**
|
|
30
|
+
- Rewrote description to front-load issuer names (Chase, Amex, Citi, Capital One, Bilt) and reward types (points, miles, cash back, annual fees, welcome bonuses, transfer partners)
|
|
31
|
+
- Added "Use this skill when..." section with 8 natural-language trigger phrases near top of SKILL.md body
|
|
32
|
+
- Added 14 categorical tags
|
|
33
|
+
|
|
34
|
+
**Tags:** `latest, credit-cards, rewards, points, miles, travel, finance, research, amex, chase, citi, capital-one, brave-search, wallet, transfer-partners`
|
|
35
|
+
|
|
36
|
+
**Search results:**
|
|
37
|
+
| Query | Rank | Score |
|
|
38
|
+
|---|---|---|
|
|
39
|
+
| `credit card research` | **#1** | 0.817 |
|
|
40
|
+
| `credit card redemption` | **#1** | 0.782 |
|
|
41
|
+
| `credit card` | #13 | 0.702 |
|
|
42
|
+
| `what card should I use for dining` | — | no results |
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## v1.1.1 — Conversational query language (2026-05-18)
|
|
47
|
+
|
|
48
|
+
**Changes:**
|
|
49
|
+
- Rewrote description opening to directly mirror user query phrasing:
|
|
50
|
+
> "What credit card should I use for dining, travel, groceries, or gas?" — Fleece answers this with live data...
|
|
51
|
+
- Added `recommendations`, `dining`, `groceries`, `gas` tags
|
|
52
|
+
|
|
53
|
+
**Rationale:** Vector search scores on embedding similarity — starting the description with the exact question users ask maximizes cosine similarity for that query bucket.
|
|
54
|
+
|
|
55
|
+
**Tags:** `latest, credit-cards, rewards, points, miles, travel, finance, research, amex, chase, citi, capital-one, brave-search, wallet, transfer-partners, recommendations, dining, groceries, gas`
|
|
56
|
+
|
|
57
|
+
**Search results:**
|
|
58
|
+
| Query | Rank | Score |
|
|
59
|
+
|---|---|---|
|
|
60
|
+
| `credit card research` | **#1** | 0.817 |
|
|
61
|
+
| `credit card redemption` | **#1** | 0.782 |
|
|
62
|
+
| `what card should I use for dining` | — | no results (below threshold) |
|
|
63
|
+
|
|
64
|
+
**Note:** ClawHub has a minimum score threshold (~0.6–0.7). Conversational queries fall below it for all skills — not specific to fleece. Vector index update lag (~minutes) observed between publish and ranking change.
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## v1.2.0 — MCC command added (2026-05-18)
|
|
69
|
+
|
|
70
|
+
**Changes:**
|
|
71
|
+
- Added `fleece mcc` command (offline MCC code lookup + wallet cross-reference)
|
|
72
|
+
- Added `mcc`, `merchant-category` tags
|
|
73
|
+
|
|
74
|
+
**Tags:** added `mcc, merchant-category`
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## v1.2.1 — Claude skill for MCC published (2026-05-18)
|
|
79
|
+
|
|
80
|
+
**Changes:**
|
|
81
|
+
- Added `fleece-mcc.md` Claude Code skill
|
|
82
|
+
- No description change
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## v1.3.0 — MCC-enriched workflows across all skills (2026-05-18)
|
|
87
|
+
|
|
88
|
+
**Changes:**
|
|
89
|
+
- Added merchant lookup as an explicit trigger phrase in agent SKILL.md:
|
|
90
|
+
> "What card should I use at Costco?", "Which card earns the most at gas stations?", "What MCC is a pharmacy?"
|
|
91
|
+
- Added MCC workflow table to agent SKILL.md mapping common codes to typical card bonuses (5411 groceries, 5812 restaurants, 5541 gas, 4511 airlines, 7011 hotels, 4111 transit, 5912 drugstores)
|
|
92
|
+
- **fleece-wallet**: added post-gap-analysis MCC flow (`fleece mcc <code> --wallet`)
|
|
93
|
+
- **fleece-rates**: added MCC precision tip (5812 vs 5814 vs 5411 distinctions)
|
|
94
|
+
- **fleece-recommend**: added MCC-informed spending profile workflow
|
|
95
|
+
- **fleece-compare**: added MCC-precise comparison example
|
|
96
|
+
|
|
97
|
+
**Rationale:** MCC lookup answers "what card should I use at [merchant]?" with precision. Cross-referencing wallet gaps with MCC codes turns vague category gaps into specific merchant-level card recommendations. Adding merchant phrasing to trigger phrases broadens the query surface the skill matches.
|
|
98
|
+
|
|
99
|
+
**Tags:** unchanged from v1.2.1
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Observations & lessons
|
|
104
|
+
|
|
105
|
+
1. **Description is the primary ranking signal** — ClawHub's vector search indexes the frontmatter `description` field. The body content appears to have lower weight. Front-load the highest-value keywords.
|
|
106
|
+
|
|
107
|
+
2. **Conversational queries hit a threshold floor** — queries phrased as full sentences ("what card should I use for...") return 0 results across all skills, suggesting the registry-wide similarity is below ClawHub's cutoff for this query type. Not a fleece-specific problem.
|
|
108
|
+
|
|
109
|
+
3. **Intent buckets matter** — "credit card" ranks us #13 because the top results are payment/spend skills (giving agents a card to transact). We're a research tool — different intent, different bucket. Competing in the right bucket ("credit card research", "credit card redemption") yields #1 rankings.
|
|
110
|
+
|
|
111
|
+
4. **Tags are for filtering, not ranking** — adding tags didn't move needle on search scores but helps with tag-based browsing.
|
|
112
|
+
|
|
113
|
+
5. **Index update lag** — ClawHub rebuilds vector embeddings asynchronously after publish. The `inspect` summary field reflects the old content until the rebuild completes. Wait ~5–10 minutes before testing ranking changes.
|
|
@@ -3,7 +3,56 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
-
|
|
6
|
+
|
|
7
|
+
<!-- Primary SEO -->
|
|
8
|
+
<title>Fleece — Credit Card Research CLI & Rewards Optimizer</title>
|
|
9
|
+
<meta name="description" content="Fleece is a free, open-source CLI that researches credit cards with live data. Compare Chase, Amex, Citi, and Capital One cards — earning rates, transfer partners, statement credits, ROI, and MCC-level merchant lookup. pip install fleece-cli." />
|
|
10
|
+
<meta name="robots" content="index, follow" />
|
|
11
|
+
<meta name="author" content="Yuan Chen" />
|
|
12
|
+
<link rel="canonical" href="https://getfleece.io/" />
|
|
13
|
+
<meta name="google-site-verification" content="9DkACCiooe0-omtkzGJUZJPqoG0HAj4QejFEom9wrGA" />
|
|
14
|
+
|
|
15
|
+
<!-- Open Graph -->
|
|
16
|
+
<meta property="og:type" content="website" />
|
|
17
|
+
<meta property="og:url" content="https://getfleece.io/" />
|
|
18
|
+
<meta property="og:title" content="Fleece — Credit Card Research CLI & Rewards Optimizer" />
|
|
19
|
+
<meta property="og:description" content="Research credit cards with live data. Compare Chase, Amex, Citi, Capital One — earning rates, transfer partners, ROI, MCC lookup, and award flight search. Free and open source." />
|
|
20
|
+
<meta property="og:site_name" content="Fleece" />
|
|
21
|
+
|
|
22
|
+
<!-- Twitter Card -->
|
|
23
|
+
<meta name="twitter:card" content="summary" />
|
|
24
|
+
<meta name="twitter:title" content="Fleece — Credit Card Research CLI & Rewards Optimizer" />
|
|
25
|
+
<meta name="twitter:description" content="Research credit cards with live data. Compare Chase, Amex, Citi, Capital One — earning rates, transfer partners, ROI, MCC lookup, and award flight search. Free and open source." />
|
|
26
|
+
|
|
27
|
+
<!-- JSON-LD Structured Data -->
|
|
28
|
+
<script type="application/ld+json">
|
|
29
|
+
{
|
|
30
|
+
"@context": "https://schema.org",
|
|
31
|
+
"@type": "SoftwareApplication",
|
|
32
|
+
"name": "Fleece",
|
|
33
|
+
"alternateName": "fleece-cli",
|
|
34
|
+
"applicationCategory": "FinanceApplication",
|
|
35
|
+
"operatingSystem": "macOS, Linux, Windows",
|
|
36
|
+
"programmingLanguage": "Python",
|
|
37
|
+
"offers": {
|
|
38
|
+
"@type": "Offer",
|
|
39
|
+
"price": "0",
|
|
40
|
+
"priceCurrency": "USD"
|
|
41
|
+
},
|
|
42
|
+
"description": "Fleece is an open-source credit card research CLI. Look up earning rates, transfer partners, statement credits, annual fees, and first-year ROI for Chase, Amex, Citi, Capital One, and all major US issuers. Includes offline MCC merchant category lookup and PointsYeah award flight and hotel search.",
|
|
43
|
+
"url": "https://getfleece.io/",
|
|
44
|
+
"downloadUrl": "https://pypi.org/project/fleece-cli/",
|
|
45
|
+
"softwareVersion": "0.3.0",
|
|
46
|
+
"license": "https://github.com/chenyuan99/fleece/blob/main/LICENSE",
|
|
47
|
+
"codeRepository": "https://github.com/chenyuan99/fleece",
|
|
48
|
+
"author": {
|
|
49
|
+
"@type": "Person",
|
|
50
|
+
"name": "Yuan Chen"
|
|
51
|
+
},
|
|
52
|
+
"keywords": "credit card research, rewards optimizer, transfer partners, MCC lookup, Chase Sapphire, Amex Gold, Citi, Capital One, points miles cash back"
|
|
53
|
+
}
|
|
54
|
+
</script>
|
|
55
|
+
|
|
7
56
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
8
57
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
9
58
|
<link href="https://fonts.googleapis.com/css2?family=Oswald:wght@400;600;700&family=Source+Sans+3:wght@400;600&display=swap" rel="stylesheet">
|
|
@@ -463,7 +512,7 @@
|
|
|
463
512
|
<section class="hero">
|
|
464
513
|
<div class="hero-inner">
|
|
465
514
|
<div>
|
|
466
|
-
<h1>
|
|
515
|
+
<h1>Credit card research for <span>deal saviors</span></h1>
|
|
467
516
|
<p>AI-powered credit card research and award redemption. Live data via Brave Search, PointsYeah flight and hotel search — every command outputs clean JSON, built for humans and AI agents alike.</p>
|
|
468
517
|
<div class="hero-actions">
|
|
469
518
|
<a class="btn-pill-dark" href="https://github.com/chenyuan99/fleece" target="_blank">
|
|
@@ -476,7 +525,7 @@
|
|
|
476
525
|
<div class="hero-install-box">
|
|
477
526
|
<h2>Install CLI</h2>
|
|
478
527
|
<div class="install-cmd"><span>$</span> pip install fleece-cli</div>
|
|
479
|
-
<p
|
|
528
|
+
<p><code style="color:rgba(255,255,255,0.5);font-size:0.85em">BRAVE_API_KEY</code> is optional — <code style="color:rgba(255,255,255,0.5);font-size:0.85em">mcc</code>, <code style="color:rgba(255,255,255,0.5);font-size:0.85em">flights</code>, and <code style="color:rgba(255,255,255,0.5);font-size:0.85em">hotels</code> work fully offline. Live research commands require it. Requires Python 3.11+.</p>
|
|
480
529
|
</div>
|
|
481
530
|
</div>
|
|
482
531
|
</section>
|
|
@@ -520,7 +569,7 @@
|
|
|
520
569
|
<path d="M38 28l8-4-2 8" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
521
570
|
</svg>
|
|
522
571
|
<h3>Redemption</h3>
|
|
523
|
-
<p>Generate PointsYeah search URLs for award flights and hotels
|
|
572
|
+
<p>Look up any merchant category code to find your best card at checkout. Generate PointsYeah search URLs for award flights and hotels. No API key needed for either — works fully offline.</p>
|
|
524
573
|
<a class="btn-arrow" href="#commands" >
|
|
525
574
|
See commands
|
|
526
575
|
<svg viewBox="0 0 16 16" fill="none"><path d="M3 8h10M9 4l4 4-4 4" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"/></svg>
|
|
@@ -533,8 +582,8 @@
|
|
|
533
582
|
<!-- ABOUT -->
|
|
534
583
|
<section class="announcement">
|
|
535
584
|
<div class="announcement-inner">
|
|
536
|
-
<h2>About</h2>
|
|
537
|
-
<p>Fleece is
|
|
585
|
+
<h2>About Fleece</h2>
|
|
586
|
+
<p>Fleece is a free, open-source credit card research tool built for people who take rewards seriously. Unlike chatbots that rely on stale training data, Fleece pulls live information from the web on every query — so you always get current fees, earning rates, and benefit details. The CLI is designed to work seamlessly with AI agents: every command supports <code style="font-size:0.95em;background:rgba(0,0,0,0.06);padding:1px 5px;border-radius:3px">--json</code> output and reads from stdin, so it plugs into any workflow.</p>
|
|
538
587
|
<a class="btn-arrow" href="https://github.com/chenyuan99/fleece" target="_blank" style="background:var(--black);color:var(--white);">
|
|
539
588
|
Read the docs
|
|
540
589
|
<svg viewBox="0 0 16 16" fill="none" width="14" height="14"><path d="M3 8h10M9 4l4 4-4 4" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"/></svg>
|
|
@@ -542,6 +591,62 @@
|
|
|
542
591
|
</div>
|
|
543
592
|
</section>
|
|
544
593
|
|
|
594
|
+
<!-- AGENT INTEGRATION -->
|
|
595
|
+
<section class="cards-section" id="agents" style="border-top: 1px solid var(--border);">
|
|
596
|
+
<div style="max-width:1100px;margin:0 auto;padding:0 0 2rem;">
|
|
597
|
+
<p class="section-label" style="color:var(--mid);font-size:0.72rem;font-weight:800;letter-spacing:2px;text-transform:uppercase;margin-bottom:0.6rem;">Agent Integration</p>
|
|
598
|
+
<h2 style="font-family:var(--font-head);font-size:clamp(1.75rem,3vw,2.2rem);font-weight:900;letter-spacing:-0.5px;margin-bottom:0.75rem;">Works with your AI agent</h2>
|
|
599
|
+
<p style="font-size:1rem;color:var(--mid);max-width:540px;margin-bottom:2.5rem;">Install once and every supported agent gains access to all 12 Fleece commands — research, wallet analysis, MCC lookup, and award redemption.</p>
|
|
600
|
+
</div>
|
|
601
|
+
|
|
602
|
+
<div class="cards-inner" style="grid-template-columns: repeat(3, 1fr);">
|
|
603
|
+
|
|
604
|
+
<div class="card">
|
|
605
|
+
<svg class="card-icon" viewBox="0 0 60 60" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
606
|
+
<rect x="8" y="8" width="44" height="44" rx="8" stroke="black" stroke-width="2.5"/>
|
|
607
|
+
<path d="M20 30h20M20 22h12M20 38h16" stroke="black" stroke-width="2.5" stroke-linecap="round"/>
|
|
608
|
+
</svg>
|
|
609
|
+
<h3>Claude Code</h3>
|
|
610
|
+
<p>Install 12 slash commands directly into your Claude Code session. Use <code style="font-size:0.85em;background:#f0f0f0;padding:1px 4px;border-radius:3px">/fleece-wallet</code>, <code style="font-size:0.85em;background:#f0f0f0;padding:1px 4px;border-radius:3px">/fleece-mcc</code>, and more without leaving the terminal.</p>
|
|
611
|
+
<div style="font-family:'Courier New',monospace;font-size:0.8rem;background:#f7f7f5;border:1px solid var(--border);border-radius:6px;padding:0.9rem 1rem;line-height:1.8;">
|
|
612
|
+
<div><span style="color:var(--mid)">$</span> bash install.sh --claude</div>
|
|
613
|
+
<div style="color:var(--mid);font-size:0.75rem;margin-top:4px">/fleece-card /fleece-wallet /fleece-mcc</div>
|
|
614
|
+
<div style="color:var(--mid);font-size:0.75rem">/fleece-flights /fleece-hotels +7 more</div>
|
|
615
|
+
</div>
|
|
616
|
+
</div>
|
|
617
|
+
|
|
618
|
+
<div class="card">
|
|
619
|
+
<svg class="card-icon" viewBox="0 0 60 60" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
620
|
+
<circle cx="30" cy="30" r="22" stroke="black" stroke-width="2.5"/>
|
|
621
|
+
<path d="M22 30c0-4.4 3.6-8 8-8s8 3.6 8 8-3.6 8-8 8" stroke="black" stroke-width="2.5" stroke-linecap="round"/>
|
|
622
|
+
<circle cx="30" cy="30" r="3" fill="black"/>
|
|
623
|
+
</svg>
|
|
624
|
+
<h3>OpenClaw & Codex</h3>
|
|
625
|
+
<p>Install the agent skill to give OpenClaw or Codex full Fleece capability — card research, wallet gaps, MCC lookup, and redemption, all in one skill.</p>
|
|
626
|
+
<div style="font-family:'Courier New',monospace;font-size:0.8rem;background:#f7f7f5;border:1px solid var(--border);border-radius:6px;padding:0.9rem 1rem;line-height:1.8;">
|
|
627
|
+
<div><span style="color:var(--mid)">$</span> bash install.sh --agents</div>
|
|
628
|
+
<div style="color:var(--mid);font-size:0.75rem;margin-top:4px">.agents/skills/fleece/SKILL.md</div>
|
|
629
|
+
<div style="color:var(--mid);font-size:0.75rem">or: clawhub install fleece</div>
|
|
630
|
+
</div>
|
|
631
|
+
</div>
|
|
632
|
+
|
|
633
|
+
<div class="card">
|
|
634
|
+
<svg class="card-icon" viewBox="0 0 60 60" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
635
|
+
<path d="M10 20l20-10 20 10v20L30 50 10 40V20z" stroke="black" stroke-width="2.5" stroke-linejoin="round"/>
|
|
636
|
+
<path d="M30 40V20M10 20l20 10 20-10" stroke="black" stroke-width="2.5" stroke-linejoin="round"/>
|
|
637
|
+
</svg>
|
|
638
|
+
<h3>ClawHub Registry</h3>
|
|
639
|
+
<p>Fleece is published on ClawHub. Any agent that supports the ClawHub registry can install and use it with a single command — no git clone required.</p>
|
|
640
|
+
<div style="font-family:'Courier New',monospace;font-size:0.8rem;background:#f7f7f5;border:1px solid var(--border);border-radius:6px;padding:0.9rem 1rem;line-height:1.8;">
|
|
641
|
+
<div><span style="color:var(--mid)">$</span> clawhub install fleece</div>
|
|
642
|
+
<div style="color:var(--mid);font-size:0.75rem;margin-top:4px">fleece@1.3.0 · MIT-0</div>
|
|
643
|
+
<div style="color:var(--mid);font-size:0.75rem">clawhub search "credit card research"</div>
|
|
644
|
+
</div>
|
|
645
|
+
</div>
|
|
646
|
+
|
|
647
|
+
</div>
|
|
648
|
+
</section>
|
|
649
|
+
|
|
545
650
|
<!-- COMMANDS + LINKS -->
|
|
546
651
|
<section class="contact-section" id="commands">
|
|
547
652
|
<div class="contact-inner">
|
|
@@ -585,6 +690,7 @@
|
|
|
585
690
|
<div class="cmd-row"><span class="cmd-name">fleece wallet</span><span class="cmd-desc">Portfolio analysis — coverage, overlaps, gaps</span></div>
|
|
586
691
|
<div class="cmd-row"><span class="cmd-name">fleece roi</span><span class="cmd-desc">First-year ROI estimate by spend profile</span></div>
|
|
587
692
|
<div class="cmd-row"><span class="cmd-name">fleece recommend</span><span class="cmd-desc">Card recommendations for a spending profile</span></div>
|
|
693
|
+
<div class="cmd-row"><span class="cmd-name" style="color:var(--yellow)">fleece mcc</span><span class="cmd-desc">Look up a merchant category code — find your best card at checkout</span></div>
|
|
588
694
|
<div class="cmd-row"><span class="cmd-name" style="color:var(--yellow)">fleece flights</span><span class="cmd-desc">PointsYeah award flight search URL — no API key needed</span></div>
|
|
589
695
|
<div class="cmd-row"><span class="cmd-name" style="color:var(--yellow)">fleece hotels</span><span class="cmd-desc">PointsYeah award hotel search URL — no API key needed</span></div>
|
|
590
696
|
</div>
|
|
@@ -20,8 +20,9 @@ install_claude() {
|
|
|
20
20
|
cp "$f" "$dest"
|
|
21
21
|
done
|
|
22
22
|
echo "✓ Claude Code skills installed to $TARGET/"
|
|
23
|
-
echo "
|
|
24
|
-
echo "
|
|
23
|
+
echo " Research: /fleece-card /fleece-rates /fleece-partners /fleece-credits"
|
|
24
|
+
echo " /fleece-news /fleece-compare /fleece-wallet /fleece-roi /fleece-recommend"
|
|
25
|
+
echo " Redemption: /fleece-mcc /fleece-flights /fleece-hotels"
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
install_agents() {
|
|
@@ -58,4 +59,5 @@ case "${1:-auto}" in
|
|
|
58
59
|
esac
|
|
59
60
|
|
|
60
61
|
echo ""
|
|
61
|
-
echo "
|
|
62
|
+
echo "BRAVE_API_KEY is optional — mcc, flights, and hotels work without it."
|
|
63
|
+
echo "Set BRAVE_API_KEY in your environment or .env file to enable live research commands."
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "fleece-cli"
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.1"
|
|
8
8
|
description = "Credit card research and redemption CLI — live data via Brave Search, PointsYeah URL generation, designed for humans and AI agents."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "MIT" }
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|