gitwtfhub

wtf is mailquill?

kylinfish/mailquill — explained in plain English

Analysis updated 2026-05-18

26PythonAudience · generalComplexity · 3/5LicenseSetup · moderate

TL;DR

A local tool that reads your bank and credit card emails in Gmail and turns them into a private, organized spending record with an offline dashboard.

Mindmap

mindmap
  root((Mailquill))
    What it does
      Reads bank emails
      Decrypts PDF statements
      Categorizes transactions
      Builds offline dashboard
    Tech stack
      Python
      Gmail API read only
      CSV storage
      SQLite
    Use cases
      Track spending privately
      Reconcile bank statements
      Build personal budget
    Audience
      Privacy focused users
      Personal finance trackers
      Taiwan bank customers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Automatically pull bank and credit card statements out of Gmail without manual copying.

REASON 2

Build a private, offline spending dashboard broken down by bank, category, and month.

REASON 3

Reclassify old transactions instantly after editing category rules, with no need to refetch email.

REASON 4

Import a manually downloaded bank statement for a bank that cannot be auto fetched.

What's in the stack?

PythonGmail APISQLiteCSVHTML

How it stacks up

kylinfish/mailquillaevella/sky-pc-mcp-companionalicankiraz1/gemma-4-31b-mtp-vllm-server
Stars262626
LanguagePythonPythonPython
Setup difficultymoderatemoderatehard
Complexity3/53/54/5
Audiencegeneralvibe coderops devops

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Requires setting up Google OAuth credentials and a local password list before first run.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

Wtf does this do

Mailquill is a tool that turns the bank and credit card emails sitting in your Gmail inbox into an organized, private record of your spending. It is built for people in Taiwan who get their monthly statements as PDF attachments or in the body of an email, and it works entirely on your own computer. There is no cloud service involved and no AI model reading your data. The only network access it uses is a read only connection to Gmail, just to fetch the messages. The tool reads the emails you have already labeled in Gmail, figures out which bank sent each one, and unlocks any password protected PDF statements using a password list you keep locally. Each bank has its own dedicated parser that uses pattern matching, not guesswork, so results are consistent and repeatable every time you run it. Transactions are sorted into two levels of categories based on keywords you can edit yourself, for example matching a merchant name to a broad category and a more specific one underneath it. Everything the tool learns gets written to a single CSV file, which acts as the one true record of your finances. A local database and an offline HTML dashboard are both generated from that CSV and can be rebuilt at any time without reconnecting to Gmail, so changing your category rules or restyling the dashboard never requires refetching your email. The dashboard itself is a single HTML file you open in a browser, with filters by bank, category, and month, a dark theme option, and color coding for income versus spending. Six Taiwan banks are supported out of the box, including Cathay, UBOT, Taishin, E.SUN, SinoPac, and Fubon, though Fubon statements currently need to be downloaded by hand before the tool can import them. The project welcomes contributions of new bank parsers, since Taiwan's statement formats vary widely and one person cannot cover them all. Sensitive files like credentials, passwords, and your actual transaction data are excluded from the project by default so they never get committed anywhere. Mailquill requires Python 3.11 or newer and is released under the MIT license.

Yoink these prompts

Prompt 1
Help me set up Google OAuth credentials so Mailquill can read my Gmail statements.
Prompt 2
Walk me through writing a new bank parser for Mailquill using the example_bank.py template.
Prompt 3
Explain how Mailquill's categories.yaml keyword matching works so I can write my own rules.
Prompt 4
Help me troubleshoot why Mailquill failed to parse a password protected PDF statement.

Frequently asked questions

wtf is mailquill?

A local tool that reads your bank and credit card emails in Gmail and turns them into a private, organized spending record with an offline dashboard.

What language is mailquill written in?

Mainly Python. The stack also includes Python, Gmail API, SQLite.

What license does mailquill use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is mailquill to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is mailquill for?

Mainly general.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.