# KeibiDrop Quickstart Guide Get two peers connected and sharing files in 5 minutes. ## Prerequisites - Go 1.24+ installed - macFUSE (macOS), WinFsp (Windows), or fuse3 (Linux) for FUSE mode - IPv6 connectivity between both devices ## Build ```bash git clone https://github.com/KeibiSoft/KeibiDrop.git cd KeibiDrop make build-kd # Agent CLI (recommended for automation) make build-cli # Interactive CLI make build-rust # Desktop GUI (requires Rust toolchain) ``` ## Quick Start (Agent CLI -- kd) ### Terminal 1: Start the daemon ```bash # No-FUSE mode KD_SAVE_PATH=./received KD_NO_FUSE=1 ./kd start # FUSE mode (recommended) KD_SAVE_PATH=./saved KD_MOUNT_PATH=./mount ./kd start ``` The daemon prints its fingerprint on startup as JSON: ```json {"ok":true,"data":{"fingerprint":"abc123...","fuse":true,"socket":"/tmp/kd.sock"}} ``` ### Terminal 2: Connect to a peer ```bash # Get your fingerprint ./kd show fingerprint # Register your peer's fingerprint (received out-of-band) ./kd register "peer-fingerprint-here" # One side creates, the other joins ./kd create # blocks until peer joins # OR ./kd join # on the other side ``` ### Share files **FUSE mode** (after connecting): ```bash # Check mount path ./kd status # look for "mount_path" in the response # Peer's files appear in the mount ls ./mount/ cat ./mount/readme.txt # Share a file (copy into mount) cp ./myfile.pdf ./mount/ ``` **No-FUSE mode:** ```bash ./kd add ./myfile.pdf # share a file ./kd list # see all files ./kd pull report.pdf ./report.pdf # download from peer ``` ### Disconnect and stop ```bash ./kd disconnect # keys rotate, new fingerprint generated ./kd stop # shutdown daemon ``` ## Quick Start (Interactive CLI) ```bash export KEIBIDROP_RELAY=https://keibidroprelay.keibisoft.com export TO_SAVE_PATH=./SaveAlice TO_MOUNT_PATH=./MountAlice ./keibidrop-cli keibidrop> register keibidrop> create keibidrop> add /path/to/file.pdf keibidrop> list keibidrop> disconnect ``` ## Running Two Instances on One Machine Use different ports and sockets: ```bash # Terminal 1: Alice KD_SAVE_PATH=./SaveAlice KD_NO_FUSE=1 \ KD_INBOUND_PORT=26001 KD_OUTBOUND_PORT=26002 \ KD_SOCKET=/tmp/kd-alice.sock ./kd start # Terminal 2: Bob KD_SAVE_PATH=./SaveBob KD_NO_FUSE=1 \ KD_INBOUND_PORT=26003 KD_OUTBOUND_PORT=26004 \ KD_SOCKET=/tmp/kd-bob.sock ./kd start # Terminal 3: Connect them KD_SOCKET=/tmp/kd-alice.sock ./kd show fingerprint KD_SOCKET=/tmp/kd-bob.sock ./kd show fingerprint KD_SOCKET=/tmp/kd-alice.sock ./kd register KD_SOCKET=/tmp/kd-bob.sock ./kd register KD_SOCKET=/tmp/kd-alice.sock ./kd create & KD_SOCKET=/tmp/kd-bob.sock ./kd join ``` ## Environment Variables | Variable | Description | Default | |---|---|---| | KD_RELAY | Relay server URL | https://keibidroprelay.keibisoft.com | | KD_INBOUND_PORT | TCP listen port (26000-27000) | 26431 | | KD_OUTBOUND_PORT | TCP outbound port (26000-27000) | 26432 | | KD_SAVE_PATH | Where to save received files | (required) | | KD_MOUNT_PATH | FUSE mount point directory | (optional) | | KD_NO_FUSE | Disable FUSE (any value) | (unset) | | KD_LOG_FILE | Log file path | stderr | | KD_SOCKET | Unix socket path | /tmp/kd.sock | ## Related Pages - [KeibiDrop Overview](keibidrop.md) -- What it is and why - [Agent CLI Guide](keibidrop-agent-guide.md) -- Full kd reference - [API Reference](keibidrop-api-reference.md) -- All commands and JSON output - [FUSE vs No-FUSE](keibidrop-fuse-vs-nofuse.md) -- Choosing the right mode - [WAW Index](index.md) -- All pages