Skip to main content

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 has adbnik/, pyproject.toml, tests, and Windows packaging. The PyPI package uses this README.md as its long description. The public release branch is main: same end-user story, but no Python source there — only license, changelog, docs, site, branding, and release installers under installers/ on main. See BRANCHES.md for pypi and merge rules.

Adbnik

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: ssh on PATH (or wherever your shell resolves it)
  • Mirroring: scrcpy or another tool—PATH or 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

  1. Start the app: python -m adbnik from the environment where the package is installed.
  2. Under File → Preferences, set paths for ADB and scrcpy if they are not on PATH.
  3. 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

Main window

Terminal

File explorer

Screen control


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.mdv6.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

This version

6.0.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

adbnik-6.0.0.tar.gz (598.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

adbnik-6.0.0-py3-none-any.whl (170.2 kB view details)

Uploaded Python 3

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

Hashes for adbnik-6.0.0.tar.gz
Algorithm Hash digest
SHA256 323a72c1deea63960922e838d1a2926851884786aa743035e75c89ecd494a027
MD5 0f34d86898efa9605447ae71755e0e59
BLAKE2b-256 5909084236148f0c2240d81f54bb4fe2398f3e9af705869f0e6e03e13e4e1ea6

See more details on using hashes here.

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

Hashes for adbnik-6.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4e0417715cb10d73bdcb80181a090af04b9df22340dc49a1a2b30fc705eb9a9d
MD5 27b61c84a7907d52fbaa224698b8b40e
BLAKE2b-256 7bc098b958a2a26024da9c23f50b0b3362dc9841b14f0280e30993dbddb0ccb8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page