PyQt5 desktop workspace for Android ADB, SSH/serial terminals, SFTP/FTP file transfer, and screen mirroring (scrcpy).
Project description
Adbnik
You are on
naveen— the full codebase (personal / maintainer development). This tree hasadbnik/,pyproject.toml, tests, and Windows packaging. The PyPI package uses thisREADME.mdas its long description. The public release branch ismain: same end-user story, but no Python source there — only license, changelog, docs, site, branding, and release installers underinstallers/onmain. SeeBRANCHES.mdforpypiand merge rules.
One desktop workspace for Android debugging, remote shells, and file operations.
Adbnik is a PyQt5 application that brings ADB workflows, SSH and serial terminals, local ↔ remote file management (Android device, SFTP, FTP), and screen mirroring launchers (e.g. scrcpy) into a single tabbed window. External tools—adb, ssh, scrcpy—are used from your system: install them separately and, if needed, set paths under File → Preferences.
About the name
Adbnik combines ADB (Android Debug Bridge) with -nik, a productive-form suffix familiar from words like technik (technician; someone who works with tools). It signals a utility focused on hands-on device work—not a generic “suite,” but a workstation built around real debugging and transfer tasks.
Capabilities
| Area | Details |
|---|---|
| ADB | Device selection, shell sessions, APK install flow, bookmarks, quick actions |
| SSH | Full-screen terminal via your system OpenSSH client |
| Serial | COM port and baud configuration in the UI |
| Files | Dual-pane explorer: local disk ↔ Android / SFTP / FTP |
| Screen | Start and manage mirroring using your chosen executable |
User guide
Step-by-step documentation for the Terminal, File Explorer, and Screen Control tabs (menus, shortcuts, mirroring options), plus where to put adb / scrcpy on disk:
https://nvnkennedy.github.io/adbnik/guide/index.html (styled pages—Terminal, Explorer, Screen—same site as the project home).
In the app: Help → User guide (F1) opens that URL; Help also lists the website, GitHub, and PyPI.
Requirements
- Python 3.9+ (64-bit recommended on Windows)
- Android: USB debugging enabled; platform-tools (
adb) available to the same environment that runs Adbnik - SSH:
sshonPATH(or wherever your shell resolves it) - Mirroring:
scrcpyor another tool—PATHor Preferences - Serial: Port visible to the OS with the correct driver
Installation
pip (recommended)
Use the same Python interpreter for pip and for launching (avoids broken entry points on Windows):
py -m pip install --upgrade pip
py -m pip install adbnik
py -m adbnik
Pinned interpreter example:
"C:\Path\To\Python\python.exe" -m pip install adbnik
"C:\Path\To\Python\python.exe" -m adbnik
Package index: pypi.org/project/adbnik · Files: pypi.org/project/adbnik/#files
The PyPI project ships wheels and an sdist for pip install under the Apache License 2.0 (LICENSE, SPDX Apache-2.0). Current stable is 6.0.0 (see CHANGELOG.md); earlier 1.0.x and dev-era lines are documented there and in CHANGELOG-legacy.md.
On the PyPI project page, Project links come from [project.urls] in pyproject.toml, including Windows installer (unsigned) → GitHub Releases. PyPI’s file list is for Python packages only; the Setup .exe is large and Windows-specific, so it is built from this branch in CI, attached to GitHub Releases, and mirrored under installers/ on main when a release is published—not bundled inside the universal wheel.
Windows installer from GitHub Releases (optional, unsigned)
When we attach a Adbnik-*-Setup-unsigned.exe build to GitHub Releases, it is a convenience installer produced with PyInstaller + Inno Setup. It is not digitally signed with an Authenticode certificate yet.
Where files land when you build locally (this branch): the repo-root installers/ folder (Adbnik-<version>-Setup-unsigned.exe and portable .zip). Binaries are gitignored here until you build — see installers/README.md. For the public repo, copies of those same files are committed on main under installers/ when a release is finalized.
Why Windows warns (“SmartScreen”, “Unknown publisher”, “Windows protected your PC”): Microsoft flags unknown / unsigned executables by policy. That does not mean the installer was flagged as malware—it means there is no publisher certificate on the file.
Run anyway: On the SmartScreen dialog, choose More info (or More details), then Run anyway. If the browser blocked the download: open Downloads, right‑click the file → Properties → check Unblock if shown → OK, then run again.
If you prefer not to use an unsigned .exe, install with pip above (packages on PyPI are standard Python artifacts).
Shortcut (Windows)
pip cannot place shortcuts or ask for a folder. After installing, run once on Windows:
adbnik-setup
A folder dialog opens (starting on your Desktop); choose where to put Adbnik.lnk. No extra console window is shown—only the dialogs. The shortcut uses this Python (python -m adbnik) and the same app icon as the window. Icon files are cached under %LOCALAPPDATA%\Adbnik\.
Non-interactive example (e.g. script or batch file, with console output):
adbnik-setup --folder "%USERPROFILE%\Desktop"
First run
- Start the app:
python -m adbnikfrom the environment where the package is installed. - Under File → Preferences, set paths for ADB and scrcpy if they are not on
PATH. - Use the main tabs for Terminal, Files, and Screen as needed.
Preferences are stored in .adbnik.json under your user profile. Legacy .devicedeck.json settings are migrated when you save preferences.
Screenshots
Troubleshooting
ModuleNotFoundError: No module named 'adbnik' — Install and run with the same python.exe:
"C:\Path\To\Python\python.exe" -m pip install --force-reinstall adbnik
"C:\Path\To\Python\python.exe" -m adbnik
On Windows, list interpreters with py -0p.
Resources
| Product site | nvnkennedy.github.io/adbnik — overview and links |
| User guide | nvnkennedy.github.io/adbnik/guide/ — Terminal, File Explorer, Screen Control |
| Changelog | CHANGELOG.md — v6.0.0 and earlier public releases; CHANGELOG-legacy.md — dev-era 2.x–5.x |
Public release branch (main, no source) |
github.com/nvnkennedy/adbnik/tree/main |
Application source (naveen) |
github.com/nvnkennedy/adbnik/tree/naveen |
Releases (installer .exe, portable zip) |
GitHub Releases |
| Yanking old PyPI versions | docs/pypi-yank-legacy-versions.md |
Building from source
Clone naveen (this branch) — not main, which does not contain the package tree:
git clone -b naveen --single-branch https://github.com/nvnkennedy/adbnik.git adbnik-dev
cd adbnik-dev
py -m venv .venv
.venv\Scripts\activate
py -m pip install -e ".[dev]"
py -m pytest tests -q
py -m adbnik
License
Apache License 2.0 — see LICENSE and NOTICE. Large enterprises often prefer Apache 2.0 for its clarity, patent provisions, and predictable redistribution rules (SPDX: Apache-2.0).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file adbnik-6.0.0.tar.gz.
File metadata
- Download URL: adbnik-6.0.0.tar.gz
- Upload date:
- Size: 598.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
323a72c1deea63960922e838d1a2926851884786aa743035e75c89ecd494a027
|
|
| MD5 |
0f34d86898efa9605447ae71755e0e59
|
|
| BLAKE2b-256 |
5909084236148f0c2240d81f54bb4fe2398f3e9af705869f0e6e03e13e4e1ea6
|
File details
Details for the file adbnik-6.0.0-py3-none-any.whl.
File metadata
- Download URL: adbnik-6.0.0-py3-none-any.whl
- Upload date:
- Size: 170.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e0417715cb10d73bdcb80181a090af04b9df22340dc49a1a2b30fc705eb9a9d
|
|
| MD5 |
27b61c84a7907d52fbaa224698b8b40e
|
|
| BLAKE2b-256 |
7bc098b958a2a26024da9c23f50b0b3362dc9841b14f0280e30993dbddb0ccb8
|