Make terminal personal file transfers as simple as `cp`
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.