Frequently Asked Questions

Everything you need to know about TextPilot AI Messaging

General

Yes — TextPilot AI Messaging is 100% free and open source (GPLv3). You can download it from Google Play or directly as an APK from GitHub with no cost.

The optional Messenger+ in-app purchase unlocks advanced features (scheduled messages, backup, advanced blocking, etc.), but all core SMS and MMS features are completely free and always will be.

TextPilot is a fork of QKSMS with significant new features added on top:

  • AI Smart Reply — on-device AI via your own Ollama server
  • Web SMS Sync — self-hosted web interface to access messages from any browser
  • Auto-Reply — fully automatic AI replies when you're busy
  • Enhanced permission handling for Android 13/14+
  • Edge-to-edge display support and UI improvements
  • Improved notification system

All original QKSMS features are preserved and actively maintained.

TextPilot supports Android 5.0 (API 21) and up, targeting Android 14 (API 35). It works well on modern Android phones and includes special handling for Android 13+ notification permissions and Android 14+ foreground service permissions.

Yes. TextPilot has full dual SIM support. You can set a default SIM per conversation, switch SIMs while composing, and the app correctly handles sending and receiving messages from both SIM cards.

Yes — full MMS support is included. You can send and receive photos, videos, audio, and group messages. The app handles long SMS-to-MMS auto-conversion and lets you configure the auto-compress setting for attachments.

AI Smart Reply

TextPilot uses Ollama — an open-source tool for running AI models locally — to generate reply suggestions. The app sends your recent conversation messages to your own Ollama server (running on your own computer or local network) and displays 3–5 suggested replies you can tap to use.

Your messages never leave your network. No external AI services are involved.

  1. Install Ollama on your computer
  2. Pull a model: ollama pull llama3.2 (or any other model)
  3. Start with network access: OLLAMA_HOST=0.0.0.0 ollama serve
  4. In TextPilot: go to Settings → Smart Reply (AI)
  5. Enter your Ollama URL (e.g., http://192.168.1.100:11434)
  6. Tap Test Connection to verify
  7. Select your model and enable Smart Reply

Any model available through Ollama works. Popular choices include:

  • llama3.2 — Fast and capable general model
  • dolphin3 — Uncensored, great for natural conversation replies
  • gemma3 — Google's efficient model
  • qwen2.5 — Excellent multilingual support
  • mistral — Compact and fast

The app fetches the list of installed models from your Ollama server automatically.

Auto-Reply is an optional mode where the AI automatically responds to all incoming messages on your behalf. This is useful when you're in meetings, driving, or sleeping.

When enabled, a persistent notification appears so you can quickly disable it. Use responsibly — recipients see AI-generated replies as if they came from you.

No. TextPilot's AI exclusively uses your own self-hosted Ollama server. No data is sent to OpenAI, Google, Anthropic, Meta, or any other cloud AI provider. Your messages stay on your local network.

Web SMS Interface

TextPilot includes a complete self-hosted web server that syncs your SMS in real time. Once set up, you can read and send text messages from any web browser — your laptop, desktop, tablet, or any device on your network.

The web server is a Node.js/Express application with a React frontend, backed by PostgreSQL. It's deployed with a single docker-compose up -d command.

  1. Install Docker and Docker Compose on your server/PC
  2. cd web-interface && cp .env.example .env
  3. Generate JWT secrets: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
  4. Edit .env with your secrets
  5. docker-compose up -d
  6. In TextPilot app: Settings → Web Sync → enter your server URL
  7. Tap Perform Initial Sync to upload your message history

See the full documentation for detailed instructions.

The server includes multiple security layers out of the box:

  • JWT authentication (access + refresh tokens)
  • bcrypt password hashing
  • Rate limiting on all API endpoints
  • CORS protection
  • Helmet.js security headers

For production use, we strongly recommend enabling HTTPS. The server supports both self-signed certificates and Let's Encrypt. You should also use a strong password (12+ characters) and consider restricting network access to your device's IP or VPN.

Yes, with some setup. Options include:

  • VPN (recommended): Use Tailscale or WireGuard to securely access your home server from anywhere — no port forwarding needed
  • Port forwarding: Expose your server on a public port. Use HTTPS and a strong password. Consider Cloudflare Tunnel for easier setup.
  • VPS deployment: Run the server on a cloud VPS for always-on access

Yes — two-way messaging is fully supported. Messages you send from the web are queued in the database, picked up by the Android app during the next sync (which happens instantly on send/receive, or every 60 seconds), and sent via your phone's carrier. MMS attachments are also supported.

Privacy & Security

No. TextPilot does not operate any servers. All your messages, contacts, and settings are stored locally on your device. We do not collect, transmit, or sell any personal information.

The NoAnalytics variant (available on GitHub) contains zero tracking, analytics, or third-party SDKs. The Google Play variant includes Firebase Analytics and Crashlytics for crash reporting.

  • NoAnalytics (GitHub APK): Zero tracking, no Firebase, no Amplitude, no third-party analytics. Recommended for privacy-focused users.
  • WithAnalytics (Google Play): Includes Firebase Analytics, Crashlytics, Performance Monitoring, and Amplitude to help improve the app. Crash reports help fix bugs.

All SMS/MMS functionality is identical between both variants.

Yes — TextPilot is fully open source under the GNU GPLv3 license. The complete source code is available on GitHub. You can review every line of code, build it yourself, and verify its behavior.

Messenger+

Messenger+ is a one-time in-app purchase available on Google Play that unlocks premium features and supports development. It includes:

  • Premium themes with exclusive color palettes
  • Scheduled messages (send at any future date/time)
  • Delayed sending with cancel window
  • Automatic night mode scheduling
  • Local message backup and restore
  • Advanced blocking (keywords and regex patterns)
  • Auto-forward messages
  • Auto-respond to incoming messages
  • Custom auto-emoji shortcuts
  • All future Messenger+ features

Yes — a 7-day free trial is available so you can try all Messenger+ features before purchasing. A hashed device identifier is stored locally to manage the trial period across reinstalls (never transmitted to any server).

Building & Contributing

Prerequisites: Android Studio (latest stable), JDK 8+, Android SDK (API 21+).

git clone https://github.com/chartmann1590/textpilot.git
cd textpilot
./gradlew :presentation:assembleNoAnalyticsDebug

Use gradlew.bat on Windows. The noAnalytics variant is recommended for development — it builds faster with no external dependencies.

See CONTRIBUTING.md for full instructions.

Please open an issue on the GitHub Issues page. Include your Android version, device model, and steps to reproduce the bug. For feature requests, describe the use case and why it would be useful.

Yes! Translations are managed through Crowdin. You can contribute at crowdin.com/project/qksms. Do not edit string resource files directly in the repository.

Still have questions? Open an issue on GitHub or support the project.

Ask on GitHub ☕ Buy Me a Coffee