Download AITaoHoo CLI

Get the client binary for your platform and start tunneling in seconds.

v0.1.14Feb 28, 2026

Latest Version & Changelog

0.1.14Latest
Feb 28, 2026
  • Fix multi-tunnel port cross-routing: starting a second tunnel no longer overwrites the first tunnel's local port binding
  • Fix QUIC P2P with multiple tunnels: second tunnel now reuses existing QUIC server port instead of running STUN again (which pointed DNS to a port where nothing was listening)
  • Fix relay fallback race condition: retry stream-to-tunnel mapping lookup instead of picking an arbitrary tunnel's address
0.1.13
Feb 27, 2026
  • Add x-tunnel-mode response header: 'relay' when traffic routes through server, 'p2p-quic' when direct — visible in browser DevTools or curl -I
0.1.12
Feb 27, 2026
  • Fix Windows Firewall false warning: check if rule already exists (by name or program path) before trying to add — no more warning after first manual allow
  • Use program-based firewall rule instead of port-based — covers all STUN port changes across sessions with one rule
  • Show exact PowerShell command in warning so users can add the rule once as Administrator
0.1.11
Feb 27, 2026
  • Fix QUIC P2P URL access: DNS wildcards don't match when any specific record exists for a name — server now sets A → server IP alongside HTTPS record so TCP relay/fallback works
  • Add MOJI_SERVER_IP config (env var) to specify relay fallback IP for QUIC P2P tunnels
0.1.10
Feb 27, 2026
  • SaaS-scale wildcard cert: server now provisions one *.gateway.aitaohoo.com cert (via ACME DNS-01) and shares it with all P2P clients — eliminates per-subdomain ACME entirely
  • Server cert + private key stored in PostgreSQL; renewed at most ~6 times/year regardless of customer count
  • P2P clients receive server cert automatically — no client-side key generation or ACME calls needed
0.1.9
Feb 27, 2026
  • Fix Let's Encrypt rate limit: client now reuses its persisted key pair and cert across reconnects — ACME is only called when cert has <30 days left
  • Server-side cert cache: same CSR (same key pair) returns cached cert without ACME round-trip even after client cache miss
0.1.8
Feb 26, 2026
  • Fix P2P DNS 409 Conflict: set_a_record and set_https_record now upsert atomically — reconnecting a tunnel no longer deactivates P2P
  • Fix DNS delete: fetches current record before deleting so stale IP/port mismatches don't cause failures
  • Windows Firewall: automatically add inbound UDP rule when QUIC P2P server starts
  • UI: spinning indicator on P2P badge while negotiation is in progress
0.1.7
Feb 26, 2026
  • Fix QUIC P2P crash: install rustls CryptoProvider at client startup so P2P tunnels no longer panic
0.1.6
Feb 26, 2026
  • Fix Disconnect and Remove buttons: server now updates immediately instead of only on process exit
  • Send TunnelClose for each active tunnel before GoAway on disconnect
  • Release lock before awaiting disconnect to prevent handler contention
0.1.5
Feb 26, 2026
  • STUN + QUIC/HTTP3 P2P: automatic UDP NAT traversal for routers without UPnP
  • Fix stale tunnel cleanup: dashboard now shows correct status after client disconnect
  • TCP keepalive (30s) for faster disconnect detection on server
  • Periodic 60s sweep closes orphaned tunnel records in database
0.1.4
Feb 26, 2026
  • Auto-P2P: automatic NAT traversal on tunnel creation (UPnP + NAT-PMP)
  • P2P activates silently in background — no manual button click needed
  • Clean version display (no more git hash in version string)
0.1.3
Feb 26, 2026
  • CLI request logs: show method, path, status code, and duration for each proxied request
  • Fix P2P button crash on empty JSON response
  • Fix Remove tunnel showing generic error instead of HTTP status
  • Replace Zap icon with custom mascot logo across all dashboard pages
0.1.2
Feb 25, 2026
  • Auto-update: run `aitaohoo update` to self-update, startup version check notification
  • macOS native app bundle with DMG installer (Apple Silicon)
  • Windows, macOS, and Linux ARM64 pre-built binaries
  • Reduce noisy proxy log output in terminal
  • Fix duplicate tunnels on dashboard tunnels page
0.1.1
Feb 25, 2026
  • Fix 502 'local service returned no data' — remove harmful TCP FIN, force Connection: close
  • Add version and changelog to download page
  • Versioned download filenames for multi-version bucket uploads
0.1.0
Feb 24, 2026
  • P2P direct tunneling — bypass GCP relay for Pro+ users
  • Web-based UI — double-click the exe to manage tunnels in your browser
  • Multi-tunnel saved configs with Ctrl+C graceful shutdown
  • Browser-based auth flow with auto-close
  • Fix tunnel proxy empty response, GoAway cleanup, and UI disconnect detection
  • Fix API key validation with bcrypt hashes from dashboard
  • Hardened server security: auth bypass, IDOR, CORS, error leaks

Previous Versions

Older releases are kept for compatibility. We recommend using the latest version.

Quick Start

Linux / macOS
# Linux
curl -Lo aitaohoo https://storage.googleapis.com/aitaohoo-releases/cli/latest/aitaohoo-linux-amd64-0.1.14
chmod +x aitaohoo
sudo mv aitaohoo /usr/local/bin/

# macOS (Apple Silicon)
curl -Lo aitaohoo https://storage.googleapis.com/aitaohoo-releases/cli/latest/aitaohoo-macos-arm64-0.1.14
chmod +x aitaohoo
sudo mv aitaohoo /usr/local/bin/
Windows (PowerShell)
Invoke-WebRequest -Uri https://storage.googleapis.com/aitaohoo-releases/cli/latest/aitaohoo-windows-amd64-0.1.14.exe -OutFile aitaohoo.exe
Start a tunnel
aitaohoo http 3000 --subdomain myapp

macOS Gatekeeper Notice

Since AITaoHoo is not distributed through the Mac App Store, macOS will show a security warning:"Apple could not verify AITaoHoo is free of malware"

This is normal for apps downloaded outside the App Store. Use one of the methods below to open the app.

Method 1: Right-click (Recommended)
  1. Right-click (or Control+click) on AITaoHoo.app
  2. Select "Open" from the context menu
  3. Click "Open" in the dialog that appears

You only need to do this once. After that, the app will open normally.

Method 2: Terminal Command
# Remove the quarantine attribute
xattr -cr /Applications/AITaoHoo.app

# Then open the app normally

Build from Source

For platforms without pre-built binaries, you can compile from source. Requires Rust 1.80+.

terminal
git clone https://github.com/AItaohoo/MojiGateway.git
cd MojiGateway
cargo build --release -p mojigateway-client
# Binary is at target/release/aitaohoo