dominatos/actual-expense-logger — explained in plain English
Analysis updated 2026-05-18
Log everyday expenses into Actual Budget by chatting with a Telegram bot.
Manage expenses across multiple named budget accounts from one bot.
Restrict who can use the bot to a specific list of Telegram users.
Self host the bot with Docker alongside an existing Actual Budget server.
| dominatos/actual-expense-logger | 0labs-in/vision-link | alfons-fhl/cursor-plan2api | |
|---|---|---|---|
| Stars | 4 | 4 | 4 |
| Language | TypeScript | TypeScript | TypeScript |
| Setup difficulty | moderate | moderate | moderate |
| Complexity | 3/5 | 3/5 | 3/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires a self-hosted Actual Budget server and a Telegram bot token from BotFather, Node.js 22+ needed if not using Docker.
This project is a Telegram chat bot that lets someone quickly log an expense into Actual Budget, a self hosted personal budgeting tool, just by sending a message. A user simply types an amount like 15 or 15.50 into the chat, and the bot understands both US style numbers and European style numbers written with a comma. The bot then shows a set of clickable category buttons so the user can pick which budget category the expense belongs to, and it records the transaction into a chosen budget account. The bot supports setting up either a single default account, which requires no extra selection step, or multiple named accounts a user can choose between per transaction. It is written in TypeScript and has 66 automated tests. To protect against mistakes like double tapping a button and creating the same expense twice, it uses a guard that blocks a second submission while one is still being processed. Before saving any new transaction, it makes a backup copy of the budget data, and it keeps only the five most recent backups to avoid filling up disk space. If the bot is shut down, it makes sure to finish saving and syncing data first rather than losing anything mid operation. Running the bot requires a Telegram bot token, obtained for free from Telegram's official bot creation account, a working self hosted Actual Budget server, and a set of configuration values such as the server address, password, and sync ID, all placed in a configuration file. Access can be restricted to specific Telegram user accounts by listing their IDs, and the bot refuses all messages if that list is left empty. Sensitive values like passwords can also be supplied through Docker secrets rather than a plain configuration file, which is the recommended approach for real deployments. The project can be run either with Docker and Docker Compose, which is the suggested method and includes persistent storage for cached budget data, or run directly on a machine with Node.js version 22 or newer by installing dependencies and building the TypeScript code.
A Telegram bot that lets you quickly log expenses into a self-hosted Actual Budget instance by sending a chat message.
Mainly TypeScript. The stack also includes TypeScript, Node.js, Docker.
The README does not state a license, so terms of use are not specified.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
double-check against the repo, no cap.