KEIBIDROP

KEIBIDROP connects two computers directly and encrypts everything end to end, with a hybrid ML-KEM-1024 and X25519 key exchange. Teleport mounts the other computer's folder on yours, so any program opens the files and only the bytes it reads cross the link. Direct transfer sends files with no cloud upload in between. The engine, the command-line tools and the desktop app are open source under AGPL-3.0.

KeibiDrop connection screen
Swap a code once, then save the contact

Teleport and direct transfer

KEIBIDROP has two ways to share. With Teleport on, the other computer's folder appears as a normal folder on yours: FUSE on Linux, macFUSE on macOS, WinFsp on Windows. Programs read the files on demand. In direct transfer, you drag files into the app and the other person saves what they need. Both are end-to-end encrypted. Before 0.5.0, Teleport was called virtual folder mode.

KeibiDrop direct transfer mode
Direct transfer: drag files in, the peer saves them
KeibiDrop Teleport mode
Teleport: the peer's folder mounted as a local directory

A real folder for any program

The Teleport mount is a POSIX filesystem. Finder, Explorer, a terminal, git, rsync and your IDE work on it unchanged. You can git clone into the shared folder and the other person runs git log on their side. When both computers change the same file, both versions are kept.

An edit moves only the regions that changed. Edit 2 MB inside a 1 GB image and KEIBIDROP reships 18.6 MB, verified byte exact by sha256. rsync over sshfs reships the whole gigabyte. Measured on loopback with an in-process pair and on-demand reads, 14 August 2026. A small edit costs about 16 to 19 MB whatever the file size: one read-ahead block plus the hash stream. A WAN adds round trips, not bytes. On a macOS receiver, same-size edits in place need live_collab = true.

Shared files in macOS Finder
The peer's files in Finder
Git operations on the Teleport mount
git clone, git log, git status on the shared mount

Folders from the other computer

In direct transfer, folders the other person shares show as cards you can open. Open one, then save single files or the whole folder.

Browsing a git repo in KeibiDrop
A git repository received from a peer

Features

No size limit

There is no upload limit. Transfers resume after a dropped connection, and an interrupted save leaves the file intact.

Hybrid post-quantum key exchange

ML-KEM-1024 with X25519 for the key exchange, and AES-256-GCM or ChaCha20-Poly1305 for the data, negotiated per connection. Keys rotate during long sessions.

Direct when the network allows

Peers find each other on a LAN with mDNS and connect directly, also over IPv6. Behind NAT, an encrypted bridge relay forwards the traffic. It cannot decrypt it.

No account

Swap a code once or send an invite link, then save the contact. Saved contacts reconnect with one click, or by themselves with Auto on.

Read on demand

Teleport fetches what a program reads, when it reads it. Opening a large file does not wait for the whole file.

Browser peer

The other person can join from web.keibidrop.com in a browser tab, with nothing to install.

Identity in the keychain

Your key pair persists so contacts keep working, encrypted with a per-install key in the OS keychain. Incognito mode saves nothing.

Always-on peer

A NAS or home server runs the Docker image and keeps a folder available. Unraid lists it in Community Applications.

Who uses it

Developers and sysadmins

Script it with kd, drive it from an AI agent over MCP, embed the C library. JSON output and stable exit codes.

Security teams

Hybrid post-quantum key exchange, keys in the OS keychain, relays that see ciphertext only. The code is open for audit under AGPL-3.0.

Investigators and video teams

Mount a case folder or a shoot from another machine and read only what you open. See DFIR and post-production.

Everyone else

Send photos, videos and project folders to a friend. Open the app, swap codes, drag files in.

Connection paths. On the same LAN, peers find each other with mDNS and connect directly. Over the internet with IPv6, they connect directly to global addresses. When neither works (NAT, IPv4 only), both open outbound connections to a bridge relay that forwards the encrypted stream. A computer that accepts inbound connections uses a port between 26000 and 27000, and drops connections from internet scanners.

A signaling relay passes encrypted registration blobs so that peers can find each other. Neither relay can read the data: every connection is encrypted end to end with keys from the hybrid handshake.

Connecting two computers

  1. Install on both

    The desktop app or the Android app, or a browser tab on the other side.

  2. Swap a code once

    Send your code over any chat, or send an invite link. On the same network, connect with one click instead.

  3. Connect and save the contact

    Both press Connect, then save the contact. The next connection is one click, or automatic with Auto on.

  4. Share

    Drag files into the window, use the CLI, or open the Teleport folder.

Screenshots

Teleport: the shared files as a folder

Teleport mode, connected Teleport mode, file browser Teleport mode with several files

Direct transfer: drag, drop, save

Direct transfer view Transfer in progress Completed transfers

Interfaces

Desktop app

Rust and Slint native UI on macOS, Windows and Linux. New design in 0.5.0, with help in plain words.

Android

From our F-Droid repository, signed by us.

Browser

web.keibidrop.com joins a session from any browser tab.

Interactive CLI

keibidrop-cli: a terminal prompt on the same engine.

Agent CLI

kd: a daemon with one JSON line per command over a Unix socket, and named exit codes. For scripts and AI agents.

MCP server

kdmcp: the same engine over MCP on stdio, with 17 tools. In the MCP registry as io.github.KeibiSoft/keibidrop.

C library

libkeibidrop.a and libkeibidrop.h. Call it from Rust, Swift, Python or any language with a C FFI.

KeibiDrop interactive CLI session
Interactive CLI: register the peer, create a room, share files

The desktop app, keibidrop-cli, kd and kdmcp all support Teleport and direct transfer.

Under the hood

