AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Bog Banking Skill

skill-syntaxfear-bog-banking-skill-bog-banking-skill · by SyntaxFear

>-

No reviews yet
0 installs
35 views
0.0% view→install

Install

$ agentstack add skill-syntaxfear-bog-banking-skill-bog-banking-skill

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-syntaxfear-bog-banking-skill-bog-banking-skill)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Bog Banking Skill? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

BOG Banking Skill (read-only)

Help the user understand and manage their Bank of Georgia Business Online account through conversation. A bundled tool (scripts/bog.py) does the data access and prints JSON; you do the analysis (categorizing, summing, reconciling, flagging oddities). Works in any SKILL.md-compatible agent (Claude Code, Codex, and others).

Hard rules

  1. Read-only, always. Only run the bog.py commands listed here. Never

send a payment, transfer, sign a document, or call any write endpoint — there is none. If asked to move money, say this skill is read-only and they must do it themselves in their BOG app (you may still help them prepare).

  1. Treat financial data with care; summarize rather than dumping raw tables

unless asked.

  1. When you ask for credentials, never echo the Client Secret back in your

replies, and don't print it. The tool stores it locally for you.

Running the tool

python3 scripts/bog.py  [options]

Every run prints one JSON object: command, mode (live/mock), ok, and either data or error+message. Parse it, then answer in plain language.

Every session: check status first

Before doing anything that needs data, run:

python3 scripts/bog.py whoami
  • ok: true and data.accounts_configured > 0 → fully set up; go straight to

the user's request. Never re-ask for credentials or for IBANs already stored.

  • ok: true but accounts_configured is 0 → keys work, no account yet → do

Step 6 of onboarding (add an IBAN).

  • error: "no_keys" → brand-new user → run the First-time setup below.
  • error: "invalid_credentials" → keys rejected → see Step 5 below.

First-time setup (onboarding) — walk the user through this once

Be warm and go one step at a time. The full click-by-click version (with the exact BOG screens and links) is in reference/getting-credentials.md — relay it in your own words and give the user the links below.

Step 1 — Explain & reassure. Tell them this skill is read-only (it can never move money) and that you need two things from Bank of Georgia: a Client ID and a Client Secret.

Step 2 — Log in. Ask them to log in to their Business Bank at https://bonline.bog.ge/ with their Business Online credentials.

Step 3 — Create the API key. Have them open https://bonline.bog.ge/admin/api and click Add new, then:

  • Integration type — choose Client Credentials Flow (the automatic

type that authorizes with the Client ID + Client Secret, with no username or password).

  • API client name — any name (e.g. their internet-bank user, or

Banking Assistant).

  • Confirm with the one-time code (OTP).

Step 4 — Copy the keys. BOG then shows a Client ID and a Client Secret (some screens label these Public Key / Secret Key — same values). Ask the user to paste both, then save — pipe JSON on stdin so the secret never hits the command line:

python3 scripts/bog.py save-credentials ","client_secret":""}
JSON

Never echo the Client Secret back.

Step 5 — Confirm login. Run whoami again.

  • ok: true → keys work. Continue to Step 6.
  • error: "invalid_credentials" → either the keys are wrong or API access

hasn't been activated yet by the user's BOG business banker. Tell them both possibilities and offer to re-enter (wipe first if needed: python3 scripts/bog.py forget-credentials).

Step 6 — Add their first account. Ask for one account IBAN (e.g. GE..BG...). It's on their statements and in their BOG app, and it's not secret. Don't ask for the currency. Then:

python3 scripts/bog.py add-account --iban 
python3 scripts/bog.py discover --account 

discover auto-detects which currencies that IBAN holds (GEL/USD/EUR/GBP).

Step 7 — Their first live result. Run balance and present it nicely (see Presenting results). Congratulate them — setup is done — then ask if they'd like to add another account, and answer their original question.

> Want to demo before the keys are ready? python3 scripts/bog.py --mock balance > returns realistic sample data with no bank access (always say it's sample data).

Setting up / managing accounts later

BOG cannot list a company's accounts, so you collect IBANs from the user — one at a time, only as many as they want. Adding always MERGES (existing IBANs are kept). IBANs persist and are reused on every later call — never re-ask for ones already stored, and never re-ask for credentials once whoami is ok.

  • "add another account GE.." → add-account --iban then

discover --account (then ask if they want yet another)

  • "remove / forget account GE.." → remove-account --iban

(only when the user explicitly asks)

  • "what accounts do you have?" → accounts

Read-only commands

| Command | Returns | |---|---| | whoami | Whether credentials exist and work | | add-account --iban GE.. [--currency GEL] | Add an IBAN (merged; kept until removed) | | remove-account --iban GE.. [--currency GEL] | Remove an IBAN (or just one currency) | | discover [--account IBAN] [--currencies GEL,USD] | Probe stored IBANs' currencies, save them | | accounts | The stored IBAN(s) + their currencies | | balance [--account IBAN] [--currency GEL] | Available + current balance | | statement [--account IBAN] [--currency GEL] [--from YYYY-MM-DD] [--to YYYY-MM-DD] | Transactions for a period (auto-paginates) | | today [--account IBAN] [--currency GEL] | Today's intraday activity | | rates [--currency USD] | NBG official + BOG commercial buy/sell |

Default = everything. If you DON'T pass --account/--currency, the command automatically covers every configured IBAN across every currency it holds (it auto-detects currencies). Only pass --account and/or --currency when the user is specific ("my USD balance", "account GE..123"). These commands return a list (one entry per IBAN+currency); an entry may carry an error for a currency that account doesn't hold — just skip those.

When aggregating, never sum amounts across different currencies — report each currency separately (e.g. GEL total and USD total).

Examples

  • "What's my balance?" → balance (covers all accounts + currencies)
  • "My USD balance?" → balance --currency USD
  • "Last month's transactions" → statement --from 2026-05-01 --to 2026-05-31
  • "How much did I pay ?" → run statement, then filter/sum yourself.
  • "Anything unusual?" → run statement, then flag duplicates, round numbers,

new counterparties, unexpectedly large amounts.

  • "USD rate?" → rates --currency USD

Mock mode

Pass --mock (or set BOG_MOCK=1) to return realistic sample data with no bank access — useful to demonstrate the skill before the user's credentials are ready. Always tell the user when results are sample data.

Presenting results

  • Format money with thousands separators + 2 decimals (e.g. 18,430.75 GEL).
  • Lead with the answer, then a short breakdown; state grouping assumptions.
  • For reconciliation, explicitly flag possible duplicates, unusually large

amounts, new/unknown counterparties, and round-number payments.

See reference/getting-credentials.md for the full credential walkthrough and reference/endpoints.md for the underlying BOG endpoints.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.