One config file, shared by the desktop app, keibidrop-cli, and kd.
The config file is at the same relative path on every platform:
| Platform | Path |
|---|---|
| macOS | /Users/<you>/.config/keibidrop/config.toml |
| Linux | /home/<you>/.config/keibidrop/config.toml |
| Windows | C:\Users\<you>\.config\keibidrop\config.toml |
The file is created on the first run, with comments. All three interfaces read it. Restart after you edit it.
Source: pkg/config/config.go.
Values resolve in this order. Later wins:
| Key | Default | Meaning |
|---|---|---|
relay | https://keibidroprelay.keibisoft.com/ | Relay server used for pairing over the internet. |
save_path | ~/KeibiDrop/Received | Where received files are saved. |
mount_path | ~/KeibiDrop/Mount | FUSE mount point. On Windows, use a free drive letter such as K:. The Windows mount point must not already exist. |
log_file | per platform | Log file path. Defaults: macOS ~/Library/Logs/KeibiDrop/keibidrop.log; Linux and Windows ~/.local/share/keibidrop/keibidrop.log. |
inbound_port | 26431 | TCP listen port for peer connections. Must be in 26000-27000. |
outbound_port | 26432 | TCP outbound port. Must be in 26000-27000. |
bridge_addr | bridge.keibisoft.com:26600 | Bridge relay used when a direct connection fails. |
strict_mode | false | Disable the bridge fallback. Connections are direct or they fail. |
no_fuse | false | Disable the FUSE mount. The app runs in direct-transfer mode. |
incognito | false | Ephemeral keys every session. No identity or contacts on disk. |
prefetch_on_open | false | Fully prefetch any file when it is opened, whatever its size. Overrides prefetch_auto_mb. |
prefetch_auto_mb | 0 | Background-prefetch files at or above this many MB on open. 0 is off. Off by default: on a constrained or relayed link, bulk prefetch saturates the pipe and freezes interactive seeks. |
read_ahead_window_mb | 64 | Cap in MB for sequential read-ahead, so streaming over a high-latency link does not stall at block boundaries. Self-tunes below the cap. 0 disables. |
push_on_write | false | Experimental collaborative option. |
live_collab | false | macOS only in effect: show a peer's same-size in-place edits live (macFUSE auto_cache). Warning: this can corrupt files written via mmap on the mount, such as git's index. Keep false on machines that run git on the mount. Linux and Windows handle both cases regardless. |
passphrase_protect | false | Encrypt the identity with a passphrase (Argon2id). The app then asks for the passphrase at startup. |
Each setting has two names. The first non-empty value wins. Both names do the same thing.
| Setting | Names |
|---|---|
| Relay URL | KEIBIDROP_RELAY, KD_RELAY |
| Save path | TO_SAVE_PATH, KD_SAVE_PATH |
| Mount path | TO_MOUNT_PATH, KD_MOUNT_PATH |
| Log file | LOG_FILE, KD_LOG_FILE |
| Inbound port | INBOUND_PORT, KD_INBOUND_PORT |
| Outbound port | OUTBOUND_PORT, KD_OUTBOUND_PORT |
| Bridge address | BRIDGE_ADDR, KD_BRIDGE |
| Strict mode | STRICT_MODE, KD_STRICT |
| Disable FUSE | NO_FUSE, KD_NO_FUSE |
| Incognito | KEIBIDROP_INCOGNITO, KD_INCOGNITO |
| Passphrase protection | KEIBIDROP_PASSPHRASE_PROTECT, KD_PASSPHRASE_PROTECT |
| Prefetch on open | KEIBIDROP_PREFETCH_ON_OPEN, PREFETCH_ON_OPEN_ENV |
| Prefetch threshold (MB) | KEIBIDROP_PREFETCH_AUTO_MB, PREFETCH_AUTO_MB_ENV |
| Read-ahead window (MB) | KEIBIDROP_READ_AHEAD_WINDOW_MB, READ_AHEAD_WINDOW_MB_ENV |
| Push on write | KEIBIDROP_PUSH_ON_WRITE, PUSH_ON_WRITE_ENV |
| Live collaboration | KEIBIDROP_LIVE_COLLAB, LIVE_COLLAB_ENV |
Two more variables sit outside the config file:
| Variable | Meaning |
|---|---|
KEIBIDROP_CONFIG_DIR | Moves the whole config directory: config, identity, and contacts. This is the supported way to run a second instance. See How to run two instances. |
KD_SOCKET | The kd daemon socket path. Default /tmp/kd.sock. Only kd reads it. |
Rule: 0, false, no, and off (any case) mean false. Any other non-empty value means true. So NO_FUSE=false keeps FUSE on, and NO_FUSE=1 turns it off.
To run two instances on one machine, give each one its own config directory, its own ports, and, for kd, its own socket:
KEIBIDROP_CONFIG_DIR=~/.config/kd-alice \ KD_SOCKET=/tmp/kd-alice.sock \ KD_INBOUND_PORT=26001 KD_OUTBOUND_PORT=26002 \ kd start
The full recipe is in How to run two instances.
The config file is not rewritten on upgrade. A key added in a new release is absent from your existing file and takes its built-in default. To set it, add the key to the file yourself.
Example: an older install that never had read_ahead_window_mb uses the default 64. Add the line to change it:
read_ahead_window_mb = 128