ML-KEM-1024 NIST post-quantum key encapsulation (FIPS 203), from the Go standard library crypto/mlkem.
X25519 Classical elliptic-curve exchange, combined with ML-KEM in a hybrid. The session key holds while either one holds.
AES-256-GCM, ChaCha20-Poly1305 Authenticated encryption for file data and control messages, negotiated per connection. AES-GCM uses AES-NI or the ARM crypto extensions.
Forward secrecy Session keys rotate after 1 GB or 1 million messages, on the TCP and QUIC lanes, during live transfers.
gRPC over TCP and QUIC Protocol Buffers over custom transport credentials, peer to peer. No certificate authorities.
FUSE filesystem cgofuse bindings to fuse3 on Linux, macFUSE on macOS and WinFsp on Windows.
IPv6 direct P2P Global unicast addresses connect directly, with no STUN or TURN.

Built with

Privacy

KEIBIDROP sends no analytics and no usage data. A report leaves your computer only when you press Report problem, and the attached log has personal details removed.

Identity is a key pair made on your computer. By default it persists, so saved contacts keep working, and it is encrypted with a per-install key in the OS keychain: Keychain on macOS, Secret Service on Linux, Credential Manager on Windows. Incognito mode makes a new identity and saves nothing.

The signaling relay stores encrypted registration blobs it cannot decrypt, indexed by a lookup token derived from the fingerprint, not the fingerprint itself. The bridge relay forwards ciphertext over outbound connections from both peers. Session keys rotate after 1 GB or 1 million messages, so a compromised key exposes only part of a session.

Install

Apps for macOS (Apple silicon and Intel), Windows 10 and 11, Linux (.deb) and Android are on the install page. The Mac app is signed and notarized by Apple. Each release publishes a SHA256SUMS file next to the downloads.

# macOS, Homebrew
brew tap keibisoft/keibidrop
brew trust keibisoft/keibidrop
brew install keibidrop

# Debian, Ubuntu: the latest .deb
wget -O keibidrop.deb $(curl -s https://api.github.com/repos/KeibiSoft/KeibiDrop/releases/latest \
  | grep -o 'https://[^"]*_amd64\.deb')
sudo apt install ./keibidrop.deb

# Snap: send and receive only. For Teleport, use the .deb
sudo snap install keibidrop

# Windows, Chocolatey
choco install keibidrop

Android: in F-Droid, add the repository https://fdroid.keibisoft.com/fdroid/repo/ and compare its fingerprint with the one on fdroid.keibisoft.com. A NAS runs the Docker image keibisoft/keibidrop, also at ghcr.io/keibisoft/keibidrop: run it on a NAS.

Teleport needs one driver on the mounting side: macFUSE on a Mac, WinFsp on Windows, nothing extra on Linux. Every install also carries keibidrop-cli and kd.

Automate with kd

kd runs the engine as a daemon. Every command prints one JSON line with an ok field, and exits 0 on success. On failure, the exit code and the code field name the reason.

# Terminal 1: the daemon runs in the foreground and prints your fingerprint as JSON
KD_SAVE_PATH=./saved KD_MOUNT_PATH=./mount ./kd start

# Terminal 2
./kd show fingerprint                 # send this to your peer
./kd register <peer-fingerprint>      # paste theirs
./kd connect                          # both peers; the role is picked automatically
./kd save-contact Alice               # next time: ./kd quick-connect <fingerprint>
./kd add ./report.pdf                 # share a file
./kd pull report.pdf ./out/report.pdf
./kd status
./kd disconnect
./kd stop

With KD_MOUNT_PATH set, the mount path is a live Teleport folder: ls, cat and cp work on it. Guides: automate with kd and the agent integration guide.

MCP server

kdmcp serves the same engine over MCP on stdio, with 17 tools, among them pair, list, send, pull, poll progress, wait for events and disconnect. Claude Desktop installs it from the MCP registry as io.github.KeibiSoft/keibidrop. Other clients take an mcpServers entry, or open the keibidrop-mcp.mcpb bundle from the latest release, which carries the server for macOS, Windows and Linux.

Embed the C library

The engine compiles to a C static library, libkeibidrop.a with libkeibidrop.h. Call it from Rust, Swift, Python or any language with a C FFI. The desktop app uses it this way.

KD_Initialize(relay, inbound, outbound, mount, save, fuse, prefetch, push);
KD_AddPeerFingerprint(peer_fp);
KD_Connect();
KD_AddFile("/path/to/file.pdf");
KD_SaveFileByName("file.pdf", "/save/path/file.pdf");

A closed-source product that embeds or links the engine needs a commercial license. Write to marius@keibisoft.com.

Conference talk

Pass the SALT 2026, Lille. KEIBIDROP: Post-Quantum Encrypted Peer-to-Peer File Transfer Without the Cloud. A walk through the architecture: the post-quantum handshake, the on-demand FUSE filesystem, hiding wide-area latency, and the open problems that remain.

Watch the recording · Slides (PDF) · Talk page

Engineering blog

Architecture and cryptography

Filesystem

Performance over long links

Databases

Tools, process and releases

Limits

Open source and licensing

Since 0.5.0, the engine, the command-line tools and the desktop app are licensed AGPL-3.0-only. Releases 0.4.8 and older keep the licenses they shipped with. A closed-source product that embeds or links the engine needs a commercial license. The mobile apps and the brand assets are proprietary. The details are in LICENSING.md.

GitHub repository keibidrop.com Try it in a browser FAQ Compare Commercial license

Commercial licensing, priority support, custom integrations and private relay hosting are available for organizations.