vnsh
v2.1.0
Published
The Ephemeral Dropbox for AI - CLI tool for encrypted file sharing
Downloads
32
Maintainers
Readme
vnsh
The Ephemeral Dropbox for AI - CLI tool for host-blind encrypted sharing.
Features
- Host-blind encryption: AES-256-CBC encryption happens locally
- Server never sees your keys: Keys travel only in the URL fragment
- Ephemeral: Data vaporizes after 24 hours (configurable)
- Simple: Pipe anything, get a shareable URL
Installation
# Zero-install (just run it)
echo "hello" | npx vnsh
# Or install globally
npm install -g vnshCLI Usage
Upload content
# Pipe text
echo "hello world" | vn
# Upload a file
vn secret.env
# Pipe from command
git diff | vn
cat crash.log | vn
docker logs app | vn
# Set custom expiry (1-168 hours)
vn -t 1 temp.txt # Expires in 1 hourRead content
# Decrypt and display content from a vnsh URL
vn read "https://vnsh.dev/v/abc123#k=...&iv=..."Options
-t, --ttl <hours> Set expiry time (default: 24, max: 168)
-p, --price <usd> Set price for x402 payment
-H, --host <url> Override API host
-l, --local Output encrypted blob locally (no upload)
-v, --version Show version
-h, --help Show helpProgrammatic Usage
import { share, read, readString } from 'vnsh';
// Share content
const url = await share('Hello, World!');
console.log(url);
// https://vnsh.dev/v/abc123#k=...&iv=...
// Share with options
const url2 = await share(buffer, { ttl: 1 }); // 1 hour expiry
// Read content as Buffer
const buffer = await read(url);
// Read content as string
const text = await readString(url);Environment Variables
VNSH_HOST- Override the default API host (default:https://vnsh.dev)
Security
- Encryption keys are generated locally and never sent to the server
- Keys travel only in the URL fragment (
#k=...), which is never transmitted to servers - The server stores only encrypted binary blobs
- All data vaporizes after the configured TTL
License
MIT
