Docs / Reference

Configuration Reference

One config file, shared by the desktop app, keibidrop-cli, and kd.

File location

The config file is at the same relative path on every platform:

PlatformPath
macOS/Users/<you>/.config/keibidrop/config.toml
Linux/home/<you>/.config/keibidrop/config.toml
WindowsC:\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.

Precedence

Values resolve in this order. Later wins:

  1. Built-in defaults
  2. The config file
  3. Environment variables

Config file keys

KeyDefaultMeaning
relayhttps://keibidroprelay.keibisoft.com/Relay server used for pairing over the internet.
save_path~/KeibiDrop/ReceivedWhere received files are saved.
mount_path~/KeibiDrop/MountFUSE mount point. On Windows, use a free drive letter such as K:. The Windows mount point must not already exist.
log_fileper platformLog file path. Defaults: macOS ~/Library/Logs/KeibiDrop/keibidrop.log; Linux and Windows ~/.local/share/keibidrop/keibidrop.log.
inbound_port26431TCP listen port for peer connections. Must be in 26000-27000.
outbound_port26432TCP outbound port. Must be in 26000-27000.
bridge_addrbridge.keibisoft.com:26600Bridge relay used when a direct connection fails.
strict_modefalseDisable the bridge fallback. Connections are direct or they fail.
no_fusefalseDisable the FUSE mount. The app runs in direct-transfer mode.
incognitofalseEphemeral keys every session. No identity or contacts on disk.
prefetch_on_openfalseFully prefetch any file when it is opened, whatever its size. Overrides prefetch_auto_mb.
prefetch_auto_mb0Background-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_mb64Cap 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_writefalseExperimental collaborative option.
live_collabfalsemacOS 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_protectfalseEncrypt the identity with a passphrase (Argon2id). The app then asks for the passphrase at startup.

Environment variables

Each setting has two names. The first non-empty value wins. Both names do the same thing.

SettingNames
Relay URLKEIBIDROP_RELAY, KD_RELAY
Save pathTO_SAVE_PATH, KD_SAVE_PATH
Mount pathTO_MOUNT_PATH, KD_MOUNT_PATH
Log fileLOG_FILE, KD_LOG_FILE
Inbound portINBOUND_PORT, KD_INBOUND_PORT
Outbound portOUTBOUND_PORT, KD_OUTBOUND_PORT
Bridge addressBRIDGE_ADDR, KD_BRIDGE
Strict modeSTRICT_MODE, KD_STRICT
Disable FUSENO_FUSE, KD_NO_FUSE
IncognitoKEIBIDROP_INCOGNITO, KD_INCOGNITO
Passphrase protectionKEIBIDROP_PASSPHRASE_PROTECT, KD_PASSPHRASE_PROTECT
Prefetch on openKEIBIDROP_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 writeKEIBIDROP_PUSH_ON_WRITE, PUSH_ON_WRITE_ENV
Live collaborationKEIBIDROP_LIVE_COLLAB, LIVE_COLLAB_ENV

Two more variables sit outside the config file:

VariableMeaning
KEIBIDROP_CONFIG_DIRMoves 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_SOCKETThe kd daemon socket path. Default /tmp/kd.sock. Only kd reads it.

Boolean values

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.

Multiple instances

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.

Upgrades

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