SkillAgentSearch skills...

Openmtp

OpenMTP - Advanced Android File Transfer Application for macOS

Install / Use

/learn @ganeshrvel/Openmtp
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

OpenMTP | Android File Transfer for macOS

Introduction

Advanced Android File Transfer Application for macOS.

Transferring files between macOS and Android or any other MTP devices has always been a nightmare. There are a few File Transfer MTP apps which are available online but most of them are either too expensive or come with bad UI/UX. The official "Android File Transfer" app for macOS from Google comes with bugs, innumerable limitations, some of which include - not being able to transfer files larger than 4GB, frequent disconnections, unable to rename the folders or files on the android/MTP devices. Most of the other apps available online uses either WiFi or ADB protocol to transfer the files, which is an extremely time-consuming process.

Countless searches to find an app to solve these problems and failing to find one made me restless. So, I took the leap and decided to create an app for us that could help us have a smooth and hassle-free file transfer process from macOS to Android/MTP devices. Created with the objective of giving back to the community, we can all use this app for free in this lifetime.

Features

  • Safe, Transparent and Open-Source
  • Plug and Play via USB. No hassles, easy and instant connection.
  • Select between Internal Memory and SD Card
  • Transfer multiple files which are larger than 4GB
  • Dark mode
  • Drag-and-drop support
  • Split pane views for both Local Computer and Android device
  • Choose between Grid and List view.
  • Use Keyboard Shortcuts to navigate through your files.
  • No collection of personally identifiable information.

Kalam Kernel

OpenMTP 3.0 features a new MTP kernel and it was written from the scratch. It promises a file copy speed of 30 to 40 MB/s on low and mid range devices and 100 to 120 MB/s on higher end devices. The all new and powerful MTP kernel is named after Dr. A. P. J. Abdul Kalam

Do checkout the Go package which I've written to build Kalam Kernel: github.com/ganeshrvel/go-mtpx. Feel free to raise PRs.

System Requirements and Support

  • To support macOS version below Big Sur the Kalam kernel needs to be compiled on an older macOS machine everytime there is an update, which is practically very difficult
  • Only the latest 3 versions of macOS will receive the Kalam Kernel updates, which includes new device supports, fixes, stability improvements. macOS Big Sur (11.0) or above will receive the above said updates
  • We have now officially retired the support for Kalam Kernel on macOS 10.13 (OS X El High Sierra) and lower. Only the "Legacy" MTP mode will continue working on these outdated machines.
  • We will continue releasing the updates for both Intel and ARM64 machines

Installation

  # newer versions:
  brew install openmtp --cask
  # older versions:
  brew cask install openmtp

Screengrabs

OpenMTP File Explorer

OpenMTP File Transfer

Keyboard Shortcuts

| Command | Keyboard Shortcut | | ------------------------------------------------- | ---------------------------------------------------------------------------- | | Delete | <kbd>backspace</kbd> | | New Folder | <kbd>command (⌘)</kbd>+<kbd>n</kbd> | | Copy | <kbd>command (⌘)</kbd>+<kbd>c</kbd> | | Copy to Queue | <kbd>command (⌘)</kbd>+<kbd>shift</kbd>+<kbd>c</kbd> | | Paste | <kbd>command (⌘)</kbd>+<kbd>v</kbd> | | Refresh | <kbd>command (⌘)</kbd> +<kbd>r</kbd> | | Folder Up | <kbd>command (⌘)</kbd>+<kbd>b</kbd> | | Select All | <kbd>command (⌘)</kbd>+<kbd>a</kbd> | | Rename | <kbd>command (⌘)</kbd>+<kbd>d</kbd> | | Switch Tab | <kbd>command(⌘)</kbd>+<kbd>1</kbd> | | Open | <kbd>enter</kbd> | | Navigate Left | <kbd>left</kbd> | | Navigate Right | <kbd>right</kbd> | | Navigate Up | <kbd>up</kbd> | | Navigate Down | <kbd>down</kbd> | | Select Multiple Items Forward (in Grid View) | <kbd>shift</kbd>+<kbd>left</kbd> | | Select Multiple Items Backward (in Grid View) | <kbd>shift</kbd>+<kbd>right</kbd> | | Select Multiple Items Forward (in List View) | <kbd>shift</kbd>+<kbd>up</kbd> | | Select Multiple Items Backward (in List View) | <kbd>shift</kbd>+<kbd>down</kbd> | | Select Multiple Items (with mouse) | <kbd>command (⌘)</kbd>+<kbd>click</kbd> or <kbd>shift</kbd>+<kbd>click</kbd> |

Building from Source

Requirements: Node.js v16, Git and Yarn package manager

Clone

$ git clone https://github.com/ganeshrvel/openmtp.git

$ cd openmtp

# install yarn
npm install -g yarn

# install sentry cli
npm -g i @sentry/cli
$ yarn

Run

A fresh clone might throw undefined state error. Run the following commands once to fix the issue.

# For Mac and Linux
$ UPGRADE_EXTENSIONS=1 npm run dev

# For Windows
$ set UPGRADE_EXTENSIONS=1 && npm run dev
# Development
$ yarn dev

# Pre-production
$ yarn start

Debugging a Packaged app

# On terminal run
$ "/path/to/OpenMTP.app/Contents/MacOS/OpenMTP" --remote-debugging-port=6363
  • Open a Chromium browser
  • Input "about://inspect" into the URL bar
  • Add a new connection localhost:6363
  • Inspect OpenMTP @ port 6363

Publishing using CI/CD:

  • CodeMagic.io
    • Create a new App (Choose others -> Enter Electron)
    • Environment variables:
      • APPLEID: <Apple developer account username>
      • APPLE_APP_SPECIFIC_PASSWORD: <App-Specific Password>
        • Log into your Apple Account
        • Goto Sign-In and Security > App-Specific Passwords
        • Click on Generate Password..., enter a password label and click Create
        • Copy the displayed app-specific-password
      • APPLE_TEAM_ID: <Apple Team ID>
        • To get Team ID, go to your Apple Developer Account
        • Then click on "Membership details", and there you will find your Team ID.
      • SENTRY_URL: https://sentry.io/
      • SENTRY_ORG: <Sentry Organization Name>
      • SENTRY_PROJECT: <Sentry Project>
      • SENTRY_TOKEN_ID: <Sentry Auth Token>
        • Find it from here: Auth Tokens
        • Scopes: event:admin, event:read, member:read, org:read, project:read, project:releases, team:read
      • GITHUB_TOKEN: Personal access token
        • There are two options available:
          1. Fine-grained personal access tokens
          • https://github.com/settings/tokens?type=beta
          • Permissions: Contents - (Read and Write access to code)
          1. Personal access tokens (classic)
          • https://github.com/settings/tokens
          • Scopes: admin:gpg_key, admin:public_key, repo, user, workflow
      • CSC_LINK:
        • Keychain -> Default Keychains menu in the left -> Login -> My Certificates
        • Search for `Developer ID Ap
View on GitHub
GitHub Stars6.4k
CategoryDevelopment
Updated11h ago
Forks256

Languages

JavaScript

Security Score

100/100

Audited on Mar 27, 2026

No findings