Simple cross-platform File Explorer for adb devices. Uses Python library adb-shell or command-line tool adb.
Note
Features:
Devices & Notifications

Files

Python 3.8+ (older versions are not tested)PyQt5adb (Android Platform Tools) if you choose the external adb implementation (default)adb-shell and libusb1 (only needed if you choose the Python implementation of ADB inside the app)External adb vs Python adb-shell
external — use the system adb binary (default, recommended for simplicity). In this case you do NOT need libusb1 or adb-shell.python — use adb-shell (pure Python). If you want to communicate over USB, you will need libusb1 plus OS-specific libs/drivers (below). For TCP/IP connections, libusb1 is not required.Installing and preparing Python (if not already installed)
shell
sudo apt-get update
sudo apt-get install -y python3 python3-pip python3-venv
python3 -m pip install --upgrade pip setuptools wheelshell
brew update
brew install python@3
python3 -m pip install --upgrade pip setuptools wheelpowershell
winget install Python.Python.3
py -m pip install --upgrade pip setuptools wheelOS-specific prerequisites only for adb-shell + libusb1 (skipped if you choose the external adb implementation)
libusb-1.0-0 (runtime) and set proper udev rules so that your user can access the device without root. For example:
shell
sudo apt-get install -y libusb-1.0-0
# Optional but recommended: Android udev rules
# See https://github.com/M0Rf30/android-udev-rules or your distro's packageshell
brew install libusbadb-shell + libusb1 path, not for the external adb binary.adb-shell you may need Microsoft C++ Build Tools: https://visualstudio.microsoft.com/visual-cpp-build-tools/git clone https://github.com/Aldeshov/ADBFileExplorer.gitcd ADBFileExplorerpython3 -m venv venv (Linux/macOS) or py -m venv venv (Windows)venv\Scripts\activate (Windows) or source venv/bin/activate (Linux/macOS)shell
pip install -r requirements.txtshell
pip install PyQt5 # (external adb only)
pip install adb-shell libusb1 # (If you plan to use the Python adb implementation)setuptools manually:
shell
pip install setuptoolssrc/app/settings.json){
"adb_path": "adb", // Full adb path, or just "adb" if the executable is in `$PATH`
"adb_core": "external", // Set to "external" to use system `adb` executable, or "python" to use `adb-shell`
"adb_kill_server_at_exit": false, // Stop adb server on app exit
"preserve_timestamp": true, // Preserve file timestamps when pushing files
"adb_run_as_root": false // Run adb as root
}
Note: The example above uses JSON5-style comments for explanation. The actual file src/app/settings.json is standard JSON and does not support comments.
./run.shrun.batshell
# Linux/macOS
python3 -m src.app
# Windows
py -m src.appADB File Explorer [python-app]
Copyright (C) 2025 Azat Aldeshov
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
$ claude mcp add ADBFileExplorer \
-- python -m otcore.mcp_server <graph>