
Highlights (aka "Why making another file-transfer tool?"):
Other features:
See also comparison table with similar tools.
On any of your machine, run
curl -fsS https://acp.deno.dev/get | sh
It sets up the current machine by downloading an executable and generating an identity.
By default the install path is /usr/local/bin; you can change it by curl -fsS 'https://acp.deno.dev/get?dir=/path/to/bin' | sh
At the end, it prints out the command for setting up your other machines.
You can run acp --setup any time you want to see the command.
Currently there is no installation script for PowerShell (PR welcomes :)
You can download the released executable and put it on your Path.
Then run acp --setup to generate an identity.
# sender
acp path/to/files
# receiver, to $(pwd)
acp
# or receive to/as specified target
acp -d path/to/target
You can run the sender and receiver in arbitrary order.
Whenever both sides are up and running, they will attempt to establish a P2P connection.
If you see messages such as rendezvous timeout, at least one side is behind a firewall or a strict NAT that prohibits P2P connection.
For advanced configuration and self-hosting, check out the docs here.
| trzsz | scp | acp | pcp | croc | |
|---|---|---|---|---|---|
| can share files to other people / |
receiver needs to enter a token | | | | O | O | | LAN | O | O | O | O | O | | WAN (local ↔︎ remote) | O | O | O | P | O | | WAN (remote ↔︎ remote) | | P | O | P | O | | relay | | | P | P | O | | p2p | | | O | O | O | | distributive | | | O | O | |
O: supported; P: partial support or limited usablity; (void): not supported or not relevant
Don't judge a tool based on its apparent set of features. This table only lists a few features, intending to differentiate the target scenarios of these tools.
Apart from the dependencies listed in go.mod, this project is also built upon
BroadcastChannel API that makes "serverless" TCP hole-punching possibleThis project is not associated with Deno Land Inc. or Tailscale Inc.