Converts credit card statement images to YNAB-compatible CSV format using AI-powered extraction.
- AI-powered transaction extraction from statement images
- Multi-provider support: Google AI Studio, OpenRouter, z.ai, LM Studio
- Model Testing Lab to compare AI performance
- Smart date parsing for various formats
- Batch processing of multiple statements
- Custom instructions for bank-specific formats
- Editable results before export
- Clone and install:
git clone https://github.com/yjsoon/ynab-llm-formatter.git
cd ynab-formatter
npm install- Configure API key (Google AI Studio recommended):
cp .env.example .env.local
# Edit .env.local with your API key- Start the server:
npm run devLLM_PROVIDER=googleaistudio
GOOGLEAISTUDIO_API_KEY=your_api_key_here
GOOGLEAISTUDIO_MODEL=gemini-2.5-flash-liteGet API key from Google AI Studio.
LLM_PROVIDER=openrouter
OPENROUTER_API_KEY=your_api_key_here
OPENROUTER_MODEL=google/gemini-2.5-flash-liteSign up at openrouter.ai for API access.
LLM_PROVIDER=z.ai
Z_AI_API_KEY=your_api_key_hereLLM_PROVIDER=lm-studio
LM_STUDIO_URL=http://localhost:1234/v1
LM_STUDIO_MODEL=qwen2.5-vl-7b-instructDownload LM Studio and load a vision-capable model.
- Select AI model from dropdown
- Upload statement images (PNG, JPG, WebP)
- Add custom instructions if needed
- Process and review extracted transactions
- Download CSV for YNAB import
- "Dates are in DD/MM/YYYY format"
- "Ignore transactions marked as REVERSAL"
- "Foreign currency amounts shown as (USD 50.00)"
- "Statement is from DBS Bank Singapore"
Visit /test to compare AI models:
- Test extraction accuracy across providers
- Compare processing speeds and costs
- Find the best model for your statement format
npm run dev # Development server
npm run build # Production build
npm run start # Production server
npm run lint # ESLintMIT