An open-source Android home screen widget for instant access to DeepSeek β chat, voice, and camera.
β v1.2 is live! Camera and voice routing fully working. Download
app-release.apk(~1.0 MB) from the Releases page.
- Download
app-release.apkfrom the Releases page - Enable Install unknown apps for your browser/file manager in device settings
- Open the APK and install
- Long-press your home screen β Widgets β DeepSeek Widget
| Feature | Description |
|---|---|
| π Instant Chat | One tap opens DeepSeek directly to chat β no unlock, no navigation. |
| π€ Voice-to-Chat | Tap mic β speak β transcribed text lands in DeepSeek's composer ready to send. |
| π· Camera-to-Chat | Snap a photo from the home screen and send it straight to DeepSeek for visual analysis. |
| π¨ Native Feel | DeepSeek's teal accent, adapts to system light/dark theme. |
| π¦ Ultra-Lightweight | R8-optimized. ~1.0 MB APK, zero background services, zero battery drain. |
| ποΈ Privacy First | No data collected. Widget is a pure router to the official DeepSeek app. |
Watch the DeepSeekWidget in action β one tap from the home screen to chat, voice, or camera input.
demo.mp4
DeepSeekWidget uses a "Capture and Share" architecture β the only reliable way to pass content into another app from a home-screen widget:
Widget tap
β
PendingIntent β VoiceInputActivity (transparent, no UI)
β
[Chat tap] [Mic tap] [Camera tap]
Open DeepSeek RecognizerIntent Camera intent + FileProvider
β transcript text β JPEG saved to scoped storage
β β
ACTION_SEND (text/plain) ACTION_SEND (image/jpeg)
β β
DeepSeek chat composer ββββββββββββββ
FileProviderensures camera images are shared securely without exposing raw file pathsPendingIntentflags are set toFLAG_IMMUTABLEfor Android 12+ compliance- Each widget instance uses unique request codes so multiple placed widgets never conflict
| Layer | Technology |
|---|---|
| Language | Kotlin 2.0 |
| Architecture | Trampoline Activity + Intent Routing |
| Security | FileProvider (Scoped Storage) |
| UI | XML RemoteViews + Material Components |
| Minimum SDK | Android 8.0 (API 26) |
| Target SDK | Android 15 (API 35) |
| Build | Gradle KTS + R8 shrinking |
Note: The package name
com.yourdomain.deepseekwidgetis intentionally generic to make forking straightforward.
DeepSeekWidget/
βββ app/src/main/
β βββ java/com/yourdomain/deepseekwidget/
β β βββ Constants.kt β Package IDs, deep link URIs, intent extras
β β βββ DeepSeekWidgetProvider.kt β Widget lifecycle, RemoteViews, PendingIntents
β β βββ VoiceInputActivity.kt β Camera + voice capture logic
β βββ res/
β βββ drawable/ β Widget icons and background shape
β βββ layout/deepseek_widget.xml
β βββ values/ β colors, strings, themes
β βββ xml/
β βββ deepseek_widget_info.xml β Widget metadata (size, update period)
β βββ file_paths.xml β FileProvider path config
βββ build.gradle.kts
βββ README.md
git clone https://github.com/rajit2004/DeepSeekWidget.git
cd DeepSeekWidget
./gradlew assembleDebug
# Output: app/build/outputs/apk/debug/app-debug.apkBug fixes, new features, OEM testing, and translations are all welcome.
See CONTRIBUTING.md for setup instructions and areas that need help.
Ranesh Rajit β B.Tech CS Student, India
MIT β free to use, modify, and distribute with attribution.
Independent open-source project. Not affiliated with or endorsed by DeepSeek.