ποΈ Introducing "Ramble": a new way to track expenses via natural language
-
Give it a phrase like:
I've spent 5 euros for coffee this morning, then had a sandwich for 11 euros and paid for fuel at OMV yesterday which was 60 -
Pass that phrase to a LLM of your choice(be it self-hosted or proprietary) and get individual transaction, with amounts, dates, accounts, categories and tags matched against your Firefly data. Review them, tweak anything, then create them all in one go. Nothing is saved until you say so.
Highlights:
- Speak or type β dictate in-app with the microphone button, or type free-form text.
- Many transactions from one ramble β relative dates ("yesterday"), your timezone, your language
- Save now, process later β POST rambles to the API from anywhere (example Siri Shortcuts!); review them all inside the app when you have the time
- Supports sending both "plain text" and "audio". Audio gets transcribed on the backend via a background job (if you setup the transcription env variables)
- Bring your own AI β any OpenAI-compatible endpoint works, including self-hosted Ollama / LiteLLM / llama.cpp, so your data can stay on your network
- Added
docs/siri-shortcutsfor faster iOS usage.
Showcase:
1. Configure the iPhone "Action Button" to start the docs/siri-shortcuts/pico-text-template-signed.shortcut shortcut |
Process all the gathered Rambles |
|
|
Ramble is opt-in and configured via environment variables on the Pico container. All new keys are optional β if you set none of them, nothing changes and the Ramble button stays hidden.
Optional: AI assistant "Ramble" (any OpenAI compatible API)
- ASSISTANT_LLM_ENDPOINT=https://api.openai.com/v1/chat/completions # default
- ASSISTANT_LLM_MODEL=gpt-4o-mini # default
- ASSISTANT_LLM_API_KEY=your-api-key
- ASSISTANT_LLM_CONTEXT= # extra standing instructions for the LLM
Optional: voice transcription for audio rambles
- ASSISTANT_TRANSCRIPTION_ENDPOINT=https://api.openai.com/v1/audio/transcriptions # default
- ASSISTANT_TRANSCRIPTION_MODEL=gpt-4o-mini-transcribe # default
- ASSISTANT_TRANSCRIPTION_API_KEY=your-api-key
π Full documentation: Ramble on the docs site.
Other changes
- Several desktop improvements by @cioraneanu in #291, #308
- Net amount for tag category cards by @cioraneanu in #298
- Add option to hide floating mobile profile button by @37-b-j in #295
- Several reccuring-transactions fixes by @cioraneanu in #303
- Add functionality to compute total amount for a tag and persist it in DB for later reference via
- Add button to compute total amount of filtered transactions @cioraneanu in #306
- Tweaks search UI of all lists by @cioraneanu in #307
- Tweak resource badges by @cioraneanu in #309
- add-config-for-all-types-of-transaction-dates by @cioraneanu in #310
- feat(i18n): add Korean (ko) language translation by @moduvoice in #301
New Contributors
- @37-b-j made their first contribution in #295
- @moduvoice made their first contribution in #301

