# gptAssist is a WebView with a deny list, and a deadline it did not choose

> woheller69's Android app wraps ChatGPT in a WebView and blocks every URL that is not essential, with a toggle to turn that off. It also cannot sign you in with an Apple, Microsoft or Google account, and the author has stated plainly that it will stop working on certified Android devices once Google requires developer identity.

**woheller69/gptAssist** — gptAssist is a simple WebView wrapper for ChatGPT

- Repository: https://github.com/woheller69/gptAssist
- Stars: 463 · Forks: 47
- Language: Java
- License: GPL-3.0
- Published: 2026-09-14 · Updated: 2026-09-14 · Language: en
- Canonical page: https://hysenlabs.com/projects/woheller69-gptassist

## Everything not essential is blocked, and one tap undoes it

The architecture is one sentence long and everything else follows from it. gptAssist is a simple WebView wrapper for ChatGPT, and it blocks all URLs which are not essential. There is no allow list to inspect and no configuration file; the denials are simply the default state of the app. The privacy claim in the feature list is therefore structural rather than a promise about behaviour, since tracking has nowhere to go if the request never leaves. The toggle is the escape hatch and it is deliberately crude. You switch blocking on and off by clicking the button at the top right, and swiping up a little hides that button so it stops intruding on the conversation. Two modes, one control, no settings screen. The other half of the interface argument is the same in spirit: a focused interface with no browser distractions, meaning no address bar, no history and no tab strip competing with the chat for attention on a phone.

## No social login, so the account has to be created elsewhere

The limitation that will decide whether the app works for you is stated early and without hedging: gptAssist does not support login via Apple, Microsoft or Google account, and the instruction is to use a web browser for initial sign up. The reason is not hard to infer from the design, since a strict URL filter and a hosted identity redirect are in direct tension, and resolving that tension in favour of blocking means giving up the convenience of the big sign-in buttons. In practice this means a two step setup that most users will find surprising the first time: create and verify the account in a normal browser, then open the app and sign in with credentials. The rest of the feature set is small and matches the wrapper framing rather than fighting it. You can upload files for analysis and conversation, there is voice input for voice conversations, and the app is described as lightweight and minimal, focused on core functionality. That is a deliberate refusal to become a client: no plugins, no custom model selection, no assistant configuration.

## The app carries an end date written by someone else

The most consequential thing in this repository is a block of text at the very top, above the feature list, and it is not about the app:

```
Google has announced that, starting in 2026/2027, all apps on certified Android devices
will require the developer to submit personal identity details directly to Google.
Since the developers of this app do not agree to this requirement, this app will no longer
work on certified Android devices after that time.
```

The announcement is a statement about distribution, not about the code. The app can keep compiling, the WebView wrapper keeps working, and the feature list stays true, but the package cannot be delivered through the certified channel the author has declined to enter. That makes the project's continued existence a question about sideloading and third party stores rather than about maintenance, and it is why the repository's front page leads with the deadline instead of burying it in a licence section. There is also a practical consequence for anyone holding the app on a device they still control: the installed copy is the installed copy, but the update path is what closes. A project that cannot publish through the normal channel stops receiving the security fixes that channel would otherwise deliver, which is the real argument for the author's decision rather than a detail about it.

## Twenty-one F-Droid apps from one author

The repository is mostly a catalogue. Before the app description there is a grid of twenty-one F-Droid listings, one of which is gptAssist itself. The rest cover a weather radar app, gas prices, an egg timer, a bubble level, an audiometry app, a GPS cockpit, an audio spectrum analyzer, a lavatory finder, a time lapse camera, an arity calculator, an om weather app, a solar calculator, a dump seeker, a Hugging Face assistant, a browser, a bird identifier, a peak finder, a Whisper client, a seamstress calculator and a text to speech engine. That spread is the useful signal about the author. It is someone who ships small focused Android utilities to F-Droid, keeps them alive over years, and reuses the same scaffolding across them, which is also why the current app's feature list is short and unimpressed rather than ambitious. A maintainer with twenty other apps is a maintainer who will not rewrite this one when a policy changes, and the announcement reads like a decision made once rather than a phase. The catalogue is also the reason gptAssist exists in a form you can install without an account in the first place. Every one of those listings is an app someone can fetch from a store that does not gate distribution on identity verification, and several of them, the Whisper client and the Hugging Face assistant among them, wrap a hosted AI service in the same way this one does. The pattern is consistent enough across twenty apps that the wrapper approach here looks like a house style rather than a one-off.

## GPLv3 throughout, including the borrowed maps component

