Dukto
USING DUKTO

CLI reference

Use the same local transfer engine with commands that fit your scripts.

Discover devices

The output lists the ID, name, platform, addresses, port, and protocol version of receivers discovered through mDNS.

TERMINAL
dukto --json peers --timeout 10
Copy

Receive

By default, the CLI asks for approval for each incoming transfer. Use a different port from the desktop app when both run on the same computer.

TERMINAL
dukto --name Studio receive --destination ./received --port 4243
Copy

Explicit automation

--accept authorizes incoming transfers for this process only. --once exits after one attempt. Without an interactive terminal, --accept is required. Use a dedicated destination folder for tests.

TERMINAL
dukto --json receive --destination ./received --port 4243 --accept --once
Copy

Send by ID or address

Use an IPv4 address. --timeout sets the total send deadline in seconds (default: 300). On a receiver, it limits each active connection, not idle wait time.

TERMINAL
dukto send --peer ID -- ./folder

# Use an address if discovery is unavailable
dukto send --address 192.168.0.16:4243 -- ./folder
Copy

Read the result

--json emits one JSON event per line. A sent event includes acknowledged: true only after the receiver confirms completion. Exit code 0 means success; failures return a nonzero code. A continuous receiver reports receive_error and continues. Use --data-dir to isolate device identity data.

Development version documentationSuggest an improvement
KEEP EXPLORINGNetwork and discovery