- TLS Encryption: You can send files over an encrypted connection.
- Cross-platform support: Flashbyte is supported on all the major platforms!.
- File sharing over local network: You can send files over local network, without wifi access.
- Lossless file sharing: Send files in their original quality.
- All file types supported: Send file of any type.
- No file size limit: Send files no matter their size.
- Doesn't use an external server: Flashbytes sends to devices using your local network.
- Cross-platform: Transfer files to any device on your local network that has Flashbyte installed.
- Open source & no data is collected: All of the code is readily available on github.
Flashbyte uses pure TCP sockets to establish a connection between two devices on a local network inside an isolate (isolated memory channel) which is then utilized to read and send over the file bytes whilst keeping the frontend (main UI isolate) smooth.
You can try out Flashbyte on the following platforms:
| Platform | Download |
|---|---|
| Android | APK | AAB |
| Linux | TAR |
| macOS | DMG |
| iOS | APP |
| Windows | EXE | ZIP |
Install the Flashbyte .apk file from the releases page. Now, run the .apk file wether it is through a file explorer or via your browser's download page.
You can install Flashbyte by running this in your linux terminal:
curl -fsSl "https://raw.githubusercontent.com/iamsami101/Flashbyte/refs/heads/main/install.sh" | bashand if you want to uninstall it, you can run:
curl -fsSl "https://raw.githubusercontent.com/iamsami101/Flashbyte/refs/heads/main/uninstall.sh" | bashIf you'd rather not run the install script, you can set up Flashbyte manually:
1. Download the release
Grab the latest flashbyte-linux-x86_64.tar.gz from the Releases page.
2. Extract it
mkdir -p ~/.local/share/flashbyte
tar xzf flashbyte-linux-x86_64.tar.gz -C ~/.local/share/flashbyte
chmod +x ~/.local/share/flashbyte/flashbyte3. Create a launcher script
This makes sure the app can find its bundled libraries at runtime:
mkdir -p ~/.local/bin
cat > ~/.local/bin/flashbyte << 'EOF'
#!/bin/bash
HERE="$HOME/.local/share/flashbyte"
export LD_LIBRARY_PATH="$HERE/lib:$LD_LIBRARY_PATH"
exec "$HERE/flashbyte" "$@"
EOF
chmod +x ~/.local/bin/flashbyteMake sure ~/.local/bin is on your PATH. Check with:
echo $PATH | grep -q "$HOME/.local/bin" && echo "OK" || echo "not on PATH"If it's not, add this to your ~/.bashrc or ~/.zshrc, then restart your terminal:
export PATH="$HOME/.local/bin:$PATH"4. Install the icons
for size_dir in ~/.local/share/flashbyte/share/icons/hicolor/*/apps; do
size_name=$(basename "$(dirname "$size_dir")")
mkdir -p ~/.local/share/icons/hicolor/"$size_name"/apps
cp "$size_dir/flashbyte.png" ~/.local/share/icons/hicolor/"$size_name"/apps/flashbyte.png
done5. Install the desktop entry
The desktop entry filename and
StartupWMClassmust match the app's GApplication ID (com.iamsami.flashbyte) so GNOME shows the icon and app name correctly in the dock.
mkdir -p ~/.local/share/applications
cat > ~/.local/share/applications/com.iamsami.flashbyte.desktop << EOF
[Desktop Entry]
Type=Application
Name=Flashbyte
Comment=LAN file sharing app
Exec=$HOME/.local/bin/flashbyte
Icon=flashbyte
Categories=Network;
Terminal=false
StartupWMClass=com.iamsami.flashbyte
EOF
chmod +x ~/.local/share/applications/com.iamsami.flashbyte.desktop
rm -f ~/.local/share/applications/flashbyte.desktop6. Refresh your desktop caches
update-desktop-database ~/.local/share/applications
gtk-update-icon-cache ~/.local/share/icons/hicolor7. Run it
Either launch Flashbyte from your application menu, or run it directly:
flashbyterm -rf ~/.local/share/flashbyte
rm -f ~/.local/bin/flashbyte
rm -f ~/.local/share/applications/com.iamsami.flashbyte.desktop
rm -f ~/.local/share/applications/flashbyte.desktop
rm -f ~/.local/share/icons/hicolor/*/apps/flashbyte.png
update-desktop-database ~/.local/share/applications
gtk-update-icon-cache ~/.local/share/icons/hicolorDownload the Flashbyte Setup Wizard (flashbyte-windows-setup-x64.exe) or the portable flashbyte-windows-x64.zip from the releases page.
Installer (recommended): Run the installer and follow the wizard, then launch Flashbyte from the Start menu or desktop shortcut. To remove Flashbyte, use Settings > Apps.
Portable: Extract the zip file, then run:
flashbyte.exeIf Windows SmartScreen warns you that the app is from an unknown publisher, choose More info and then Run anyway. Release builds are signed with a self-signed certificate, so Windows cannot fully trust the signature. To remove the warning, sign releases with a trusted code-signing certificate (see Signing release builds). To remove the portable app, delete the extracted folder.
Download flashbyte-macos.dmg from the releases page.
Open the DMG, drag flashbyte.app into Applications, then launch it from Applications.
If macOS blocks the app because it is not signed/notarized yet, open System Settings > Privacy & Security and allow Flashbyte, or right-click the app and choose Open.
The current iOS release artifact is an unsigned Runner.app zip. It is useful for CI output and local signing, but it cannot be installed on normal iPhones directly.
To install on a device, build/sign from source with an Apple Developer account:
flutter build ipa --releaseThen distribute the signed .ipa through TestFlight, Apple Configurator, or your own MDM/internal distribution setup.
The GitHub workflow builds release artifacts and packages macOS as a DMG, but platform signing requires private certificates and provisioning files that should be stored as GitHub Actions secrets.
To sign Android releases, add an upload keystore and configure Gradle signing with secrets such as ANDROID_KEYSTORE_BASE64, ANDROID_KEYSTORE_PASSWORD, ANDROID_KEY_ALIAS, and ANDROID_KEY_PASSWORD.
To sign and notarize macOS releases, use an Apple Developer ID Application certificate plus notarization credentials, commonly stored as APPLE_DEVELOPER_ID_APPLICATION_CERTIFICATE_BASE64, APPLE_DEVELOPER_ID_APPLICATION_CERTIFICATE_PASSWORD, APPLE_TEAM_ID, APPLE_ID, and APPLE_APP_SPECIFIC_PASSWORD.
To create an installable iOS release, add an Apple Distribution certificate and provisioning profile, commonly stored as APPLE_DISTRIBUTION_CERTIFICATE_BASE64, APPLE_DISTRIBUTION_CERTIFICATE_PASSWORD, IOS_PROVISIONING_PROFILE_BASE64, and APPLE_TEAM_ID.
For Windows releases, the workflow currently signs both the executable and the Inno Setup installer with a fresh self-signed certificate. This keeps the binaries tamper-evident but still triggers a SmartScreen warning, because the signing certificate is not trusted. To sign with a trusted certificate, obtain a Windows code-signing certificate and use it with signtool in the workflow, commonly stored as WINDOWS_CERTIFICATE_BASE64 and WINDOWS_CERTIFICATE_PASSWORD.
If you'd like to build Flashbyte yourself instead of using a prebuilt release, you'll need Flutter installed and set up for the platform(s) you're targeting.
- Flutter SDK (stable channel) — install instructions
- Git
Verify your setup once Flutter is installed:
flutter doctorResolve any issues it flags before continuing (missing Android SDK, missing Linux toolchain, etc. — covered per-platform below).
git clone https://github.com/iamsami101/flashbyte.git
cd flashbyte
flutter pub getAdditional prerequisites:
sudo apt update
sudo apt install clang cmake ninja-build pkg-config libgtk-3-devEnable Linux desktop support if you haven't already:
flutter config --enable-linux-desktopBuild a release binary:
flutter build linux --releaseThe output bundle will be in:
build/linux/x64/release/bundle/This bundle/ folder is exactly what gets packaged into the .tar.gz release — it contains data/, lib/, the flashbyte executable, and share/ with icons and the desktop file. You can run it directly:
cd build/linux/x64/release/bundle
./flashbyteOr follow the Manual Installation steps above, using this bundle/ folder as your source instead of a downloaded release.
Additional prerequisites:
- Android SDK (via Android Studio or command-line tools)
- A configured
ANDROID_HOMEenvironment variable - At least one accepted Android SDK license:
flutter doctor --android-licensesBuild a release APK:
flutter build apk --releaseThe output will be at:
build/app/outputs/flutter-apk/app-release.apkInstall it on a connected device or emulator:
flutter installOr manually transfer the APK to your device and install it (you'll need "Install from unknown sources" enabled, since this isn't distributed via the Play Store).
If you want a split APK per architecture (smaller file size):
flutter build apk --split-per-abi --releaseThis produces separate APKs in the same output folder, one per ABI (armeabi-v7a, arm64-v8a, x86_64).
Additional prerequisites:
- macOS
- Xcode
- CocoaPods
- An Apple Developer account if you want to install on a physical device or create a distributable IPA
Enable iOS support and check your setup:
flutter doctorBuild an unsigned release app for CI/artifact inspection:
flutter build ios --release --no-codesignBuild a signed IPA when your Apple signing certificates and provisioning profile are configured:
flutter build ipa --releaseThe unsigned app output is usually under:
build/ios/iphoneos/Runner.appThe signed IPA output is usually under:
build/ios/ipa/Additional prerequisites:
- macOS
- Xcode
- CocoaPods
Enable macOS desktop support if you haven't already:
flutter config --enable-macos-desktopBuild a release app:
flutter build macos --releaseThe output app will be at:
build/macos/Build/Products/Release/Flashbyte.appFor distribution outside your own machine, sign and notarize the app, then package it as a DMG.
Additional prerequisites:
- Windows
- Visual Studio with the "Desktop development with C++" workload
Enable Windows desktop support if you haven't already:
flutter config --enable-windows-desktopBuild a release app:
flutter build windows --releaseThe output bundle will be at:
build\windows\x64\runner\Release\Zip the contents of that folder to distribute a portable Windows build. A bundled Inno Setup installer script is provided at windows/installer/flashbyte.iss; the release workflow uses it to build a signed Setup Wizard (flashbyte-windows-setup-x64.exe). For wider distribution, sign with a trusted Windows code-signing certificate.
For development/testing rather than a release build, drop --release and just run:
flutter runFlutter will detect any connected device (or ask you to choose one) and hot-reload as you make changes.