The licence situation is unambiguous. The app is licensed under the GPLv3, and it uses parts from GMaps WV, hosted on a divested mobile repository, which is itself licensed under the GPLv3. So there is no permissive exception and no mixed licensing to reason about; the whole stack is copyleft, and anything you build on this code inherits that. The repository carries a `LICENSE` file at the root alongside `README.md`, the Android project and a `.github/` directory. The one thing the licence section does not do is describe a copyright holder list or a version history of the licence text, which is normal for a project of this size and means the file itself is what you read if you need to be certain. For an end user this is uninteresting. For anyone considering a fork, or a fork of a fork, it is the only constraint in the repository that will still apply after the Android distribution question is settled.

## A Gradle project on master, shipped through fastlane

The tree is a conventional Android project rather than a novel one. At the top level sit `build.gradle`, `settings.gradle`, `gradle.properties`, a `gradle/` directory and the `gradlew` and `gradlew.bat` wrappers, an `app/` module, a `fastlane/` directory and a `.github/` directory, with the primary language recorded as Java rather than Kotlin. The presence of `fastlane/` alongside three tagged releases is the part that tells you how this ships: V2.20 in September 2025, V2.30 in October 2025 and V2.40 in March 2026, with the default branch named `master` rather than `main`. So the release cadence has been roughly quarterly with one longer gap, driven by a release automation directory rather than by hand-built packages, and the repository is not archived. The last push to main's sibling branch landed on 19 May 2026, some months after the most recent tag, which is consistent with an app in maintenance mode rather than in active development.

## A bug report is expected to name the Android version and the device

The contributing section is short and unusually specific, which is what you would expect from a WebView app where the behaviour depends heavily on the WebView version shipped by the OEM. If you find a bug you are asked to open an issue in the GitHub repository, assuming one does not already exist. The description should clearly describe the issue including steps to reproduce when it is a bug, and screenshots can be supportive where they help. Two requirements are the ones people usually skip: make sure you mention the Android version and the device you used when you encountered the issue, and make the description as precise as possible. Both follow from the architecture. A WebView wrapper's failures are frequently version specific, since the rendering engine is updated by the system rather than by the app, so a report without the Android version is frequently a report nobody can reproduce. If you know the solution, the guidance is to report it on the matching issue and, if possible, modify the code and open a pull request. That last clause matters more for this project in particular. A wrapper around someone else's web interface ages badly, because that interface changes without a changelog and without an API, so the app breaks in ways no test can predict and the only defence is someone who notices and sends a fix. The request for pull requests is therefore less about contribution etiquette than about how the app stays usable at all once the certified channel stops carrying it.

## Conclusion

Use it if you want ChatGPT on Android without a browser around it and without the tracking a full browser brings, because that is precisely the trade the app makes: a much smaller surface, file upload and voice input, and a one-tap escape hatch back to unrestricted mode when a link has to be followed. Do not adopt it for anything long lived. The author has said the app will not work on certified Android devices once Google requires developers to submit identity details, and that is a property of the distribution channel rather than of the code, so no amount of forking fixes it for anyone shipping through certified devices. Two things to check. Whether your account can sign in at all, since social login is unsupported and initial sign-up has to happen in a real browser. And whether the app you want is still installable where you are, because an app with an announced end date is a poor dependency for work you intend to keep.

## FAQ

### What is woheller69/gptAssist?

A simple Android WebView wrapper for ChatGPT. It blocks all URLs which are not essential, offers a focused chat interface without browser distractions, supports file upload and voice input, and can switch between restricted and unrestricted blocking with one button at the top right.

### Why will gptAssist stop working on certified Android devices?

Google has announced that from 2026 or 2027, apps on certified Android devices will require developers to submit personal identity details directly to Google. The developers of this app do not agree to that requirement, so the app will no longer work on certified devices after that time. The code itself is not the constraint.

### Can I sign in to gptAssist with my Google or Apple account?

No. Login via Apple, Microsoft or Google account is not supported, and the instruction is to use a web browser for the initial sign up. After the account exists you sign in through the app itself.

### How do I turn URL blocking off in gptAssist?

Click the button at the top right to switch blocking on or off, which toggles between restricted and unrestricted modes. Swiping up a little hides that button so it stops covering the chat.

### What license is gptAssist released under?

The GPLv3. The app also uses parts from GMaps WV, which is itself licensed under the GPLv3, so there is no permissive component mixed into the stack.

## Sources

- [Issues](https://github.com/woheller69/gptAssist/issues)
- [License: GPL-3.0](https://github.com/woheller69/gptAssist/blob/master/LICENSE)
- [README](https://github.com/woheller69/gptAssist/blob/master/README.md)
- [Releases](https://github.com/woheller69/gptAssist/releases)
- [woheller69/gptAssist on GitHub](https://github.com/woheller69/gptAssist)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/woheller69-gptassist
