# ReVanced CLI: Android App Patching from the Command Line

> ReVanced CLI is a Kotlin command-line application that uses ReVanced Patcher to patch Android apps, inspect patch bundles, and install or remove apps through ADB or root. It is aimed at users who need a repeatable terminal workflow.

**ReVanced/revanced-cli** — 💻 Command-line application to use ReVanced

- Repository: https://github.com/ReVanced/revanced-cli
- Website: https://revanced.app
- Stars: 1,600 · Forks: 217
- Language: Kotlin
- License: GPL-3.0
- Published: 2026-10-16 · Updated: 2026-10-16 · Language: en
- Canonical page: https://hysenlabs.com/projects/revanced-revanced-cli

## What ReVanced CLI changes for Android app modification

ReVanced CLI addresses a specific operational problem: applying patches to Android applications from a terminal instead of depending on a graphical patching workflow. The project is not a general Android development kit, an app store, or an APK analyzer. Its purpose is to connect ReVanced Patcher with an application that can also inspect patch bundles and manage apps through Android-facing mechanisms.

The intended audience is people who already work with Android packages and want command-line control over the patching process. The README identifies patching apps, installing and uninstalling apps, and listing available patches as its main capabilities. It also states that any combination of patches can be applied to any version of Android apps. That statement describes the project's intended flexibility, but the README does not explain how patch compatibility is calculated beyond the existence of a command for listing compatible packages and versions.

The practical advantage is automation. A terminal application can fit into a script or a repeatable operator workflow. The README does not document a service API, configuration file, shell completion setup, or a complete automation example. It does, however, point to documentation under `/docs` for usage and building. Those documentation pages should be checked before assuming which command syntax, release artifact, or platform-specific setup applies to a particular environment.

## The Patcher-centered architecture and patch bundle flow

According to the README, ReVanced CLI uses ReVanced Patcher to patch Android apps. That relationship defines the central architecture. The CLI acts as the command-line layer around the patcher, while patch bundles supply the available modifications and compatibility information.

The project exposes a patch-discovery capability rather than treating patching as a single opaque operation. Its documented features include listing patches from patch bundles, as well as listing the packages and versions for which those patches are compatible. This suggests a workflow in which a user first identifies what a bundle contains and whether it applies to a target package, then supplies an app for patching. The README does not specify the internal object model, patch-loading rules, error format, or the exact order in which the CLI checks compatibility.

The app-management features add another boundary to the project. Installation and uninstallation can use ADB through the Android package manager, or can use mounting with root permissions. Those are materially different operating paths. The package-manager route belongs to an ADB-mediated environment, while mounting requires root access and a different privilege context. The README does not say whether the two routes expose identical lifecycle behavior, nor does it explain partial failures, device authorization, package signatures, or recovery behavior. The distinction matters because choosing a root route changes the permissions and failure surface of the operation.

Based on the repository layout, the implementation is a Kotlin application built with Gradle. The top-level `build.gradle.kts`, `settings.gradle.kts`, `gradle.properties`, `gradlew`, and `gradlew.bat` files indicate a Gradle-based build, while `package.json` contains release tooling dependencies rather than an application runtime command. The documentation, rather than the README, is the appropriate place to inspect the concrete command flow.

## Downloading ReVanced CLI and completing a first documented use

The README directs users to the project's GitHub releases page for the most recent version and to the `/docs` directory for usage instructions. It does not provide the executable name, platform-specific download steps, installation commands, configuration syntax, or a complete first-use command. This article therefore does not invent a command that could fail against the released application.

A new user can begin by opening the linked latest-release page and selecting the release appropriate for the target environment, then following the usage documentation under `/docs`. The repository's build documentation is linked separately, which is useful when the goal is to produce a local build rather than download a release artifact. The documented capabilities provide the first-use sequence to look for: identify a patch bundle, list its available patches and compatible packages and versions, then patch a target Android app. A separate app-management operation can use ADB or root, depending on the documented setup.

The README does not state which operating systems are supported, whether Java or another runtime must be installed separately, or what device state is required. It also does not document rollback, logging configuration, cache locations, authentication, or a method for exporting a reproducible patch manifest. Those omissions matter for adoption because a patching command can be simple while the surrounding maintenance and recovery process is not. The first use should therefore be treated as a documentation check: confirm the release artifact, locate the exact command for listing a bundle, and verify the intended ADB or root route before applying changes to an app.

## ADB and root are different deployment boundaries

The README names two mechanisms for installing and uninstalling apps: ADB using the Android package manager, and mounting using root permissions. This distinction gives ReVanced CLI coverage across different Android environments, but it does not make the routes equivalent.

The ADB path is the better fit for a normal development and device-management setup in which ADB authorization is already available. The root path is relevant when the process needs mounting privileges, but it introduces a separate security and operational requirement. The README does not document exactly what is mounted, which filesystem or device state is required, or how the CLI handles failures when root access is absent. It also does not say whether installation and uninstallation can be combined with patching in one operation.

