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.
Files changed (60) hide show
  1. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.agents/skills/fleece/SKILL.md +27 -0
  2. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-compare.md +12 -0
  3. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-rates.md +10 -0
  4. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-recommend.md +16 -0
  5. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-wallet.md +17 -0
  6. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/PKG-INFO +1 -1
  7. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/cli.py +17 -9
  8. fleece_cli-0.3.1/docs/SEO.md +113 -0
  9. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/docs/index.html +112 -6
  10. fleece_cli-0.3.1/docs/robots.txt +4 -0
  11. fleece_cli-0.3.1/docs/sitemap.xml +9 -0
  12. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/install.sh +5 -3
  13. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/pyproject.toml +1 -1
  14. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-card.md +0 -0
  15. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-credits.md +0 -0
  16. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-flights.md +0 -0
  17. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-hotels.md +0 -0
  18. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-mcc.md +0 -0
  19. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-news.md +0 -0
  20. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-partners.md +0 -0
  21. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.claude/skills/fleece-roi.md +0 -0
  22. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.devcontainer/devcontainer.json +0 -0
  23. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.github/workflows/publish-skills.yml +0 -0
  24. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.github/workflows/publish.yml +0 -0
  25. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.gitignore +0 -0
  26. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/.streamlit/config.toml +0 -0
  27. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/Advertiser Disclosure.md +0 -0
  28. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/CLAUDE.md +0 -0
  29. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/KnowledgeCatalog.json +0 -0
  30. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/LICENSE +0 -0
  31. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/MyCards.json +0 -0
  32. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/README.md +0 -0
  33. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/app.yaml +0 -0
  34. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/assets/default_card.png +0 -0
  35. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/assets/default_card.svg +0 -0
  36. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/db.py +0 -0
  37. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/docs/CNAME +0 -0
  38. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/fleece poc.ipynb +0 -0
  39. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/fleece.py +0 -0
  40. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/image_service.py +0 -0
  41. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/mcc_codes.jsonl +0 -0
  42. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/migrate.py +0 -0
  43. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/pages/credit_cards.py +0 -0
  44. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/pages/my_credit_cards.py +0 -0
  45. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/plan.md +0 -0
  46. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/pointsyeah.py +0 -0
  47. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/prompts/agent_system_prompt.py +0 -0
  48. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/reference/Analyzer.md +0 -0
  49. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/requirements-test.txt +0 -0
  50. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/requirements.txt +0 -0
  51. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/style.css +0 -0
  52. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/test_fleece.py +0 -0
  53. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/tests/__init__.py +0 -0
  54. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/tests/test_brave_client.py +0 -0
  55. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/tests/test_cli.py +0 -0
  56. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/tests/test_pointsyeah.py +0 -0
  57. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/tests/test_tools.py +0 -0
  58. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/tools/__init__.py +0 -0
  59. {fleece_cli-0.3.0 → fleece_cli-0.3.1}/tools/brave_client.py +0 -0
  60. {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.0
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 configuration error (missing API key)
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="Fleece credit card research CLI — live data via Brave Search.",
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, or exit with code 2."""
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
- key = api_key or os.getenv("BRAVE_API_KEY", "")
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 not set. Pass --api-key or add it to .env.",
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
- <title>Fleece — Find the best card for deal saviors</title>
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>Find the best card for <span>deal saviors</span></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>Set <code style="color:rgba(255,255,255,0.5);font-size:0.85em">BRAVE_API_KEY</code> in your environment and run <code style="color:rgba(255,255,255,0.5);font-size:0.85em">fleece --help</code> to get started. Requires Python 3.11+.</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 no API key needed. Pure URL generation, open directly in your browser or pipe into an agent workflow.</p>
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 an 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>
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 &nbsp;/fleece-wallet &nbsp;/fleece-mcc</div>
614
+ <div style="color:var(--mid);font-size:0.75rem">/fleece-flights &nbsp;/fleece-hotels &nbsp;+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 &amp; 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 &nbsp;·&nbsp; 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>
@@ -0,0 +1,4 @@
1
+ User-agent: *
2
+ Allow: /
3
+
4
+ Sitemap: https://getfleece.io/sitemap.xml
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3
+ <url>
4
+ <loc>https://getfleece.io/</loc>
5
+ <lastmod>2026-05-18</lastmod>
6
+ <changefreq>weekly</changefreq>
7
+ <priority>1.0</priority>
8
+ </url>
9
+ </urlset>
@@ -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 " Slash commands: /fleece-card /fleece-rates /fleece-partners /fleece-credits"
24
- echo " /fleece-news /fleece-compare /fleece-wallet /fleece-roi /fleece-recommend"
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 "Set BRAVE_API_KEY in your environment or .env file to enable live research."
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.0"
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