Skip to content
vmup
DocsLearn

For developers who run coding agents over SSH

vmup gives coding agents one folder path on the remote hostvmup gives coding agents one folder path on the remote host

Send screenshots, PDFs, recordings, and other local files to the VM your coding agent is running on. One SSH upload. Paste the prompt; the folder path is inside it.

npm i -g @nyxsky404/vmup

Then

vmup init
vmup shot.png notes.pdf

Node 18+ and OpenSSH · First upload

Paste the printed prompt into the agent. It is already on your clipboard.
Uploaded 3 files → default
Agent folder: ~/vmup/agents-20260911-140128-a1b2c3d4/

Prompt:
Please inspect all files in ~/vmup/agents-20260911-140128-a1b2c3d4/

Laptop

local files

  • shot.png
  • notes.pdf
  • clip.mov

You

SSH

Remote host

~/vmup/agents-…/

  • image-01.png
  • file-01.pdf
  • video-01.mov

Coding agent

One SSH upload. One folder on the VM. Paste that path into the agent.

The agent inspects a directory. Your laptop is not that directory.

A coding agent on a VM reads files by path. The screenshot, the PDF, and the recording sit on your machine. Until they exist on the host, the agent has nothing to open.

scp moves one file. A morning of screenshots, a notes PDF, and a screen recording is a different job: stage a batch, upload it, hand back a prompt with the folder path, delete it when you are done. vmup does that job.

Why vmup

  • No extra daemon

    Files go over ssh you already have. No browser upload, no agent plugin.

  • The agent only needs a directory

    You paste the prompt. You do not configure Cursor, Claude Code, or anything else.

  • One path per batch

    Screenshots, PDFs, and recordings stay in one listing the agent can inspect.

  • Expires by default

    Remote batches expire. Default TTL is 5 minutes.

How it works

  1. 01

    Collect

    Files as arguments, the native picker, the clipboard loop, or a watched folder.

  2. 02

    Upload

    OpenSSH carries the batch. A spinner reports uploaded bytes against the total.

  3. 03

    Paste the prompt

    The prompt lands on your clipboard with the remote folder path inside it. Stay in the thread.

Choose how files enter vmup

Every mode ends the same way: one remote folder, one prompt, clipboard already loaded.

MethodCommandBest for

Files

vmup shot.png notes.pdf

One-off uploads. A directory sends its immediate files.

Picker

vmup

Native multi-select when the files are already on disk.

Clipboard

vmup --clip

Screenshots and copied files. macOS images need pngpaste.

Watch

vmup watch

Files added after start. Default folder is Desktop on macOS.

Temporary by design

Remote batches expire after 5 minutes. Temporary files should not live forever on the VM. Change the TTL if a run needs longer.

A sweeper at ~/vmup/.cleanup.sh runs every minute and removes expired agents-* directories. It does not wipe the whole remote root. After you change TTL, run vmup check --sweeper so the remote script matches.

vmup prune deletes expired batches from here. --all deletes every remote batch now, ignoring TTL. --id deletes one. --local also clears leftover staging under ~/.cache/vmup/. Successful uploads already delete that cache unless you pass --keep-local.

Facts

  • npm package @nyxsky404/vmup; the command is vmup
  • Node 18+ and OpenSSH (ssh) on your PATH
  • Default remote root ~/vmup; batch id agents-<date>-<time>-<uuid>
  • Staged names image-01, video-01, file-01 so the listing is stable
  • Default TTL 5 minutes; sweeper cron every minute; prune --all wipes now
  • Default max 200 MB per file; all types accepted unless you tighten config
  • --json on stdout for scripts; spinner still on stderr
  • After upload, the prompt is copied (clipboard_copy = "prompt"). Set path or none in config.

Install, init, send a file

The package is @nyxsky404/vmup. The binary is vmup.

npm i -g @nyxsky404/vmup

Install · First upload · Learn · Docs

LearnPaste over SSHFirst uploadScreenshots to agentClipboard for agentsvs scp / rsync

Maintained by nyxsky404 on GitHub. MIT

GitHubnpmIssuesSecurityChangelog