CLI Companion
send, watch, and status — three commands that let you push files, pipe output,
sync your clipboard, and check server health from your terminal. No browser needed.
Install globally once and use from anywhere:
npm install -g instbyte
Or use without installing:
npx instbyte send ./build.zip
How it fits together
npx instbyte stays exactly as it always was — one command, server is running,
team opens the URL in their browser.
The CLI is the layer on top. On the machine running the server, commands
auto-discover the URL and just work. On teammate machines, set INSTBYTE_URL
once in your shell profile and every command works the same way.
Machine A — server:
npx instbyte
Machine A, another terminal:
instbyte send ./build.zip ← no flags needed
Machine B — teammate:
export INSTBYTE_URL=http://192.168.29.64:3000
instbyte send ./build.zip ← same experience
instbyte send
Send a file
instbyte send ./build.zip --channel assets
instbyte send ./error.log --channel projects
Send text or a link
instbyte send "http://staging.myapp.com"
Pipe anything in
git log --oneline -20 | instbyte send
npm run build 2>&1 | instbyte send --channel projects
docker logs my-container | instbyte send
instbyte watch
Watches a channel. New text is silently copied to your clipboard. File items print
the download URL. Reconnects automatically if the server restarts.
instbyte watch # general channel, clipboard mode
instbyte watch --channel projects # specific channel
instbyte watch --output # stdout instead of clipboard
instbyte watch --output | grep error # pipeable
instbyte status
instbyte status
✓ Instbyte v1.12.0 running at http://192.168.29.64:3000
Uptime: 2h 14m
Connected: 3 users
Channels: general, projects, assets, temp
Auto-discovery
The server writes instbyte-data/.runtime.json on startup. The CLI finds it by
walking up from your current directory — the same way git finds .git. On the
happy path you never type a URL.
Priority order for every command:
- --server / --passphrase flags
- INSTBYTE_URL / INSTBYTE_PASS environment variables
- instbyte-data/.runtime.json found by walking up from cwd
- http://localhost:3000 fallback
CI/CD
Set INSTBYTE_URL and INSTBYTE_PASS once as secrets — then every script just works:
# GitHub Actions
- name: Share build artifact
run: npx instbyte send ./dist/app.zip --channel assets
env:
INSTBYTE_URL: ${{ secrets.INSTBYTE_URL }}
INSTBYTE_PASS: ${{ secrets.INSTBYTE_PASS }}
// package.json scripts
{
"scripts": {
"build": "webpack && instbyte send ./dist/build.zip --channel assets",
"test": "vitest run 2>&1 | instbyte send --channel projects"
}
}
```bash
---
All flags
┌─────────────────────┬─────────────┬─────────────────┬──────────────────────────────────────┐
│ Flag │ Commands │ Default │ Description │
├─────────────────────┼─────────────┼─────────────────┼──────────────────────────────────────┤
│ --server <url> │ all │ auto-discovered │ Server URL │
├─────────────────────┼─────────────┼─────────────────┼──────────────────────────────────────┤
│ --channel <name> │ send, watch │ general │ Target channel │
├─────────────────────┼─────────────┼─────────────────┼──────────────────────────────────────┤
│ --passphrase <pass> │ all │ auto-discovered │ Passphrase if auth is enabled │
├─────────────────────┼─────────────┼─────────────────┼──────────────────────────────────────┤
│ --uploader <name> │ send │ OS username │ Display name for sent items │
├─────────────────────┼─────────────┼─────────────────┼──────────────────────────────────────┤
│ --output │ watch │ — │ Print to stdout instead of clipboard │
├─────────────────────┼─────────────┼─────────────────┼──────────────────────────────────────┤
│ --quiet │ send │ — │ Suppress confirmation output │
└─────────────────────┴─────────────┴─────────────────┴──────────────────────────────────────┘
---
Also in this release
- /health endpoint now includes live connected user count
- 214 tests (up from 195)