| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
An Android-first finance inbox that turns transactional SMS into clean, reviewable money records.
Pocket Pulse is a private, local-first finance companion for Android. It scans bank, UPI, card, and wallet SMS messages, extracts useful transaction details, gives every transaction a stable ID, and sends the result through a fast review workflow before it reaches your export ledger.
It is built for people who want the convenience of automated capture without handing their financial history to a remote service.
I created this app as a Kotlin learning project. This app is highly vibe-coded app and I'm using it daily. Making this public for people like me to use it.
| Area | Capability |
|---|---|
| Passive capture | Reads recent transactional SMS messages and listens for new incoming SMS events. |
| Review inbox | Keeps uncategorized transactions in a swipe-based review deck with backlog and completed states. |
| Manual capture | Lets you add cash, missed, or corrected transactions by hand. |
| Account mapping | Maintains configurable account labels for cards, UPI accounts, wallets, and banks. |
| Categorization | Stores configurable categories and remembers reviewed merchant/category choices. |
| Dashboard | Shows inflow, outflow, review count, transaction count, spend by account, and recent activity. |
| Location context | Optionally attaches the latest known Android location to imported or manual transactions. |
| Ledger bridge | Exports only user-reviewed confirmed transactions as CSV. |
SMS inbox / incoming SMS
|
v
Finance message filter
|
v
Amount, direction, merchant, account, and stable ID extraction
|
v
Local SQLite transaction store
|
+--> Home dashboard
+--> Review inbox
+--> Manual capture
+--> Reviewed CSV export
| Tab | Purpose |
|---|---|
| Home | Capture status, permission prompts, financial summary, date filters, account filters, and recent transactions. |
| Inbox | Review deck for transactions that need category/account confirmation, plus backlog and completed lists. |
| Signals | SMS sync controls, optional location capture, account options, category options, and pending prompts. |
| Bridge | CSV export for confirmed transactions that were explicitly reviewed or manually entered. |
| Capture | Manual transaction entry for anything that did not arrive through SMS. |
Pocket Pulse is intentionally local-first:
The app currently requests:
| Permission | Why it is used |
|---|---|
| READ_SMS | Sync recent bank, UPI, card, and wallet messages from the inbox. |
| RECEIVE_SMS | Capture new transactional messages as they arrive. |
| ACCESS_FINE_LOCATION | Optionally attach place context to transactions. |
Clone the repository and open it in Android Studio, or build from the command line:
./gradlew :app:assembleDebugOn Windows:
gradlew.bat :app:assembleDebugInstall the debug build on a connected device:
./gradlew :app:installDebugRun the unit tests:
./gradlew testRelease signing is configured through keystore.properties. Start from the checked-in example:
storeFile=/absolute/path/to/release.keystore
storePassword=your-store-password
keyAlias=your-key-alias
keyPassword=your-key-passwordThen build:
./gradlew :app:assembleReleaseIf keystore.properties is absent, the release build type still exists, but the release signing config is not attached.
The Bridge screen exports reviewed transactions with these columns:
| Column | Meaning |
|---|---|
| transaction_id | Stable UUID for SMS transactions or generated UUID for manual entries. |
| occurred_date | Transaction date. |
| occurred_time | Transaction time. |
| merchant | Parsed or entered merchant/source. |
| amount_in_inr | Absolute transaction amount. |
| direction | Debit or Credit. |
| account_label | User-configured account classification. |
| category | Confirmed transaction category. |
| comment | User note. |
| source | Sms or Manual. |
| location_label | Optional captured location label. |
| latitude | Optional latitude. |
| longitude | Optional longitude. |
| raw_message | Original SMS body or manual context note. |
Only transactions with Confirmed status and userReviewed = true are included in the export.
app/src/main/java/code/shubham/pocketledger/
PocketLedgerApp.kt Compose app shell and navigation
PocketLedgerViewModel.kt UI-facing state and actions
SmsCaptureReceiver.kt Incoming SMS receiver
data/ Repository, SQLite store, parsing, snapshots
feature/dashboard/ Home dashboard
feature/transactions/ Review inbox
feature/planner/ Signals and configuration
feature/export/ Reviewed CSV bridge
feature/editor/ Manual capture
ui/ Shared UI components and theme
The existing unit tests cover:
Run them before shipping parser, repository, or export changes:
./gradlew testVersion 1.0.0 is the first signed direct-distribution release. See CHANGELOG.md for release notes.
| Back | FazBrowse Home | New Git URL |