agentleFS
OneDro1dOneDro1d/dark-factory/skills/coder-file-transfer/SKILL.md

coder-file-transfer

Skill4 starsChanged 2 months agoApache-2.0View on GitHub

Upload or download large files to/from a Coder CDE workspace using the coder CLI. Use when transferring files, directories, build artifacts, datasets, or binaries to a Coder workspace, when `rsync -e "coder ssh"` fails or desyncs, or when a copy over `coder ssh` hangs/corrupts. Triggers on "upload to coder", "copy files to workspace", "coder scp", "coder rsync", "transfer to CDE", "push files to my workspace", "coder config-ssh".

  • Reads credentials
  • Installs packages

The file

We split this skill into the rules it gives an agent

1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If it says openrsync, install GNU rsync:

    line 40

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Coder Workspace File Transfer

Move large files to (or from) a Coder Cloud Development Environment reliably. The naive path — rsync -e "coder ssh" — is broken on macOS. Use a coder config-ssh host alias with a protocol-clean, PTY-free SSH channel instead.

When to use

  • Uploading a directory, dataset, build artifact, or binary to a Coder workspace.
  • rsync -e "coder ssh" fails, desyncs mid-transfer, or hangs.
  • A copy over coder ssh corrupts or never completes.
  • You need a resumable transfer over a flaky dev tunnel.

The one-liner

coder config-ssh                                          # one-time per machine
rsync -avP -e "ssh -T" /local/dir <workspace>.coder:/remote/target/dir/

Instructions

  1. Generate SSH host aliases (one-time per machine/workspace):
    coder config-ssh
    This adds host entries to ~/.ssh/config. Note the alias for your workspace from the output — typically <workspace>.coder (e.g. workspace Loom → host Loom.coder).
  2. Confirm you have GNU rsync (macOS ships the incompatible openrsync):
    rsync --version
    If it says openrsync, install GNU rsync:
    brew install rsync
  3. Ensure the remote target directory exists:
    coder ssh <workspace> -- mkdir -p /remote/target/dir
  4. Transfer — preferred (resumable):
    rsync -avP -e "ssh -T" /local/dir <workspace>.coder:/remote/target/dir/
    • -a archive, -v verbose, -P = --partial --progress → resumable.
    • -e "ssh -T" disables PTY allocation — the essential fix.
  5. Transfer — fallback (no resume):
    scp -r /local/dir <workspace>.coder:/remote/target/dir/
  6. Download (reverse direction) — swap the arguments:
    rsync -avP -e "ssh -T" <workspace>.coder:/remote/dir ./local/target/

What NOT to do

  • ❌ rsync -e "coder ssh" src host:dst — macOS openrsync desyncs against the remote GNU rsync; even with GNU rsync, coder ssh's PTY corrupts the byte stream.
  • ❌ Omitting -e "ssh -T" — the default TTY allocation breaks rsync/tar pipelines.
  • ❌ Trusting the macOS built-in rsync — always verify rsync --version reports GNU.

Why this works

coder config-ssh turns the Coder tunnel into a standard SSH host. Any TCP-clean SSH tool (rsync, scp, sftp) then works directly, instead of being wrapped by coder ssh, which forces a PTY. Removing the PTY (ssh -T) and using GNU rsync's protocol gives a clean binary channel that survives large, resumable transfers.

Reference

Full write-up with the failure matrix and a concrete Loom example: docs/coder-large-file-upload.md.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.