Skip to content

Local-first semantic automation engine for Android — turns notifications and SMS into structured actions, all on-device

Notifications You must be signed in to change notification settings

betaCode95/android-automator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Android Automator

A local-first semantic automation engine for Android — turning raw notifications and SMS messages into structured, meaningful actions without sacrificing privacy.

Features (MVP)

  • Notification Capture — Listens to all incoming notifications via NotificationListenerService
  • SMS Capture — Reads incoming SMS messages via BroadcastReceiver
  • Rule Engine — Create custom automation rules with conditions (text match, regex, sender, amount detection, time windows) and actions
  • Expense Automation — Auto-extract amount, currency, merchant, and category from bank/payment notifications
  • Local Storage — All data stored on-device using SQLite (via sqflite)
  • Event Log — Full audit trail of every captured notification and SMS
  • Rule Preview — Test rules against sample text before enabling

Architecture

┌─────────────────────────────────────────┐
│              Flutter UI                  │
│  (Home, Rules, Expenses, Events, Settings) │
├─────────────────────────────────────────┤
│           Provider State                 │
│  (Rules, Events, Expenses, Dashboard)    │
├─────────────────────────────────────────┤
│        Services Layer                    │
│  (RuleEngine, ExpenseParser, PlatformChannel) │
├─────────────────────────────────────────┤
│        SQLite Database                   │
│  (rules, conditions, actions, events, expenses) │
├──────────────────┬──────────────────────┤
│  Platform Channel │   EventChannel       │
├──────────────────┴──────────────────────┤
│         Native Android                   │
│  (NotificationListenerService,           │
│   SmsReceiver, MainActivity)             │
└─────────────────────────────────────────┘

Project Structure

lib/
├── main.dart                    # Entry point with provider setup
├── app.dart                     # App widget, theming, routing
├── models/
│   ├── automator_event.dart     # Unified event model
│   ├── rule.dart                # Rule, Condition, Action models
│   └── expense.dart             # Expense model + categories
├── database/
│   └── database_helper.dart     # SQLite database with all CRUD
├── services/
│   ├── rule_engine.dart         # Core rule evaluation engine
│   ├── expense_parser.dart      # Amount/merchant/category extraction
│   └── platform_channel_service.dart  # Flutter <-> Android bridge
├── providers/
│   ├── rules_provider.dart
│   ├── events_provider.dart
│   ├── expenses_provider.dart
│   └── dashboard_provider.dart
└── screens/
    ├── onboarding/              # Progressive permission onboarding
    ├── home/                    # Dashboard with stats
    ├── rules/                   # Rule list + create rule
    ├── expenses/                # Expense ledger
    ├── events/                  # Event log / audit trail
    └── settings/                # Permissions & app info

android/.../kotlin/.../
├── MainActivity.kt              # Platform channels
├── AutomatorNotificationService.kt  # Notification listener
└── SmsReceiver.kt               # SMS broadcast receiver

Getting Started

# Install dependencies
flutter pub get

# Run on connected Android device
flutter run

# Run tests
flutter test

Permissions

The app requires:

  1. Notification Access — Enabled via system settings (NotificationListenerService)
  2. SMS Read Access — Requested at runtime (RECEIVE_SMS + READ_SMS)

Both permissions are requested progressively during onboarding with clear rationale.

Privacy

  • All processing happens on-device
  • No cloud sync, no background uploads
  • No analytics or tracking
  • Full audit log of every automation

About

Local-first semantic automation engine for Android — turns notifications and SMS into structured actions, all on-device

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •