escp copies files over SSH like scp, but skips files matched by a .scpignore file.
.scpignoresupport with.gitignore-style patterns.- Native SSH transfer using
golang.org/x/crypto/ssh. - Copies files and empty directories.
Requires Go 1.25 or newer.
git clone https://github.com/Agent-Hellboy/escp.git
cd escp
go build -o escpCreate .scpignore in the directory where you run escp:
*.log
temp/
/build
!keep.logCopy a directory:
./escp ./project user@host:/remote/pathUse a custom SSH port:
./escp ./project user@host:2222:/remote/pathSSH auth uses your agent, ESCP_SSH_PASSWORD, or unencrypted default keys in ~/.ssh. The remote host must exist in ~/.ssh/known_hosts.
go test ./...Remote E2E tests are opt-in:
ESCP_E2E_SSH_URL='user:password@host[:port]' go test -v ./...This project is still rough. Please test it and contribute fixes.
MIT