Your agent can write the code, book the flight, and file the ticket. Then a six-digit code lands on a phone in someone's pocket, and everything stops.
Virtual numbers don't fix this. The services that matter know the difference, and they reject them β bank onboarding, marketplace verification, ride-hailing, delivery, anything where a real person is supposed to be on the other end. What clears those gates is what has always cleared them: a real SIM, in a real modem, sitting in a real place, on a real carrier's network.
VoDoge makes that thing programmable.
The edge agent connects outward. No inbound ports, no VPN into the customer's network, no static IP to buy. Drop the box on any consumer broadband and it dials home.
It keeps working when the Internet doesn't. The agent owns the hardware directly and writes to a durable local outbox. Commands, receipts, and message history replay when the link returns β deduplicated, in order, nothing silently dropped.
One box, many identities. eUICC profiles are switchable in software. The same hardware can be a Hong Kong number this hour and a US number the next, without anyone flying out to swap a card.
| π₯ Messaging | Send and receive SMS through real carrier numbers. Delivery receipts, multipart reassembly, and a searchable inbox β not a webhook you have to babysit. |
| π± Devices | Every modem, its SIM profiles, signal, registration state and home network β live, in one list. |
| π Mobile egress | A SOCKS5 proxy that exits through the cellular link itself. Real mobile-carrier IP, not a datacentre range that every anti-fraud vendor has already flagged. |
| βοΈ Rules & schedules | React to an inbound message, or run something on a cadence. Automation that lives server-side and keeps running when your laptop is shut. |
| π Audit & journal | Every command, every delivery, every state change β recorded, attributable, and exportable. |
| π§ On-box panel | A local web panel served by the agent itself, for when the uplink is the thing that's broken. |
π§ In development: VoWiFi registration and voice β the goal is a number that can take a call over IP, not only over the radio it was issued on. Not live yet.
AI agents are being handed budgets, calendars, and accounts. They are extremely good at everything except the parts of the world that were built to check whether a human is standing there β and that check is, overwhelmingly, still a phone number.
An agent with a VoDoge number is an agent that can finish the job:
- Sign up and verify on services that reject VoIP numbers
- Read its own codes β the inbox is an API, not a screenshot of someone's lock screen
- Browse from a phone β mobile egress means a real handset IP, which is what mobile-first services expect
- Be somewhere specific β a number and a network in the country you actually need to be in
Everyone is racing to give agents better reasoning. Fewer people are giving them a way to prove they exist.
VoDoge is in early access β we're onboarding deployments one at a time so each one gets a real engineer's attention.
β Open an issue telling us what you're building, or reach the team through this organization.
Tell us the country and the use case; that's enough to start.
Both halves are public. Read them before you trust them β that's the point of publishing them.
| Repository | What it is | License |
|---|---|---|
| vodoge-cloud | The multi-tenant control plane. Go gateway, Next.js + Tailwind console, PWA. The authoritative home for tenant data, device commands, messaging, rules, and audit. | Apache-2.0 |
| vodoge-edge | The Rust agent that lives beside the modems. Owns hardware access, survives disconnection, serves a local panel. | Apache-2.0, with voice/ and vowifi/ under AGPL-3.0-or-later |
The edge repository is deliberately not under a single license. LICENSE carries a per-path map and the reasoning behind it: the two Go binaries link vowifi-go, which is AGPL with no linking exception, so they are AGPL too. We'd rather write that down than hope nobody checks.
Third-party attribution is in each repository's NOTICE, including the dependencies whose terms are not permissive.
Built in the open. Where a claim in this README can be checked, the repositories contain the thing that checks it.