Connects your phone to your agents. Calls, Wi-Fi changes, a low battery and entering a zone become triggers for the agent, and notifications, the calendar, contacts and the camera become its tools.
The phone tells the agent what is happening to it and does what the agent asks.
An incoming call and a missed one. Android does not give the caller's number to third-party apps, so the event does not carry it. A missed call comes with how long it rang.
Fires when the system reports a low battery. The event carries the current percentage.
Joining a network and leaving it. The event carries the network name and signal strength.
The phone was shaken. The simplest button there is, and it is always at hand.
The phone entered a zone or left it. The agent sets the zones itself.
The connector runs in the background, there is no need to keep it open. Only the triggers you enable reach the agent.
An ordinary system notification with a title and text. It does not wait for an answer.
A notification with a question and up to three answer buttons. You can also reply with text right from the shade. The agent waits up to five minutes.
The phone reads text aloud with the system speech engine.
Searches the address book by name, number or email. Dumping the whole book is not possible.
Finds events in a time range and creates new ones. Recurring events are expanded into separate occurrences.
The agent asks for a photo and you confirm it in a notification. The camera does not turn on without your tap, that is an Android restriction.
Add a zone with a centre and a radius, remove it or list them. Entering and leaving a zone reach the agent as triggers.
A call reaches the phone over WebSocket, the result goes back to the agent. The agent does not see a tool you have switched off.
The phone, the platform and the agent
You create an app in the dashboard and paste its key into the connector. The connector tells the platform which triggers and tools are enabled on it.
A missed call, entering a zone, a shake. The connector sends the event to the platform over HTTPS.
The platform passes it to the agents that have access to this phone.
The call reaches the phone over WebSocket. The connector runs it and sends the result back to the agent.
Three tabs. The interface is in English only for now.
Which events the phone sends to the agent.
What the agent is allowed to do on the phone.
The connection to the platform.
Event and call format, requirements and permissions
This is how the connector sends an event to the platform:
{
"id": "evt-001",
"type": "DEVICE_EVENT",
"name": "wifi_connected",
"source": "android-app",
"deviceId": "device-abc123",
"occurredAt": "2026-07-23T12:00:00Z",
"data": {
"ssid": "Office-5G",
"bssid": "00:11:22:33:44:55",
"signalStrength": -45
}
}This is how a tool call reaches the phone:
{
"type": "toolCall",
"payload": {
"id": "019f6c63-67f5-7fe8-be0f-031b9b4645ae",
"connectorCode": "app",
"connectionId": "01951234-abcd-ef01-2345-6789abcdef02",
"name": "tts_speak",
"input": { "text": "Time to leave in 10 minutes" },
"agentSessionId": "0193b8e3-ad77-7c31-a4f0-8e7c9d2f1a77"
}
}| Android | 7.0 or later (API 24) |
| Connection | Wi-Fi or mobile data |
| Background work | Foreground Service |
| Platform link | HTTPS + WebSocket (Centrifugo) |
Five steps from download to the first event
Android asks for it by itself the first time you open the APK. The permission goes to the app you downloaded the file with, usually the browser.
Open the downloaded file and confirm the installation.
In the dashboard, under Apps, create an app and copy its key. In the connector, paste it into Device Key on the Settings tab and link the device.
Tick what the agent needs and grant the permissions Android asks for.
Free and open source. The APK is in GitHub Releases.