AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
Wireless, over the camera's own Wi-Fi. A free, open-source Mac app for DJI Osmo cameras.
Developer toolsSwift · CSSGitHub @smithplusOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Download your DJI Osmo footage to your Mac over Wi-Fi. Native macOS app: files, live control and USB webcam.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Your DJI Osmo camera, on your Mac. Wireless downloads, no phone app, no account.
Download your footage over Wi-Fi, control the camera and see it live, or use it as a webcam over USB. A native macOS app that looks like a piece of gear.
DJI's own app sends footage wirelessly to a phone only; to get it onto a computer it's a cable or a card reader. Osmotic lets the Mac talk to the camera directly, at about 33 MB/s with a Pocket 3.Read the full README ↗Your DJI Osmo camera, on your Mac. Wireless downloads, no phone app, no account.
Download your footage over Wi-Fi, control the camera and see it live, or use it as a webcam over USB. A native macOS app that looks like a piece of gear.
smithplus.github.io/Osmotic · made by smithplus
DJI's own app sends footage wirelessly to a phone only; to get it onto a computer it's a cable or a card reader. Osmotic lets the Mac talk to the camera directly, at about 33 MB/s with a Pocket 3.
The camera's card, over its own Wi-Fi. Thumbnails by day, filters for videos, photos, starred and new. Download New takes everything that isn't on your Mac yet; downloads resume if the link drops and never overwrite anything.
Start and stop recording, take photos, switch between Video, Photo, Slow-mo and Low Light, and watch the camera's picture live, all over Wi-Fi. Back in Files, what you just shot is already listed.
The Mac finds the camera over Bluetooth, gets its Wi-Fi password from it, joins its network and puts it in playback mode. Five lights show where it is. When you disconnect, the camera goes back to normal and your Mac goes back to your Wi-Fi.
Plug the camera in with USB-C and choose Webcam on it: the picture shows up in the Webcam tab, and in Zoom, Meet, FaceTime or OBS even with Osmotic closed. (Not yet tested on hardware.)
~/Downloads/DJI, one folder per day (you can turn that off), each file dated with the moment it was shot, so Finder and your editor sort it right..LRF proxy, not the full 4K file..DNG next to photos and the backup .WAV next to clips (on by default; turn them off in Settings).Osmotic-x.y.z.dmg, open it and drag Osmotic onto Applications.Later versions install themselves (Osmotic › Check for Updates…).
Requirements: macOS 15 Sequoia or later, Apple silicon or Intel, Bluetooth and Wi-Fi.
| Permission | Why |
|---|---|
| Bluetooth | Find the camera and pair with it |
| Location | macOS only tells apps the name of your Wi-Fi network if they have it; Osmotic uses the name to rejoin your network afterwards. Your location is never read or stored. |
| Local Network | Talk to the camera at 192.168.2.1 |
| Downloads folder | Save to ~/Downloads/DJI |
| Removable volumes | Read the camera's card when it is plugged in over USB |
| Camera | Show the picture in the Webcam tab (asked only once a camera is plugged in) |
| Notifications | Tell you when a download finishes |
No account, no analytics; nothing leaves your Mac except update checks with GitHub. See SECURITY.md.
| Camera | Files | Live | Tested with Osmotic |
|---|---|---|---|
| Osmo Pocket 3 | ✅ | ✅ | Yes: connect, list, download, record, modes, live view |
| Osmo Pocket 4 / 4 Pro | ✅ | ✅ | Not yet; same protocol, verified in Osmosis |
| Osmo Action 4 / 5 Pro / 6 | ✅ | No | Not yet; verified in Osmosis |
| Osmo Nano | ✅ | No | Not yet; verified in Osmosis |
If you try one of the untested cameras, a report with the technical log (Window › Technical Log, ⌥⌘L) helps a lot.
sequenceDiagram
participant Mac as Mac (Osmotic)
participant Cam as Osmo camera
Mac->>Cam: Bluetooth LE: pair, wake
Cam-->>Mac: its Wi-Fi name and password
Mac->>Cam: joins the camera's Wi-Fi
Mac->>Cam: UDP datalink (DUML): enter playback, list the card
Cam-->>Mac: file list (CompositePack)
Mac->>Cam: HTTP: thumbnails, previews, resumable downloads
Mac->>Cam: leave playback
Note over Mac: back on your Wi-Fi
While connected, the Mac uses the camera's Wi-Fi, so it has no Internet over Wi-Fi; Ethernet, or an iPhone sharing its connection over a cable, keeps you online. The protocol notes are in docs/PROTOCOL.md and docs/CONTROL.md.
What happens if I download the same clip twice? Nothing: it's skipped. Osmotic never replaces a file in your folder; an unfinished one resumes from where it stopped.
Does it delete anything from the camera? No. It never deletes or changes files already on the camera.
Something doesn't work. Open Window › Technical Log (⌥⌘L) and attach the file to an issue. The log leaves out your Wi-Fi password and network name.
Is there a manual? Yes: the guide covers every screen, the keyboard shortcuts and what to try when something fails.
One repository, three things: the app, the site and the tooling.
| Path | What |
|---|---|
Sources/OsmoticCore | the protocol, without UI (BLE, pairing, the UDP datalink, the file-list decoder, HTTP downloads, capture control, live-view reassembly) |
Sources/Osmotic | the SwiftUI app (CoreBluetooth, CoreWLAN, AVFoundation) |
Tests | the golden captures, the fake camera and the fake HTTP server |
site | the landing page (static HTML, CSS and JS; published by GitHub Pages) |
scripts | build, sign, release, screenshots, textures, icon, launch assets, SEO audit |
docs | the guide, status, architecture, protocol, launch kit |
Xcode 26 (Swift 6.2 or later).
git clone https://github.com/smithplus/Osmotic.git && cd Osmotic
swift test # 94 tests: protocol, decoder, downloads, a simulated Pocket 3
scripts/package_app.sh # build/Osmotic.app
open build/Osmotic.app
Sources/OsmoticCore: the protocol, without UI: BLE frames, pairing, the UDP datalink, the file-list decoder, HTTP downloads, capture control and live-view reassembly.Sources/Osmotic: the SwiftUI app (CoreBluetooth, CoreWLAN, AVFoundation).Tests: the decoder against 14 real captures from the Osmosis project, a fake camera over UDP, a misbehaving HTTP server and fuzzing for everything that comes off the network.Contributors and AI agents: start with CONTRIBUTING.md and CLAUDE.md (also AGENTS.md). Releases: scripts/release.sh X.Y.Z.
Osmotic is a native macOS port of Osmosis: the pairing flow, the camera's control protocol (DUML) and the file-list decoder are a Swift port of Konrad Iturbe's work, checked byte for byte against his captures. Thank you to everyone below.
Code this app is built from
Protocol research: the DJI OGs, dji-remote, osmo-download, DJI-Wifi-Connect, lib-osmo-ble, dji_protocol and reverse-engineering-dji.
Osmosis' testers, whose captures test this app too: Rhoenschrat, Juan Irache, GetHypoxic and Ave.
The same list is in the app: Settings › Credits.
Made by smithplus. If it saved you a cable, buy me a coffee. MIT. Osmotic is an independent project, not affiliated with or endorsed by DJI. "DJI" and "Osmo" are trademarks of their owners. The screenshots show demo data.