cneuralnetwork / kharcha
git clone https://github.com/cneuralnetwork/kharcha.git
v1.0.0 · 16d ago
Private spending ledger from bank SMS, built with Expo and optional encrypted Render backup.
—
stars, 24h
—
stars, 7 days
+196
stars, 30 days · #1,301
196
★ total
21
forks · 3 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageTypeScript
LicenseMIT
Created2026-10-03 (17d ago)
Last push15d ago
Watchers0
OwnerUser
Links
README excerpt
# Kharcha Features · Getting Started · Contributing · Pick an Issue · Report a Bug · Request a Feature **A little clearer every day.** Kharcha turns bank transaction SMS into a private spending ledger. It keeps the original message beside the parsed amount, so you can check the source, correct a name or category, and decide what belongs in your ledger. This repository contains a working Expo app and a small Render backup API. The app works without an account or backend. The API is used only when you opt into encrypted backup. **Install on Android:** Download Kharcha 1.0.0 APK (Android 7.0+, 114 MB). Open the download on your device and allow installation from your browser or file manager if prompted. Manual entry works immediately; SMS access is requested only if you enable the bank SMS reader. See the release notes and SHA-256 checksum. This build has not yet been smoke-tested on a physical device. ## What you can do | Feature | Android build | iOS build | Web preview | | --- | --- | --- | --- | | Add and edit entries, assign categories, set budgets, and view insights | Yes | Yes | Yes | | Paste a bank SMS and review the parsed entry | Yes | Yes | Yes | | Read allowlisted bank SMS from the device inbox | Yes, with `READ_SMS` permission | No platform API | No browser API | | Optional encrypted backup to Render | Yes | Yes | Not enabled | The Android reader uses a small local Expo module. It reads only messages from enabled sender IDs. Common OTP and promotion patterns are filtered; parsing is heuristic, so review entries against your bank records. The app never asks for a bank password or login. ## Run from source You need Node.js **22.13+**, npm, and Git. Clone the repository, then install the app dependencies: [code] For a quick manual-entry preview, press `w` for web or open the app in Expo Go. No Render service is needed. The web preview keeps entries in that browser's local storage; clearing site data removes them. Installed iOS and Android apps use SQLite. ### Read SMS on Android Expo Go cannot load the custom `KharchaSms` native module. From `kharcha/mobile`, use a native build: [code] That command needs an Android SDK and a connected device or emulator. For a cloud-built installable APK instead: [code] The first EAS run may ask you to connect or create an Expo project and configure Android signing. Install the resulting APK, open Kharcha, and choose **Read my bank SMS**. The permission prompt is shown before the first scan. On the **You** tab, review or edit bank sender IDs; standard two-letter SMS routing prefixes are ignored when matching. The initial scan covers the last 90 days, with a 1,500-message cap per scan; later scans check recent messages when the app becomes active. Duplicate source messages are ignored. For iOS, use manual entry or paste a bank SMS. iOS does not expose general inbox-reading access to third-party apps. ## Add optional Render backup The app is useful without Render. If you want cross-device recove