Octi: an Android app that syncs battery, wifi and clipboard across your phones
A multi-device manager for Android
At a glance
- What is it?
- Octi is a Kotlin Android app that keeps several devices in one information stream, with battery, connectivity, installed app and clipboard modules and two sync backends. The choice between Google Drive and a self-hosted Octi Server decides how private your setup stays and how much work you do.
- Who is it for?
- Octi suits Android users with two or more phones or tablets who want battery level, wifi details, installed app lists and clipboard sharing on a single dashboard, and who are willing to either sign every device into the same Google account or run the Octi Server themselves. It does not suit iPhone users, since the repository documents only the Android app and companion clients, and it does not suit anyone who needs zero infrastructure and no account.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 9 days ago.
- What is it written in?
- Mainly Kotlin, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
One dashboard for the state of several Android devices
Octi is built around a simple need: you own more than one Android device, and you want to know what is going on with the others without picking them up. The README describes the app as a multi-device manager that facilitates cross-device information exchange, monitoring and synchronization. The information modules listed there are battery, with charge level, charge speed and estimates, connectivity, with wifi SSID and IP address, installed apps, covering both the last installed app and the full list, and a clipboard module where you copy text into Octi on one device so it becomes available on the others. The module list ends with an ellipsis, which is an honest signal that more modules are planned rather than shipped. The interesting constraint is that a phone app cannot read another phone's state directly, so everything Octi offers has to travel through a sync channel that both devices already trust.
Google Drive or your own Octi Server
There are two synchronization options and they differ in more than convenience. The Google Drive option is described as easy to use if all devices are signed into the same account, which means the shared state travels through a consumer cloud account and the account becomes the trust anchor. The Octi Server option is an end-to-end encrypted server that does not require a Google account at all, at the price of running the server yourself and pointing each device at it. For a home lab, a small VPS or a self-hosted box, that second option is the more interesting one, because the devices talk to infrastructure you control and the content stays encrypted end to end. The trade-off is availability: the Drive path keeps working when your own server is down, since Google runs it, while the self-hosted path depends on a machine you maintain and secure, and Octi Server is a separate repository with its own release cycle.
The repository layout splits features into modules and sync into backends
The tree explains the design better than the feature list does. Under modules/ you find separate directories per information domain, with modules-apps, modules-clipboard, modules-connectivity, modules-files, modules-meta, modules-power and modules-wifi sitting next to each other. Under sync-core/ and the two syncs-gdrive/ and syncs-octiserver/ directories sits the transport layer, with the backend-specific code separated from the shared sync logic. That separation is what lets the same feature modules run against either backend, and it is also why a third-party client can be written against the same protocol. The app itself lives in app/ and app-common/, with module-core/ holding shared module infrastructure and modules-meta/ carrying the metadata that other clients read. The build is a Gradle Kotlin project with buildSrc/, settings.gradle and a version.properties file, and the top level also carries fastlane/ for store metadata and the Crowdin configuration for translations.
Desktop, browser and Home Assistant clients speak the same protocol
Octi is not an isolated phone app. The README points to two companion clients that are described as early-stage but that talk to the same Octi Server: Octi Desktop, a Compose Multiplatform client for Linux, macOS and Windows, and Octi Web, a browser-based client that connects directly to your self-hosted server. Community clients exist as well, and the example given is octi-home-assistant, maintained by another developer, which exposes Octi device state as Home Assistant entities and is installable through HACS. If you want to build your own, the sync protocol reference in docs/protocol/README.md documents the Octi Server wire protocol, covering linking, the HTTP API, change notifications and end-to-end encryption. The repository also carries a branding/ directory that sets out when you may use the Octi icon and how to name your project, which tells you the project cares about the ecosystem around it, not only the app. The README points to the wiki for deeper documentation and to Discord for questions.
Four download channels and a stream of release candidates
There is no build-from-source instruction in the README, so installation comes from the published channels rather than from a command. The download table lists Google Play, Google Play Beta, GitHub Releases and F-Droid through IzzyOnDroid, and the README also mentions a paid upgrade on Google Play among the ways to support the project. The release naming tells you what to expect from versions: v1.3.0-rc0 on 2026-09-04, v1.2.2-rc0 on 2026-08-25 and v1.2.1-rc0 on 2026-08-16, so the tagged artefacts are release candidates rather than stable builds. The last push was on 2026-10-14 and the project is not archived, so work continues between those tags. If you install from GitHub Releases you are choosing an rc yourself, and if you install from the Play Store you get the distribution that Google manages. Either way, the app identifier is eu.darken.octi, which is the same across the Play listing and the F-Droid package.
GPL v3 covers the code, not the assets around it
The licence section is unusually specific, and it matters more than the headline GPL tag. The README states that Octi's code is available under GPL v3 and then lists what that grant excludes: the Octi icons, logos, mascots, marketing materials and assets, the animations and videos, the documentation, the Google Play screenshots, the Google Play texts and descriptions, and the translations. In practice, if you fork the app and ship it, you inherit copyleft obligations for the code you reuse, but you cannot simply reuse the brand, the artwork or the store copy, and a fork with your own name is the expected shape. That arrangement is common for apps whose brand and store presence are commercially meaningful, and it is the reason the branding/ directory exists. This is not legal advice, and anyone building a commercial fork should read LICENSE and PRIVACY_POLICY.md in the repository before publishing anything. The repository also carries a CHANGELOG.md and a VERSION file, and the app ships a privacy policy document, which is worth reading before you point it at a server you host.
Editorial conclusion
Octi suits Android users with two or more phones or tablets who want battery level, wifi details, installed app lists and clipboard sharing on a single dashboard, and who are willing to either sign every device into the same Google account or run the Octi Server themselves. It does not suit iPhone users, since the repository documents only the Android app and companion clients, and it does not suit anyone who needs zero infrastructure and no account. Verify first that the device you plan to install it on is on Google Play, Google Play Beta, GitHub Releases or F-Droid, read the sync protocol reference in docs/protocol/README.md before writing your own client, and remember that the code is GPL v3 while icons, animations, documentation and translations sit outside that grant.
Frequently asked questions
What is Octi and what does it sync between Android devices?
Octi is an Android app for cross-device information exchange, monitoring and synchronization. The README lists modules for battery charge level, speed and estimates, wifi SSID and IP, installed apps and the last installed app, and clipboard text, with more modules indicated as planned.
How do I install Octi and where can I get it?
The README lists four sources: Google Play, Google Play Beta, GitHub Releases and F-Droid through IzzyOnDroid. The published versions are release candidates such as v1.3.0-rc0, and the app identifier is eu.darken.octi.
Do I need a Google account to use Octi?
Not if you run the Octi Server, which the README describes as an end-to-end encrypted server that does not require a Google account. The Google Drive sync option is the easier path when all devices already use the same account.
Can Octi be used with Home Assistant or on a desktop?
The README points to Octi Desktop, a Compose Multiplatform client for Linux, macOS and Windows, and Octi Web, a browser client for a self-hosted server. A community client called octi-home-assistant exposes device state as Home Assistant entities and is installable through HACS.
Can I write my own client for the Octi Server?
The sync protocol reference in docs/protocol/README.md documents the Octi Server wire protocol, including linking, the HTTP API, change notifications and end-to-end encryption. The branding directory also sets out when the Octi icon may be used and how a third-party project should be named.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/d4rken-org-octi)Was this useful?