V24039/SMS-AI-Relay

Text an AI over SMS with no mobile data. A standalone Android app that answers texts using your own API key. No server, no backend. Supports Claude, Gemini, OpenAI, Groq and more.

Kotlin

0

26 commits

updated Oct 3, 2026

See the code

See what people are saying

SourceMessageScoreDate

SMS AI relay app. An open source Android app that ans ur texts using AI (r/ClaudeAI)

I have been working on a side project using claude(currently fully vibe coded but tested) and I am looking for help. What is the app for: Sometimes you are in place where there mobile signal but not data like mountains, low or no internet areas. As the signal is there the SMS stil works but…

0

Oct 4, 2026

README

SMS AI Relay

Ask an AI questions by plain SMS, from any phone, with no mobile data. A spare Android phone at home receives your text, asks the AI provider you chose using your own API key, and texts the answer back.

[!IMPORTANT] This project was entirely generated by AI, from the code to the test cases. The only part done by a human was testing the app on real phones. The maintainer is not an Android developer and can't fully review the code. Please read it before trusting it with your SMS and API keys, and see Contributing if you can help.

Your phone (SMS only, no data)
   → ordinary SMS →
Relay phone (this app, on Wi-Fi or data)
   → Claude / Gemini / OpenAI / Groq / … with your own key
   → reply sent back by SMS

When it's useful

  • Off-grid via satellite texting. Newer phones and some carriers can send ordinary SMS over satellite. Text the relay from a trail or a boat and get an answer.
  • Roaming without a data plan, where SMS is cheap or included.
  • Weak rural signal where texts get through but data doesn't.
  • Basic feature phones: set it up so a relative without a smartphone can ask questions by text.
  • Internet shutdowns, if the relay phone is somewhere that still has internet.

What you need

  • A second Android phone (Android 8.0 or newer) with its own SIM, kept charged and connected to the internet. It stays at home as the relay.
  • An API key from Anthropic (Claude), Google AI Studio (Gemini and Gemma) or OpenAI, which bill you for usage, or from a provider with a free tier: Groq, Cerebras, Mistral or OpenRouter (its free models). Free tiers have rate limits that change over time; check the provider's page.
  • An SMS plan on the relay SIM. Every reply is sent from it, and a long answer is split into several texts. Some prepaid plans limit SMS per day (often around 100 in India), and carriers may flag heavy automated texting.

Features

  • Eight providers: Claude, Gemini, Gemma, OpenAI, Groq, Cerebras, Mistral and OpenRouter (its free router picks a currently free model for each request). Switch any time in Settings, with an optional model override.
  • Custom system prompt (optional): change how the AI answers in Settings. Leave it empty for the default, which keeps answers short but writes longer ones (an essay, a story) in full when asked. Long replies are split into several texts automatically.
  • Conversation memory per sender, so follow-up questions work.
  • Text /new or RESET to start a fresh conversation. Conversations also reset after 45 idle minutes (configurable), and only recent history is sent to keep requests small.
  • Long replies are sent a few messages at a time, with a short pause between them. Text /stop or STOP to cancel the rest (and any question still being answered), which saves SMS if your plan has a message limit.
  • Sender allowlist: only numbers you add get a reply. Everyone else is ignored before any API call or SMS is spent. An empty list replies to nobody.
  • API keys are encrypted with a key held in the Android Keystore.
  • Runs as a foreground service with a quiet notification, and restarts after a reboot.
  • Private by design: no server, no account, no analytics. Your key, settings and history stay on the relay phone and are excluded from cloud backup. The only network traffic is the request to the AI provider you picked.

Install

Not on the Google Play Store, and it won't be. Play only allows the SMS permissions this app needs for apps that are the phone's default SMS app, and this isn't one.

  1. Download the latest APK from the Releases page.
  2. Open it on the relay phone and allow "install unknown apps" for your browser or file manager when asked.

Google has announced developer verification requirements for apps installed from outside the Play Store, rolling out from 2026. Depending on your country and Android version, installing may need extra steps. Check the current status if the install is blocked.

If Play Protect blocks the install

In India, Singapore, Thailand and Brazil, Play Protect blocks installing any app that receives SMS when the APK comes from a browser, messaging app or file manager. It shows a message like "App blocked to protect your device" with no option to continue. This is Google's enhanced fraud protection: fraud apps abuse the SMS permission to steal one-time passwords, so Google blocks the permission itself, whoever made the app. It isn't a sign that this app is harmful, and the app can't work without that permission. Read the source if you want to check what it does with your texts.

