Remember Finances

SkillDocs & knowledge

Import bank statements, receipts, and invoices into persistent memory. Extract transactions with amounts, dates, merchants, and categories.

Use Remember Finances in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add Remember Finances and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use the Remember Finances skill

Details

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Remember FinancesStart free

What this skill tells your AI

The instructions your AI receives, as published by markmhendrickson/neotoma in skills/remember-finances/SKILL.md and read by Ahel’s review.

Import financial documents — bank statements, receipts, invoices — into Neotoma memory with structured transaction extraction and full provenance.

When to use

When the user has financial documents (CSV/PDF bank statements, receipt images, invoice PDFs) and wants to persist the transactions as structured, queryable records.

Prerequisites

Run the ensure-neotoma skill first if Neotoma is not yet installed or configured in your current harness.

Supported sources

SourceFormatMethod
Bank statementsCSV, PDFFile read, parse_file for PDFs
ReceiptsImages (JPEG, PNG), PDFVision, parse_file
InvoicesPDF, email attachmentsparse_file, email MCP
PlaidLive bank dataPlaid MCP (optional)

Workflow

Phase 0: Verify Neotoma

Confirm Neotoma MCP is connected (call get_session_identity).

Phase 1: Identify financial documents

  1. Ask the user what to import:
    • Bank statement file path (CSV or PDF)
    • Receipt image(s)
    • Invoice file(s)
    • Live bank account via Plaid MCP
  2. Detect the format and choose the appropriate parsing method.

Phase 2: Parse and preview

  1. CSV statements: read columns, detect header row, identify date/amount/description fields.
  2. PDF statements: use parse_file to extract text, then parse rows.
  3. Receipt images: use vision to read merchant, date, items, total, tax.
  4. Invoices: use parse_file to extract vendor, line items, amounts, due date.
  5. Present a preview: transaction count, date range, total amounts, top merchants/vendors.
  6. Ask for confirmation.

Phase 3: Extract entities

For each document, extract:

  1. Transactions: one transaction entity per line item or statement row with amount, currency, date, description, merchant, category (when inferable).
  2. Contacts: merchants, vendors, or counterparties as contact entities.
  3. Invoices/Receipts: the document itself as a receipt or invoice entity with total, tax, line items.

Use entity_type transaction consistently within a batch. Store source-specific details as fields (provider, account_suffix, value_date, concept).

Phase 4: Store with provenance

Use the combined store path — entities array plus file_path for the original document — in a single store call. This preserves the raw financial document as a source row.

Set source_file to the filename. For each transaction, set data_source with a unique identifier (e.g. row number, transaction reference).

Phase 5: Report results

Summarize:

  • Documents processed
  • Transactions stored (count, date range, total)
  • Top merchants/vendors by frequency or amount
  • Offer to query specific transactions or merchants.

Do not

  • Process financial documents without user confirmation.
  • Mix entity_type within a batch (use transaction consistently for statement rows).
  • Skip the raw document preservation — always use the combined store path.
  • Echo full financial details in chat beyond what answering requires.

Signals

GitHub stars
32
Forks
4
Last commit
Oct 2026
Advanced
Item type
skill
Key
remember-finances
Source
github.com/markmhendrickson/neotoma