惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
博客园 - 司徒正美
美团技术团队
Martin Fowler
Martin Fowler
雷峰网
雷峰网
aimingoo的专栏
aimingoo的专栏
博客园 - 三生石上(FineUI控件)
Vercel News
Vercel News
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
爱范儿
爱范儿
U
Unit 42
Y
Y Combinator Blog
月光博客
月光博客
Hugging Face - Blog
Hugging Face - Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
有赞技术团队
有赞技术团队
GbyAI
GbyAI
H
Help Net Security
量子位
Last Week in AI
Last Week in AI
博客园_首页
腾讯CDC
小众软件
小众软件

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - Endlessite/tubo: Send files between machines. No...
mazz0ni · 2026-06-23 · via Hacker News: Show HN


License Release Build Zero Install E2EE

The zero-install file transfer for locked-down servers.
No root. No binaries. Pure POSIX shell. End-to-end encrypted. Always.

Tubo Demo


Why Tubo?

Most file transfer tools either require accounts (WeTransfer, Google Drive), expose data to the server (scp through a jumphost), or need root to install (rsync, netcat).

Tubo is different:

  • True E2E Encryption — The server is a blind pipe. It relays encrypted bytes it cannot read. The key never leaves your machines.
  • Zero-Install Mode — SSH'd into a production server with no tools? Use curl | sh. It works with just curl and openssl.
  • No Root, No Accounts — The binary goes in ~/.local/bin. No sign-ups, no API keys, no config files.
  • Directories & Compression — Stream entire folders on-the-fly with --compress. No temporary zip files.
  • Integrity Verified — SHA-256 checksum compared automatically after every transfer.

Quick Start

Install (one-liner, no root)

curl -sL https://tubo.endlessite.com/get | sh

Send a file

Copy the token it prints, then on the other machine:

Receive

tubo receive e4f2a1-8xZpL9q4-aB3k9Xm2pQ7rT1wZ

Send a directory (compressed)

tubo send ./my-project --compress

Pipe from stdin

echo "secret message" | tubo send -

The POSIX Superpower (Zero-Install)

Tubo is built to work everywhere, especially where other tools fail.

Are you SSH'd into a locked-down production server where you can't install binaries (no root, noexec mounts, strict corporate policies)? Just use the fallback script:

Send:

curl -sL https://tubo.endlessite.com/run | sh -s send database.sql e4f2a1-8xZpL9q4-aB3k9Xm2pQ7rT1wZ

Receive:

curl -sL https://tubo.endlessite.com/run | sh -s receive e4f2a1-8xZpL9q4-aB3k9Xm2pQ7rT1wZ

This script does not download a binary executable. It relies purely on curl and openssl — tools that already exist on almost every UNIX system. It runs directly in memory on any POSIX-compliant shell (sh, bash, zsh, dash, ash) without triggering execution blocks.

Is curl | sh safe? You can always download the script first with curl -sL https://tubo.endlessite.com/run -o run.sh, read the code, then run sh run.sh receive <token>. The script is 150 lines of simple shell — we encourage you to audit it.

The Pure Bash Proof (No Scripts at all)

If you don't even want to run the run.sh wrapper, you can pipe curl directly into openssl. You don't have to remember the exact syntax—just add --manual to the CLI:

tubo send database.sql --manual
# Or for receiving: tubo receive <token> --manual

This will print out the exact, pure POSIX shell commands to execute the transfer. Given a token ID-PASSWORD-KEY, you derive the AES-256 key and IV using SHA-512(KEY). Then you run:

Send manually:

cat database.sql \
  | openssl enc -e -aes-256-ctr -K "$AES_KEY" -iv "$AES_IV" \
  | curl --data-binary @- -H "X-File-Name: database.sql" -u "tubo:$PASSWORD" "https://tubo.endlessite.com/$ID"

Receive manually:

curl -u "tubo:$PASSWORD" "https://tubo.endlessite.com/$ID" \
  | openssl enc -d -aes-256-ctr -K "$AES_KEY" -iv "$AES_IV" > database.sql

This proves Tubo is just standard AES-256-CTR streaming over HTTP!


Self-Hosting

Don't want to use the public relay? Run the open-source relay in 30 seconds:

cd server
mvn clean package
java -jar target/server-1.0.0-SNAPSHOT-fat.jar

Then point your CLI to it (once):

tubo config server your-server.com:8080

The relay server requires Java 17+ and ~10MB of RAM. It stores nothing on disk.

Set the PORT environment variable to change the listening port: PORT=443 java -jar server.jar


How It Works

┌──────────┐       ┌─────────────────┐       ┌──────────────┐
│  Sender  │──────▶│  Relay Server   │──────▶│   Receiver   │
│          │       │  (blind pipe)   │       │              │
│ AES-256  │       │ Cannot decrypt  │       │  AES-256     │
│ encrypt  │       │ Zero disk I/O   │       │  decrypt     │
└──────────┘       └─────────────────┘       └──────────────┘

The transfer token format is ID-PASSWORD-KEY:

Part Purpose Sent to server?
ID Identifies the session Yes
PASSWORD Authenticates both peers Yes
KEY E2EE secret for AES-256-CTR Never
  1. One peer creates a session and gets back ID + PASSWORD from the server
  2. It generates a random KEY locally and combines everything into a token
  3. The other peer connects using the ID and PASSWORD to authenticate
  4. Data is encrypted with AES-256-CTR(SHA-512(KEY)) — the server only sees ciphertext
  5. A SHA-256 checksum is compared at the end to verify integrity

The relay server is intentionally stateless. It never writes to disk, never logs file contents, and never sees the encryption key. You can verify this yourself — the entire server is a single Java file.


Why not just use croc?

croc is a great tool. If you already have it installed on both machines, use it.

But here's the thing — you often can't install it. And that's where Tubo was born:

The scenario: You're SSH'd into a production server. You need to pull a 5GB log file. The /tmp partition is mounted as noexec. You don't have root. Corporate policy actively blocks the execution of unknown binaries.

With croc, you are completely stuck. With Tubo:

curl -sL https://tubo.endlessite.com/run | sh -s receive <token>

No binary touches the disk. It uses curl and openssl — tools that are already there.

Tubo croc
Works without installing anything Yes (curl | sh fallback) No (Needs binary on both sides)
Works on noexec filesystems Yes (Shell script, no binaries) No (Needs to execute a binary)
Auditable in 10 minutes Yes (~1200 lines total) ~15,000 lines
Relay server complexity 1 file, ~475 lines Multi-file Go server
Protocol HTTPS + WebSocket TCP custom protocol
E2E Encryption Yes (AES-256-CTR) Yes (PAKE + AES)
Self-hostable Yes Yes
Directory transfer Yes Yes
Resumable transfers No (Planned) Yes
Multiple receivers No Yes

Tubo doesn't try to replace croc. Different use case — Tubo is for when you can't or don't want to install anything.


License

MIT — do whatever you want with it.