In other countries you may instead see an "unsafe app" warning; tap More details → Install anyway.

Option 1: install from a computer with ADB (recommended). Installing over USB isn't covered by the block.

  1. Install Google's Android SDK Platform-Tools on your computer (Windows, macOS or Linux), which includes adb. If you have Android Studio, you already have it.

  2. On the relay phone, turn on Developer options: Settings → About phone → tap Build number 7 times (on some phones it's under Software information).

  3. Turn on USB debugging in Settings → System → Developer options.

  4. Connect the phone by USB and tap Allow on the "Allow USB debugging?" prompt.

  5. Download the APK from Releases to your computer, open a terminal in that folder and run:

    adb devices
    

    The phone should be listed as device (if it says unauthorized, check the phone for the prompt). Then install, using the name of the file you downloaded:

    adb install sms-ai-relay-v0.7.0.apk
    
  6. You can turn USB debugging off again afterwards.

Updates downloaded in the browser are blocked the same way, so install them over USB too. -r replaces the installed version and keeps your settings and history:

adb install -r sms-ai-relay-v0.8.0.apk

If the install fails with INSTALL_FAILED_UPDATE_INCOMPATIBLE, a copy signed with a different key is installed (for example one you built yourself). Uninstall it first with adb uninstall com.smsairelay.app; this deletes its settings.

Option 2: pause Play Protect scanning (no computer needed). Less reliable, since Google may change it:

  1. Open the Play Store app → your profile picture → Play Protect → ⚙️.
  2. Turn off Scan apps with Play Protect.
  3. Install the APK.
  4. Turn scanning back on straight away; it protects the phone from real malware.

Why not just publish on the Play Store? Play only lets an app receive SMS if it's the phone's default SMS app or fits a short list of exceptions (backup, spam blocking, smartwatch companions and similar), and sending texts to an AI service isn't one of them. See Google's SMS permission policy.

Set up

  1. Open the app and tap Grant SMS Permissions.
  2. Tap Turn Off Battery Optimization and allow it. Without this, Android can cut the app's internet while the phone is idle and replies may be late or never arrive.
  3. Open Settings: pick a provider, paste your API key, add your own phone number(s) to the allowed senders, optionally set a custom system prompt, and tap Save.
  4. Text the relay's number from an allowed phone. You should get an answer within a few seconds.

Samsung, Xiaomi, OnePlus, Huawei and others add their own battery managers that can still kill the app. See dontkillmyapp.com for your phone's settings, and also allow the app to run in the background / autostart.

Limitations

  • Needs a second phone that's always on; this isn't something you run on your main phone.
  • If Android kills the app mid-request, that message is lost; text again.
  • Only the relay's owner is meant to use it: one API key, one allowlist, no per-user limits.
  • Replies are plain text and kept short, since they arrive as SMS.

Build from source

Requires JDK 17–21 (Gradle 8.7 doesn't run on JDK 22+). Android Studio works too, as long as its Gradle JDK is set to 17–21.

./gradlew assembleDebug        # APK in app/build/outputs/apk/debug/
./gradlew testDebugUnitTest    # unit tests, including Robolectric tests of the Android parts

On Windows use .\gradlew.bat, and set JAVA_HOME to a JDK 17–21 first if your default java is newer.

SMS behaviour has to be tested on a real phone with a SIM; the emulator can't send real texts. Watch Logcat for the SmsReceiver, RelayService and SmsRelay tags.

AGENTS.md describes the architecture, design decisions and code layout. RELEASING.md covers signing and publishing releases.

Contributing

Help from people who know Android is especially welcome, because nobody has reviewed this code yet. Useful contributions:

  • Code review, especially of background execution, permissions and key storage.
  • Testing on different phones and Android versions, and reporting what breaks.
  • Co-maintainers who can review pull requests.
  • More providers. OpenAI-compatible ones (Together, DeepSeek, …) only need a new OpenAiClient instance with a different base URL and a new AiProvider entry.

Please open an issue before large changes. CI runs the unit tests on every pull request, and new code needs tests: a PR fails if under 80% of the app lines it adds or changes are run by a test. The check's summary page lists the untested lines. Run ./gradlew createDebugUnitTestCoverageReport to see coverage locally.

This project deliberately has no server component. See AGENTS.md for the reasoning before proposing one.

License

GPL-3.0. You can use, modify and share it; if you distribute a modified version, it must stay open source under the same license.

V24039/SMS-AI-Relay

Text an AI over SMS with no mobile data. A standalone Android app that answers texts using your own API key. No server, no backend. Supports Claude, Gemini, OpenAI, Groq and more.

Kotlin

0

26 commits

updated Oct 3, 2026

See the code

See what people are saying

SourceMessageScoreDate

SMS AI relay app. An open source Android app that ans ur texts using AI (r/ClaudeAI)

I have been working on a side project using claude(currently fully vibe coded but tested) and I am looking for help. What is the app for: Sometimes you are in place where there mobile signal but not data like mountains, low or no internet areas. As the signal is there the SMS stil works but…

0

Oct 4, 2026

README

SMS AI Relay

Ask an AI questions by plain SMS, from any phone, with no mobile data. A spare Android phone at home receives your text, asks the AI provider you chose using your own API key, and texts the answer back.

[!IMPORTANT] This project was entirely generated by AI, from the code to the test cases. The only part done by a human was testing the app on real phones. The maintainer is not an Android developer and can't fully review the code. Please read it before trusting it with your SMS and API keys, and see Contributing if you can help.

Your phone (SMS only, no data)
   → ordinary SMS →
Relay phone (this app, on Wi-Fi or data)
   → Claude / Gemini / OpenAI / Groq / … with your own key
   → reply sent back by SMS

When it's useful

  • Off-grid via satellite texting. Newer phones and some carriers can send ordinary SMS over satellite. Text the relay from a trail or a boat and get an answer.
  • Roaming without a data plan, where SMS is cheap or included.
  • Weak rural signal where texts get through but data doesn't.
  • Basic feature phones: set it up so a relative without a smartphone can ask questions by text.
  • Internet shutdowns, if the relay phone is somewhere that still has internet.

What you need

  • A second Android phone (Android 8.0 or newer) with its own SIM, kept charged and connected to the internet. It stays at home as the relay.
  • An API key from Anthropic (Claude), Google AI Studio (Gemini and Gemma) or OpenAI, which bill you for usage, or from a provider with a free tier: Groq, Cerebras, Mistral or OpenRouter (its free models). Free tiers have rate limits that change over time; check the provider's page.
  • An SMS plan on the relay SIM. Every reply is sent from it, and a long answer is split into several texts. Some prepaid plans limit SMS per day (often around 100 in India), and carriers may flag heavy automated texting.

Features

  • Eight providers: Claude, Gemini, Gemma, OpenAI, Groq, Cerebras, Mistral and OpenRouter (its free router picks a currently free model for each request). Switch any time in Settings, with an optional model override.
  • Custom system prompt (optional): change how the AI answers in Settings. Leave it empty for the default, which keeps answers short but writes longer ones (an essay, a story) in full when asked. Long replies are split into several texts automatically.
  • Conversation memory per sender, so follow-up questions work.
  • Text /new or RESET to start a fresh conversation. Conversations also reset after 45 idle minutes (configurable), and only recent history is sent to keep requests small.
  • Long replies are sent a few messages at a time, with a short pause between them. Text /stop or STOP to cancel the rest (and any question still being answered), which saves SMS if your plan has a message limit.
  • Sender allowlist: only numbers you add get a reply. Everyone else is ignored before any API call or SMS is spent. An empty list replies to nobody.
  • API keys are encrypted with a key held in the Android Keystore.
  • Runs as a foreground service with a quiet notification, and restarts after a reboot.
  • Private by design: no server, no account, no analytics. Your key, settings and history stay on the relay phone and are excluded from cloud backup. The only network traffic is the request to the AI provider you picked.

Install

Not on the Google Play Store, and it won't be. Play only allows the SMS permissions this app needs for apps that are the phone's default SMS app, and this isn't one.

  1. Download the latest APK from the Releases page.
  2. Open it on the relay phone and allow "install unknown apps" for your browser or file manager when asked.

Google has announced developer verification requirements for apps installed from outside the Play Store, rolling out from 2026. Depending on your country and Android version, installing may need extra steps. Check the current status if the install is blocked.

If Play Protect blocks the install

In India, Singapore, Thailand and Brazil, Play Protect blocks installing any app that receives SMS when the APK comes from a browser, messaging app or file manager. It shows a message like "App blocked to protect your device" with no option to continue. This is Google's enhanced fraud protection: fraud apps abuse the SMS permission to steal one-time passwords, so Google blocks the permission itself, whoever made the app. It isn't a sign that this app is harmful, and the app can't work without that permission. Read the source if you want to check what it does with your texts.

In other countries you may instead see an "unsafe app" warning; tap More details → Install anyway.

Option 1: install from a computer with ADB (recommended). Installing over USB isn't covered by the block.

  1. Install Google's Android SDK Platform-Tools on your computer (Windows, macOS or Linux), which includes adb. If you have Android Studio, you already have it.

  2. On the relay phone, turn on Developer options: Settings → About phone → tap Build number 7 times (on some phones it's under Software information).

  3. Turn on USB debugging in Settings → System → Developer options.

  4. Connect the phone by USB and tap Allow on the "Allow USB debugging?" prompt.

  5. Download the APK from Releases to your computer, open a terminal in that folder and run:

    adb devices
    

    The phone should be listed as device (if it says unauthorized, check the phone for the prompt). Then install, using the name of the file you downloaded:

    adb install sms-ai-relay-v0.7.0.apk
    
  6. You can turn USB debugging off again afterwards.

Updates downloaded in the browser are blocked the same way, so install them over USB too. -r replaces the installed version and keeps your settings and history:

adb install -r sms-ai-relay-v0.8.0.apk

If the install fails with INSTALL_FAILED_UPDATE_INCOMPATIBLE, a copy signed with a different key is installed (for example one you built yourself). Uninstall it first with adb uninstall com.smsairelay.app; this deletes its settings.

Option 2: pause Play Protect scanning (no computer needed). Less reliable, since Google may change it:

  1. Open the Play Store app → your profile picture → Play Protect → ⚙️.
  2. Turn off Scan apps with Play Protect.
  3. Install the APK.
  4. Turn scanning back on straight away; it protects the phone from real malware.

Why not just publish on the Play Store? Play only lets an app receive SMS if it's the phone's default SMS app or fits a short list of exceptions (backup, spam blocking, smartwatch companions and similar), and sending texts to an AI service isn't one of them. See Google's SMS permission policy.

Set up

  1. Open the app and tap Grant SMS Permissions.
  2. Tap Turn Off Battery Optimization and allow it. Without this, Android can cut the app's internet while the phone is idle and replies may be late or never arrive.
  3. Open Settings: pick a provider, paste your API key, add your own phone number(s) to the allowed senders, optionally set a custom system prompt, and tap Save.
  4. Text the relay's number from an allowed phone. You should get an answer within a few seconds.

Samsung, Xiaomi, OnePlus, Huawei and others add their own battery managers that can still kill the app. See dontkillmyapp.com for your phone's settings, and also allow the app to run in the background / autostart.

Limitations

  • Needs a second phone that's always on; this isn't something you run on your main phone.
  • If Android kills the app mid-request, that message is lost; text again.
  • Only the relay's owner is meant to use it: one API key, one allowlist, no per-user limits.
  • Replies are plain text and kept short, since they arrive as SMS.

Build from source

Requires JDK 17–21 (Gradle 8.7 doesn't run on JDK 22+). Android Studio works too, as long as its Gradle JDK is set to 17–21.

./gradlew assembleDebug        # APK in app/build/outputs/apk/debug/
./gradlew testDebugUnitTest    # unit tests, including Robolectric tests of the Android parts

On Windows use .\gradlew.bat, and set JAVA_HOME to a JDK 17–21 first if your default java is newer.

SMS behaviour has to be tested on a real phone with a SIM; the emulator can't send real texts. Watch Logcat for the SmsReceiver, RelayService and SmsRelay tags.

AGENTS.md describes the architecture, design decisions and code layout. RELEASING.md covers signing and publishing releases.

Contributing

Help from people who know Android is especially welcome, because nobody has reviewed this code yet. Useful contributions:

  • Code review, especially of background execution, permissions and key storage.
  • Testing on different phones and Android versions, and reporting what breaks.
  • Co-maintainers who can review pull requests.
  • More providers. OpenAI-compatible ones (Together, DeepSeek, …) only need a new OpenAiClient instance with a different base URL and a new AiProvider entry.

Please open an issue before large changes. CI runs the unit tests on every pull request, and new code needs tests: a PR fails if under 80% of the app lines it adds or changes are run by a test. The check's summary page lists the untested lines. Run ./gradlew createDebugUnitTestCoverageReport to see coverage locally.

This project deliberately has no server component. See AGENTS.md for the reasoning before proposing one.

License

GPL-3.0. You can use, modify and share it; if you distribute a modified version, it must stay open source under the same license.

Languages

Kotlin

90.3%

HTML

9.7%