MCPcopy
hub / github.com/ganeshrvel/openmtp

github.com/ganeshrvel/openmtp @v5.30.3 sqlite

repository ↗ · DeepWiki ↗ · release v5.30.3 ↗
411 symbols 938 edges 154 files 0 documented · 0%
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

  • Plug and Play. No hassles, easy and instant connection.
  • Connect via USB cable - Highest data transfer rates.
  • Transfer multiple files which are larger than 4GB in one go.
  • Select between Internal Memory or SD Card.
  • Split pane views for both Local Computer and Android device.
  • Drag 'n Drop, Grid/List views and the other advanced File Manager features are available.
  • Safe, Transparent and Open-Source.
  • We don't collect any personally identifiable information.
  • It's FREE and shall ALWAYS remain FREE!!

Download App

Download the Latest Version

Find the latest dmg file from GitHub Releases

Screengrabs

OpenMTP File Explorer

OpenMTP File Transfer

Building from Source

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

Clone

$ git clone --depth 1 --single-branch --branch master https://github.com/ganeshrvel/openmtp.git

$ cd openmtp
$ 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

Package

Setup the code signing to build, package and publish the app.

Instructions: https://www.electron.build/code-signing

$ export GH_TOKEN="<github token>"
# For local platform
$ yarn package

# For multiple platforms
$ yarn package-all

Technical Features

  • Built using Electron v4, React v16.4, Redux v4, Webpack v4, Babel v7 and Material UI v3.8
  • Hot module Reload (HMR) for instant feedback.
  • Highly modular.
  • Inbuilt error logging and profile/settings management.
  • Loadables, Dynamic Reducer Injection, Selectors for efficient Code. splitting and performance/startup optimisation.
  • Industry standard State management.
  • JSS, SASS/SCSS styling.
  • Port assigned: 4642

Configurations

  • config/env/env.dev.js and config/env/env.prod.js contain the PORT number of the app.
  • config/dev-app-update.yml file holds the GitHub repo variables required by electron-updater.
  • config/google-analytics-key.js file contains the Google Analytics Tracking ID.
  • package.json build.publish object holds the values for publishing the packaged application.
  • app/constants folder contains all the constants required by the app.

Debugging

# Debugging Guide

https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/400

# Dispatching redux actions from the main process

https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/118

https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/108

# VM112:2 Uncaught TypeError: Cannot read property 'state' of undefined error

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

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

More repos

Accolades and Credits

Contribute

  • Fork the repo and create your branch from master.
  • Ensure that the changes pass linting.
  • Update the documentation if needed.
  • Make sure your code lints.
  • Issue a pull request!

When you submit code changes, your submissions are understood to be under the same MIT License that covers the project. Feel free to contact the maintainers if that's a concern.

Buy me a coffee

Help me keep the app FREE and open for all. Paypal me: paypal.me/ganeshrvel

Contacts

Please feel free to contact me at ganeshrvel@outlook.com

License

OpenMTP | Android File Transfer for macOS is released under MIT License.

Copyright © 2018-Present Ganesh Rathinavel

Core symbols most depended-on inside this repo

undefinedOrNull
called by 20
app/utils/funcs.js
checkError
called by 17
app/utils/processBufferOutput.js
fetchDirList
called by 15
app/containers/HomePage/actions.js
escapeShellMtp
called by 11
app/api/sys/index.js
openExternalUrl
called by 10
app/utils/url.js
s
called by 9
docs/bundle/index.c9039a7dbf8235c3c597.js
processMtpOutput
called by 8
app/containers/HomePage/actions.js
r
called by 8
docs/bundle/index.c9039a7dbf8235c3c597.js

Shape

Function 222
Method 111
Class 78

Languages

TypeScript100%

Modules by API surface

app/api/sys/index.js23 symbols
docs/bundle/index.c9039a7dbf8235c3c597.js22 symbols
app/utils/funcs.js21 symbols
app/containers/HomePage/actions.js18 symbols
app/classes/AppUpdate.js16 symbols
app/containers/HomePage/components/FileExplorer.jsx14 symbols
app/containers/App/index.jsx11 symbols
app/classes/Boot.js11 symbols
docs-sources/utils/funcs.js10 symbols
app/containers/Settings/actions.js9 symbols
app/containers/HomePage/components/ToolbarAreaPane.jsx8 symbols
app/containers/HomePage/components/FileExplorerTableBodyListWrapperRender.jsx8 symbols

Dependencies from manifests, versioned

@babel/core7.2.2 · 1×
@babel/plugin-proposal-class-properties7.2.3 · 1×
@babel/plugin-proposal-decorators7.2.3 · 1×
@babel/plugin-proposal-do-expressions7.2.0 · 1×
@babel/plugin-proposal-export-default-from7.2.0 · 1×
@babel/plugin-proposal-export-namespace-from7.2.0 · 1×
@babel/plugin-proposal-function-bind7.2.0 · 1×
@babel/plugin-proposal-function-sent7.2.0 · 1×
@babel/plugin-proposal-json-strings7.2.0 · 1×
@babel/plugin-proposal-logical-assignment-operators7.2.0 · 1×
@babel/plugin-proposal-nullish-coalescing-operator7.2.0 · 1×
@babel/plugin-proposal-numeric-separator7.2.0 · 1×

For agents

$ claude mcp add openmtp \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact