rpi5/picoclaw/skills/sure/SKILL.md
Get reports and account / transaction data from the Sure personal finance board
npx skillsauth add nsimonfr/nic-os sureInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill when the user asks about their Sure personal finance board: balances, accounts, transactions, recent spending, or API connectivity.
On this host (rpi5) the Sure backend listens on http://127.0.0.1:13334
(loopback) — NOT :3000 (that's Beszel on the tailnet) and NOT :8340
(that's the for-sure / Lunchflow connector, a different service with a
different key). SURE_API_KEY is already injected into picoclaw's
environment from /run/agenix/picoclaw-env, so you do not need to set it
yourself — just use $SURE_API_KEY.
If running the skill outside picoclaw, generate a key in your Sure instance
under Settings → API key and export SURE_API_KEY=.... To target a remote
instance, override the base URL: export SURE_BASE_URL="https://sure.example.com".
Base URL default (local Sure backend on rpi5):
export SURE_BASE_URL="${SURE_BASE_URL:-http://127.0.0.1:13334}"
Reuse this in commands:
AUTH=(-H "X-Api-Key: $SURE_API_KEY" -H "Content-Type: application/json")
curl -fsS "${AUTH[@]}" "$SURE_BASE_URL/api/v1/accounts" | jq '.pagination'
If this fails:
SURE_BASE_URLhttps://...)List accounts:
curl -fsS "${AUTH[@]}" "$SURE_BASE_URL/api/v1/accounts" | jq .
Compact account summary:
curl -fsS "${AUTH[@]}" "$SURE_BASE_URL/api/v1/accounts" \
| jq -r '.accounts[] | "\(.name) | \(.balance) | \(.currency) | \(.account_type)"'
Accounts with pagination:
curl -fsS "${AUTH[@]}" "$SURE_BASE_URL/api/v1/accounts?page=1&per_page=100" | jq .
Useful account fields commonly returned:
idnamebalancecurrencyclassificationaccount_typeList recent transactions for one account:
curl -fsS "${AUTH[@]}" \
"$SURE_BASE_URL/api/v1/transactions?account_id=123&per_page=25" | jq .
Filter transactions by date:
curl -fsS "${AUTH[@]}" \
"$SURE_BASE_URL/api/v1/transactions?start_date=2026-03-01&end_date=2026-03-31&per_page=100" | jq .
Filter expenses only:
curl -fsS "${AUTH[@]}" \
"$SURE_BASE_URL/api/v1/transactions?type=expense&per_page=100" | jq .
Search transactions:
curl -fsS "${AUTH[@]}" \
"$SURE_BASE_URL/api/v1/transactions?search=carrefour&per_page=50" | jq .
Compact transaction summary:
curl -fsS "${AUTH[@]}" \
"$SURE_BASE_URL/api/v1/transactions?per_page=25" \
| jq -r '.transactions[] | "\(.date) | \(.name) | \(.amount) | \(.account.name)"'
Useful transaction filters:
account_idaccount_idscategory_idmerchant_idstart_dateend_datemin_amountmax_amounttype (income or expense)searchpageper_pageNet worth-style account snapshot:
curl -fsS "${AUTH[@]}" "$SURE_BASE_URL/api/v1/accounts?per_page=100" \
| jq '{count: (.accounts | length), accounts: [.accounts[] | {name, balance, currency, classification, account_type}]}'
Recent expenses this month:
curl -fsS "${AUTH[@]}" \
"$SURE_BASE_URL/api/v1/transactions?type=expense&start_date=$(date +%Y-%m-01)&per_page=100" \
| jq -r '.transactions[] | "\(.date) | \(.name) | \(.amount)"'
Top merchants in a date range:
curl -fsS "${AUTH[@]}" \
"$SURE_BASE_URL/api/v1/transactions?start_date=2026-03-01&end_date=2026-03-31&per_page=100" \
| jq -r '.transactions | group_by(.merchant.name // "Unknown") | map({merchant: (.[0].merchant.name // "Unknown"), count: length}) | sort_by(-.count) | .[] | "\(.merchant): \(.count)"'
/api/v1/...jq for filtering and concise summaries in agent workflows401 Unauthorized
404 Not Found
TLS / certificate issues
Empty results
per_pagetools
Send a Telegram message or photo from this machine via the bot — to Nico's DM, Alfie's DM, or the shared group. Use when asked to notify/ping/message someone on Telegram, or to post an update/result there.
databases
Query today's Immich "on this day" memories and print a summary picoclaw can relay. Use when the user asks about Immich memories, on-this-day, or a recap of past photos from today's date.
documentation
Promote items from Wiki/Inbox into curated Wiki/Pages, merging or creating as Wiki/Schema dictates
development
Audit the LLM Wiki for orphans, broken links, duplicates, and stale facts; write a report page