dev2ex / twig
git clone https://github.com/dev2ex/twig.git
v1.14.0 · 2d ago
Dual-pane Android file manager: local storage, archives, FTP, SFTP, SMB, WebDAV, S3, restic and Jellyfin/Emby in one tree. Plain Kotlin, compact APK.
+6
stars, 24h · #2,204
+~42
stars, 7 days · #2,784
+~180
stars, 30 days · #2,819
48
★ total · +42% this week
4
forks · 7 open issues
Star history (as recorded here)
LanguageKotlin
LicenseGPL-3.0
Created2026-09-07 (1mo ago)
Last pushtoday
Watchers1
OwnerUser
GitHub topics
Links
- GitHub: github.com/dev2ex/twig
- Releases · Issues · Hacker News mentions
README excerpt
Twig English · 中文 A size-first, dual-pane file manager for Android: every storage source lives in one tree and expands in place, instead of each being its own screen to enter. Native Kotlin and XML views, no Material library, minimal dependencies. When something can reasonably be written by hand, it is: WebDAV, S3 signing, git and restic are all implemented from scratch. **Version 1.14.0** (versionCode 305) · minSdk 24 / targetSdk 34 / compileSdk 36 · GPL-3.0 | One tree, every source | restic, decrypted on device | A Jellyfin library as a filesystem | Disk-usage treemap | |---|---|---|---| | | | | | More — directory compare, Wi-Fi sharing, terminal | Directory compare | Wi-Fi sharing | Built-in terminal | |---|---|---| | | | | The rest of the gallery — browsing, media servers, viewers, sharing, terminal **Browsing** | Favourites across every source | Long-press menu on a folder | Copying between two sources | Packing into the other pane | |---|---|---|---| | | | | | **Sources, appearance and shortcuts** | A document tree named after the app that granted it | Elevated access: root or Shizuku | Light theme, landscape | Shortcuts on the home screen | |---|---|---|---| | | | | | **Media servers and music** | An Emby library's "Latest" | Music player with waveform | Playlist | |---|---|---| | | | | **Viewers and compare** | Text viewer, hand-written highlighting | Hex viewer | Text compare with merge arrows | A saved comparison, synced from its row | |---|---|---|---| | | | | | **Sharing, terminal and git** | Another Twig found over UDP | A share mounted back as WebDAV | Git status beside a terminal | A command pinned to the home screen | |---|---|---|---| | | | | | --- ## Download The version above tracks the source tree; downloads follow the published releases. Signed APKs are attached to every GitHub release: | File | Take it if | |---|---| | `Twig- -full.apk` | **You are not sure.** arm64-v8a + x86_64, with read-only RAR | | `Twig- -libre.apk` | You want free software throughout — no RAR, because `junrar` is not free software | | `Twig- -full-arm64-v8a.apk` / `-x86_64.apk` | You want a smaller download for one architecture | | `Twig- -full-armeabi-v7a.apk` | You have a 32-bit ARM device — experimental, untested on hardware | All of them are signed with the same key, so any one installs over any other. The certificate's SHA-256 is `196f633e942bf4f32f875b98c8ff181138256ba329a63364e3a39f154c1a5e62`. **Automatic updates** without a store: add `https://github.com/dev2ex/twig` to Obtainium. A release carries several APKs, so set *Filter APKs by Regular Expression* to pick one, or Obtainium will ask every time and cannot update in the background — `-full\.apk$` for the default build, `-libre\.apk$` for the free one. **Get Twig on F-Droid**: the `libre` build includes all features except RAR and uses the same signing key as the GitHub APKs, verified through reproducible builds. F-Droid automatically tracks stable release tags; updates appear after