Daily or weekly SMB cash flow briefing with Stripe Capital integration. Detects gaps, evaluates Capital offers, generates an acceptance link, and re-projects the 30-day balance post-funding. Asks for fixed expenses in plain English on first run and remembers them.
Resources
4Install
npx skillscat add arjunbagga-xyz/hermesskill-cashflow-advisor-nousresearch-stripe Install via the SkillsCat registry.
Cash Flow Advisor v0.3
You are running the Cash Flow Advisor skill. Follow these steps in order.
Do not skip steps. Do not proceed to the next step until the current one is
complete.
Step 0 — Check expenses are configured
Run:
python cashflow_advisor.py --analyze-only --demoCheck the expenses_configured field in the JSON output.
If expenses_configured is false AND this is not demo mode:
Ask the user exactly this:
Before I can give you a complete picture, I need to know your fixed
expenses — things like payroll, rent, and recurring bills that don't
go through Stripe. Describe them in plain English and I'll save them.Example: "Payroll is $28k twice a month on the 1st and 15th, rent
$4,500 on the 7th, AWS about $3,200 monthly."
Wait for their response. Then run:
python cashflow_advisor.py --save-expenses "[their response verbatim]"The script will parse the text using Nemotron, write the expenses toconfig.yaml, and confirm what was saved. Show the user the confirmation.
After saving, continue to Step 1.
If expenses_configured is true: skip to Step 1 immediately.
Step 1 — Fetch Stripe data
If STRIPE_SECRET_KEY is set, use Stripe MCP tools:
stripe_retrieve_balance
stripe_list_payouts { status: "pending", limit: 20 }
stripe_list_invoices { status: "open", limit: 50 }
stripe_list_subscriptions { status: "all", limit: 100 }
stripe_list_charges { created: { gte: 30_days_ago }, limit: 100 }Also fetch Capital data (direct API if MCP doesn't expose it):
GET /v1/capital/financing_offers → available offers
GET /v1/capital/financing_summary → active loan repayment statusPass the collected JSON to the analysis engine:
python cashflow_advisor.py --input '[json string]'If STRIPE_SECRET_KEY is not set, run in demo mode:
python cashflow_advisor.py --demoStep 2 — Run analysis and render output
The script prints markdown directly to stdout. Capture it and display it
in the chat pane. Hermes renders it as formatted text automatically.
If the script prints NO_EXPENSES_CONFIGURED, return to Step 0.
If the script emits a line ending in [[as_document]], route that file
path to the preview pane as a document.
Step 3 — Generate briefing
Using the markdown output from Step 2 as context, generate a sharp CFO-style
briefing. Use your own judgment and Nemotron's reasoning capabilities.
Structure:
- Status line (🟢 / 🟡 / 🔴) with one sentence summary
- Position — specific numbers, most urgent fact first
- Capital decision — if an offer is available, be decisive: state the
advance amount, flat fee, whether it covers the gap, and give one clear
instruction. Compare the fee to the cost of missing payroll. - Actions — numbered 1–3 in urgency order. If Capital is recommended,
action 1 is the acceptance link from the markdown output. - Outlook — one sentence on what the 30-day position looks like if
action 1 is taken today.
Do not repeat the tables already shown. The briefing goes after the
structured markdown, not instead of it.
Step 4 — Handle follow-up
Common follow-ups and how to handle them:
"Add/update my expenses"
Ask the user to describe the change, then run:
python cashflow_advisor.py --save-expenses "[new description]""What if I take the Capital offer?"
The capital projection is already in the markdown output (capital_projection
in the JSON). Summarise how the 30-day balance changes with Capital accepted.
"Show me the chart"
The chart was already sent to the preview pane. If the user missed it,
re-emit the chart path with [[as_document]].
"Run the analysis again"
Restart from Step 1.
Scheduling
Register daily at 8am:
hermes schedule add "0 8 * * *" "run cashflow-advisor skill"Weekly (Monday mornings):
hermes schedule add "0 8 * * 1" "run cashflow-advisor skill"Capital API: what is and isn't automated
| Step | Automated? | How |
|---|---|---|
| Detect gap | ✅ Yes | 30-day projection |
| Fetch Capital offer | ✅ Yes | Stripe API |
| Evaluate offer vs gap | ✅ Yes | Python + Nemotron |
| Generate acceptance link | ✅ Yes | stripe.AccountLink.create() (Connect) or dashboard URL |
| Accept the offer | ❌ One click | User action — intentional |
| Confirm funds landed | ✅ Yes | capital.financing_offer.paid_out webhook |
The human in the loop on acceptance is intentional. Agents should not
autonomously take out loans. Everything else is handled.
Files
| File | Purpose |
|---|---|
cashflow_advisor.py |
Analysis engine, expense parser, Capital logic, chart, markdown output |
SKILL.md |
This file — Hermes execution instructions |
config.yaml |
User config — expenses (auto-populated), schedule, thresholds |