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.
dukto --json peers --timeout 10CopyReceive
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.
dukto --name Studio receive --destination ./received --port 4243CopyExplicit 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.
dukto --json receive --destination ./received --port 4243 --accept --onceCopySend 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.
dukto send --peer ID -- ./folder
# Use an address if discovery is unavailable
dukto send --address 192.168.0.16:4243 -- ./folderCopyRead 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.