For engineers, command-line adoption should be evaluated at two levels. First, verify that the target Android app and patch bundle are supported. Second, verify the delivery route. A patch that produces an APK is not by itself an installation workflow, and an install command does not by itself confirm that patching succeeded. The README's feature list is concise, but it leaves those intermediate checks undocumented.

There is also a compatibility concern. The project says it can apply any combination of patches to any version of Android apps, yet it separately provides a way to list compatible packages and versions. That wording should be read alongside the patch-bundle listing capability rather than as a guarantee that every bundle will accept every patch. The README does not provide failure examples or recovery guidance, so unsupported combinations remain a case where the user must consult the bundle documentation or ReVanced support channels.

## Licensing, maintenance, and the upgrade decision

ReVanced CLI is licensed under GPL-3.0. The README says that copying, distribution, and modification are allowed as long as changes and dates are tracked in source files, and that modifications must also be made available under the GPL with build and installation instructions. That is a project licensing summary, not legal advice. Anyone planning to redistribute modified code should review the `LICENSE` file and the applicable obligations for the distribution method.

The repository is not archived, and its last push was on 2026-06-02. The release list includes `v6.0.0` dated 2026-03-14, along with development releases before it. Those dates indicate recent development activity around the recorded release history, but the repository does not provide a changelog for individual commands, migration notes for `v6.0.0`, or a compatibility promise for older patch bundles.

The upgrade cost is therefore partly procedural. Users should check the `/docs` content and `CHANGELOG.md` in the repository, then confirm that the patch bundles and Android package-management route they use remain aligned with the selected CLI release. The Gradle wrapper files indicate a supported build path for contributors or local builders, while `package.json` points to semantic-release tooling. Neither file, as shown in the repository listing, supplies a runtime configuration or an upgrade command for end users.

Compared with a manually orchestrated patching process, ReVanced CLI offers a single command-line application around ReVanced Patcher, patch discovery, and app deployment. The README does not document a graphical ReVanced workflow, so the exact feature and platform difference should not be inferred. The relevant comparison is architectural: this project foregrounds terminal commands and ADB or root operations rather than describing a desktop interface.

## What the repository leaves undocumented

The README is useful as a scope statement but is too short to serve as an operational specification. It does not list the supported Android versions, host operating systems, Java requirements, release artifact formats, or architecture requirements. It also does not explain how ReVanced CLI locates patch bundles or whether bundle paths are supplied as command arguments, environment variables, or another configuration mechanism.

Users should also distinguish documented capability from undocumented reliability. The README confirms patching, installation, uninstallation, and patch listing. It does not confirm support for parallel device operations, transactional installation, signature preservation, rollback, app-data preservation, or recovery after an interrupted operation. It does not define whether commands return machine-readable output, how errors are categorized, or whether logs can be redirected for automation. Those details can decide whether the application is suitable for a personal script or a controlled deployment environment.

The project may be a good fit for users who already understand Android packages, ADB, app variants, and patch bundles. It is a poor fit for someone who needs the README alone to identify compatible versions, configure privileges, or recover from a failed patch. The absence of those details is not evidence that the features are absent. It is a documentation boundary that should be resolved through `/docs`, the repository issue channels, or the ReVanced community links before adoption.

## Conclusion

Adopt ReVanced CLI if you need a command-line workflow for patching Android apps, listing patch-bundle contents, or managing installs through ADB or root. Do not choose it if you require a graphical interface or a fully specified installation procedure in the README. Verify the linked documentation, compatible patch bundles, target app versions, and required privileges first. The repository's last push was on 2026-06-02.

## FAQ

### What is ReVanced CLI used for?

ReVanced CLI is a command-line application for patching Android apps through ReVanced Patcher. It also supports listing patches and managing app installation or uninstallation through ADB or root.

### How do I install ReVanced CLI?

The README directs users to download the latest version from the GitHub releases page and follow the documentation under `/docs` for usage. It does not provide the exact installation commands or platform requirements.

### Can ReVanced CLI list compatible patches?

Yes. The README states that the application can list available patches from patch bundles, including compatible packages and versions.

### Does ReVanced CLI work with ADB and root?

The README says ReVanced CLI can install and uninstall apps via ADB using the Android package manager, or by mounting with root permissions. It does not document detailed differences in permissions, device setup, or error handling between those routes.

## Sources

- [License: GPL-3.0](https://github.com/ReVanced/revanced-cli/blob/main/LICENSE)
- [Project website](https://revanced.app)
- [README](https://github.com/ReVanced/revanced-cli/blob/main/README.md)
- [Releases](https://github.com/ReVanced/revanced-cli/releases)
- [ReVanced/revanced-cli on GitHub](https://github.com/ReVanced/revanced-cli)

---

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