Install
$ agentstack add mcp-raullenchai-vnsh Open-source listing — not yet scanned by AgentStack. Follow the source repository for install instructions.
Security review
⚠ Flagged1 finding(s); flagged for manual review. · v0.1.0 How review works →
- • Prompt-injection patterns
- • Secret / credential exfiltration
- • Dangerous shell & filesystem operations
- • Untrusted network calls
- • Known-malicious package signatures
- high Pipes remote content directly into a shell (remote code execution).
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
vnsh
The Ephemeral Dropbox for AI
Website • Quick Start • How It Works • Self-Hosting • API
What is vnsh?
Stop pasting walls of text into Claude. Pipe your logs, diffs, and images into a secure, host-blind URL. The server sees nothing. The data vaporizes in 24 hours.
# Pipe anything to vnsh, get a secure link
git diff | vn
# https://vnsh.dev/v/aBcDeFgHiJkL#R_sI4DHZ_6jNq6yqt2ORRDe9QZ5xQB6hIRLWHVFa8v8
Handles any context your AI needs:
- 🖼️ Screenshots — UI bugs, error dialogs, terminal output
- 📜 Logs — 5000+ lines of server errors (too long for copy-paste)
- 🔄 Git Diffs — Complex PR reviews, multi-file changes
- 📦 Binaries — PDFs, CSVs, config files, database dumps
- 🔧 Debug Context — Stack traces, environment dumps, crash reports
Philosophy
> "Built for the ephemeral nature of AI workflows. Once your session is done, the data should be too."
Unlike Dropbox or pastebins, vnsh implements a Host-Blind Architecture with automatic vaporization:
| Layer | What Happens | |-------|--------------| | Encryption | AES-256-CBC encryption happens entirely on your device | | Transport | Decryption keys travel only in the URL fragment (#secret) — never sent to servers | | Storage | Server stores encrypted binary blobs — host-blind, no access to contents | | Vaporization | Data vaporizes after 24 hours. No history. No leaks. |
Quick Start
Option 1: Web Upload
Visit vnsh.dev, drag & drop a file, or paste text. Get an encrypted link instantly.
Option 2: CLI Installation
Zero-install (just run it):
echo "hello" | npx vnsh
NPM (global install):
npm install -g vnsh
Shell script (cross-platform: macOS, Linux, WSL, Git Bash):
curl -sL https://vnsh.dev/i | sh
CLI Usage
# Upload a file
vn secrets.env
# Pipe from stdin
cat crash.log | vn
docker logs app | vn
git diff HEAD~5 | vn
# Read/decrypt a URL
vn read "https://vnsh.dev/v/aBcDeFgHiJkL#R_sI4DHZ..."
# Custom expiry (1-168 hours)
vn --ttl 1 temp-file.txt # expires in 1 hour
# Show version and help
vn --version
vn --help
Option 3: Claude Code (MCP Integration)
Native to Claude Code. Unlike Dropbox, vnsh has a first-party MCP server. Claude can "see" inside your encrypted links without leaving the terminal.
Create .mcp.json in your project root:
{
"mcpServers": {
"vnsh": {
"command": "npx",
"args": ["-y", "vnsh-mcp"]
}
}
}
Restart Claude Code after adding the config. Now Claude can:
- Read vnsh links automatically when you paste them
- Share large text outputs via
vnsh_sharetool - Share files (images, PDFs, binaries) via
vnsh_share_filetool
Option 4: Zero-Install (Remote Servers)
No installation needed. Pipe anything from any server with just curl and openssl:
# One-liner: encrypt and upload from any machine
cat error.log | bash &1 | bash 🔍 **Debug with Claude**
>
> CI logs uploaded securely. [View Logs](https://vnsh.dev/v/...) | Paste link to Claude for instant analysis
See [upload-to-vnsh](https://github.com/raullenchai/upload-to-vnsh) for full documentation.
## How It Works
┌──────────────────────────────────────────────────────────────────────────┐ │ YOUR DEVICE │ │ ┌─────────┐ ┌──────────────┐ ┌─────────────────────────────────┐ │ │ │ Data │───▶│ AES-256-CBC │───▶│ Encrypted Blob + URL Fragment │ │ │ └─────────┘ │ Encryption │ │ https://vnsh.dev/v/id#k=... │ │ │ └──────────────┘ └─────────────────────────────────┘ │ └──────────────────────────────────────────────────────────────────────────┘ │ Only encrypted blob sent to server (key stays in URL fragment, never transmitted) ▼ ┌──────────────────────────────────────────────────────────────────────────┐ │ VNSH SERVER (BLIND) │ │ │ │ Receives: [encrypted binary blob] │ │ Stores: [encrypted binary blob] │ │ Knows: upload time, size, expiry │ │ Cannot: decrypt, identify content type, read keys │ │ │ └──────────────────────────────────────────────────────────────────────────┘
### URL Structure (v2 — compact format)
https://vnsh.dev/v/aBcDeFgHiJkL#RsI4DHZ6jNq6yqt2ORRDe9QZ5xQB6hIRLWHVFa8v8jYCFqgQIbsRJrtJze_nL5 └────────────┘└────────────────────────────────────────────────────────────────────┘ 12-char ID 64-char base64url secret (key+iv, never sent to server)
The v2 format reduces URL length by ~40% (from ~160 to ~95 characters). Legacy v1 URLs (`#k=...&iv=...`) are still fully supported.
## Self-Hosting
vnsh runs on Cloudflare Workers with R2 storage. Deploy your own instance:
### Prerequisites
- [Cloudflare account](https://cloudflare.com) with Workers & R2 enabled
- [Wrangler CLI](https://developers.cloudflare.com/workers/wrangler/)
### Deploy
```bash
# Clone the repository
git clone https://github.com/raullenchai/vnsh.git
cd vnsh/worker
# Install dependencies
npm install
# Create R2 bucket
wrangler r2 bucket create vnsh-store
# Deploy
wrangler deploy
Configuration
Edit wrangler.toml to customize:
name = "vnsh"
[[r2_buckets]]
binding = "VNSH_STORE"
bucket_name = "vnsh-store" # Your R2 bucket name
[[kv_namespaces]]
binding = "VNSH_META"
id = "your-kv-namespace-id" # Create with: wrangler kv namespace create VNSH_META
API Reference
POST /api/drop
Upload an encrypted blob.
curl -X POST https://vnsh.dev/api/drop \
-H "Content-Type: application/octet-stream" \
--data-binary @encrypted.bin
Query Parameters: | Parameter | Type | Description | |-----------|------|-------------| | ttl | number | Time-to-live in hours (1-168, default: 24) | | price | number | Payment required to access (x402 protocol) |
Response:
{
"id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
"expires": "2025-01-25T00:00:00.000Z"
}
GET /api/blob/:id
Download an encrypted blob.
curl https://vnsh.dev/api/blob/a1b2c3d4-5678-90ab-cdef-1234567890ab
Response Codes: | Code | Description | |------|-------------| | 200 | Success — returns encrypted blob | | 402 | Payment required | | 404 | Not found | | 410 | Expired |
GET /v/:id
Web viewer (serves HTML directly to preserve URL fragment with encryption keys).
GET /i
CLI installation script.
GET /pipe
Zero-install pipe upload script. Returns a shell script that encrypts stdin and uploads it.
cat file.log | bash
The Ephemeral Dropbox for AI. Your context. Your keys. Then it's gone.
## Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- **Author:** [raullenchai](https://github.com/raullenchai)
- **Source:** [raullenchai/vnsh](https://github.com/raullenchai/vnsh)
- **License:** MIT
- **Homepage:** https://vnsh.dev
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.