SMS capture
Inbound messages arrive in bounded batches, deduplicated per device so a retry never creates a second copy — or a second forward.
Android gateway · SMS · Notifications · Calls
A native Android agent captures SMS, app notifications and call events, hands them to an encrypted API, and forwarding rules deliver them to Telegram or your own signed webhook — with retries, health alerts and a full audit trail.
No card required. Pair one device and write your first rule in minutes.
Nothing is dropped when the network is: the outbox drains with backoff.
01The problem
The person holding the handset becomes a bottleneck for every sign-in, every verification, every deploy that needs a code.
Bank notifications, delivery updates and app alerts sit in a notification tray on a phone in a drawer instead of reaching the channel your team actually reads.
Screenshots in a group chat have no history, no filtering, no retries and no record of who saw what.
02How it works
Generate a one-time pairing code in the dashboard, enter it in the Android app, and the handset receives its own credential. The code expires in ten minutes and can be used once.
A foreground service watches inbound SMS, app notifications and the call log. Everything is written to a durable on-device outbox first, then drained to the API with backoff — a dead network delays delivery, it does not lose it.
Match on sender, body text, exclusions or one-time codes only. Scope a rule to a single device, order rules by priority, then send a test message through the target before you rely on it.
Every device reports battery, connectivity and heartbeat. Pairings, forwards, failures and token rotations all land in an activity log you can filter by type, device and date.
03Features
Built as one product: Android agent, API, worker and dashboard.
Inbound messages arrive in bounded batches, deduplicated per device so a retry never creates a second copy — or a second forward.
Priority-ordered rules matching on sender, body, exclusions or OTP-only, optionally scoped to one device, each with a one-click test send.
A notification listener captures alerts from any app, with the same encryption, deduplication and routing as SMS.
Incoming, outgoing and missed calls with number, contact label and duration. Metadata only — call logs are never forwarded.
Route matched messages straight into a Telegram chat or channel — the fastest way to get a code in front of a team.
HTTPS endpoints receive platform events signed with a per-endpoint HMAC-SHA256 secret, subscribe to the event types they want, and keep a rotatable secret.
Battery-low fires once rather than on every heartbeat, and a scheduled sweep marks silent devices offline — both as events you can forward.
Every outbound attempt records its status code, attempt count and error, so a broken endpoint names itself instead of failing quietly.
Run many handsets under one account, group work into organizations with member roles, and rotate or revoke a device credential on its own.
Volume and failure trends over time, plus automation runs — so you find out that forwarding stopped before your users do.
Staff get a separate, deliberately different back-office for support work. It reads metadata only, and every action it takes is written to an append-only audit log.
The whole stack ships as Docker images with a Compose file, nginx, Prometheus, Alertmanager and Grafana — or one file for a Dokploy rollout.
04Security
Message content is the most sensitive thing this product touches, so the architecture assumes it.
SMS and notification bodies are encrypted with AES-256-GCM before they are stored. Plaintext is never written to a log.
A code is detected so a rule can match on it, then discarded. It exists in memory long enough to route, and nowhere else.
The operator console shows senders, statuses and timings, and masks call numbers. The decryption key is never applied on that path — support tooling cannot see content, by construction.
Only a domain-separated HMAC-SHA-256 of each device secret is kept. Rotating a token invalidates the old one immediately.
Fifteen-minute access tokens, a rotating refresh token in an httpOnly SameSite=Strict cookie, and replaying a used token revokes its whole family.
Webhook URLs must be public HTTPS — private and internal addresses are rejected — and every delivery carries an HMAC signature you can verify.
05Why teams use it
The on-device outbox plus queue retries mean a message captured offline still arrives — late, not never.
Battery, connectivity, last heartbeat and message history for the whole fleet, instead of walking over to a phone.
Signed webhooks and a documented REST API put these events into your own systems; Telegram covers the cases that just need a human to see a code.
Run it on your own infrastructure with the published Compose stack, and no message ever leaves hardware you control.
06Pricing
Plans are metered on the things that cost capacity: paired devices, forwarding rules and webhook endpoints.
One handset, to prove it works
Free
A small fleet and real routing
$9/ month
Departments, tenants and volume
$29/ month
Indicative pricing. Amounts are confirmed when a payment is verified, and a self-hosted deployment can run in open mode with no payment step at all.
Pick whichever route suits you — activation is the same either way.
Pay, upload the receipt from the Plan & Usage page, and an administrator verifies it. Your plan and activation update automatically on approval.
A deployment can switch to Stripe, where subscription lifecycle events update the plan directly through verified webhooks.
Self-hosting for yourself? Run with billing disabled and every account is fully active from registration.
07Questions
It works on a phone you already use, but a spare handset on a charger is the usual setup: it stays online, its notifications are only the ones you care about, and nobody picks it up mid-capture.
SMS access for messages, notification-listener access for app alerts, phone state and call log for call events, and permission to run a foreground service so Android does not stop it. Grant only the ones you intend to use.
No. Bodies are encrypted before storage and the staff console never applies the decryption key — it shows senders, statuses and timings only. Decrypted content is returned to the account that owns it and to nobody else.
Captures go to a durable on-device outbox first. When connectivity returns the agent drains it with backoff, and duplicate submissions collapse into one stored message and one forward.
Yes — a rule's Telegram target accepts a numeric chat id or an @channel username, and a test send confirms delivery before you depend on it.
Yes. The repository ships Docker images and a Compose stack with nginx, Prometheus, Alertmanager and Grafana, plus a single-file variant for Dokploy.
Submit a payment proof from the Plan & Usage page. Once an administrator approves it, your plan, its limits and its expiry update without any further step.
The free plan is enough to see the whole path end to end — capture, rule, delivery, audit.