Control AI coding agents from your phone — Claude Code, Codex, and Antigravity. Self-hosted, E2E encrypted, open source.
Project description
CorvusTunnel
Control AI Agents from Your Phone
Self-hosted remote control for Claude Code, Codex, and Antigravity. Free, open source, E2E encrypted.
Quick Start
# Install
pip install corvustunnel
# Start
corvustunnel start
# With a specific workspace
corvustunnel start --workspace /path/to/your/project
Scan the QR code with your phone → you're connected.
Features
- Multi-agent support — Claude Code, Codex CLI, Antigravity
- End-to-end encryption — NaCl/libsodium, key exchange via QR code
- QR code connect — scan to connect, no manual URL typing
- Real-time streaming — WebSocket-based terminal I/O via xterm.js
- Push notifications — Web Push API alerts for agent events
- PWA support — install on your phone like a native app
- Smart suggestions — context-aware action chips (approve, reject, continue)
- Command favorites — pin frequently used prompts for one-tap access
- Audit logging — JSONL forensic logs of all sessions
- Security hardened — IP ban, rate limiting, body size limits, CORS, security headers
- Self-hosted — runs on your machine, your data stays with you
- Unlimited — no session limits, no cooldowns, no restrictions
How It Works
Your Phone Your Computer
┌─────────┐ ┌──────────────────┐
│ │ WebSocket │ CorvusTunnel │
│ Scan │ ◄──────────────► │ ├── FastAPI │
│ QR │ (E2E encrypted)│ ├── PTY/pexpect │
│ Code │ │ └── Agent │
│ │ │ (claude/ │
│ Send │ │ codex/ │
│ prompts│ │ agy) │
└─────────┘ └──────────────────┘
▲ ▲
│ Cloudflare Relay │
└──────────────────────────────┘
(TLS + E2E encryption)
Installation
pip install corvustunnel
corvustunnel start
Security
- E2E Encryption: All terminal I/O encrypted with NaCl SecretBox (XSalsa20-Poly1305)
- Key Exchange: X25519 Diffie-Hellman during QR code scanning
- Auth: One-time boot token → session token with IP binding
- WebSocket: Ticket-based auth (one-time, 30s TTL, IP-bound)
- Rate Limiting: Per-endpoint via slowapi
- IP Auto-Ban: After repeated auth failures
See SECURITY.md for full details and vulnerability reporting.
API
| Endpoint | Auth | Description |
|---|---|---|
GET /api/health |
No | Health check |
POST /api/e2e/exchange |
No | E2E key exchange |
POST /api/claim |
Boot token | Exchange boot token for session token |
GET /api/browse |
Session | Directory browser |
GET /api/check-agents |
Session | List available AI agents |
POST /api/ws-ticket |
Session | Get WebSocket connection ticket |
WS /api/terminal/ws |
Ticket | Interactive terminal session |
Internal API (localhost:8001):
| Endpoint | Description |
|---|---|
GET /audit |
View audit logs |
GET /deeplog |
View deep (plaintext) logs |
GET /terminal/status |
Terminal session status |
Environment Variables
| Variable | Default | Description |
|---|---|---|
AGENT_TOKEN |
Auto-generated | Bearer token for API auth |
ALLOWED_DIRS |
Home + CWD | Comma-separated allowed directories |
AUDIT_LOG_DIR |
./logs |
Audit log directory |
PUBLIC_PORT |
8000 |
Public API port |
INTERNAL_PORT |
8001 |
Internal admin port |
Development
git clone https://github.com/maliozturk/CorvusTunnel.git
cd CorvusTunnel
pip install -e ".[dev]"
AGENT_TOKEN=dev-token corvustunnel start --verbose
Contributing
See CONTRIBUTING.md for guidelines.
License
MIT — see LICENSE
Links
- Website: corvustunnel.com
- GitHub: github.com/maliozturk/CorvusTunnel
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file corvustunnel-1.0.1.tar.gz.
File metadata
- Download URL: corvustunnel-1.0.1.tar.gz
- Upload date:
- Size: 814.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
724c1f40ba9e6b954267e5dd5802df98f8e624f4808258fce5d129ef16224cd2
|
|
| MD5 |
ae21319151e48b16b79ec983283fa5f0
|
|
| BLAKE2b-256 |
2ebd4d48bf871e1effe789822f47bfeb4233a96d1fd25fff746eca4661826bad
|
File details
Details for the file corvustunnel-1.0.1-py3-none-any.whl.
File metadata
- Download URL: corvustunnel-1.0.1-py3-none-any.whl
- Upload date:
- Size: 812.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b54e926cf46d6cb279601a7ee48f3ee3ec7ea4c68e37852b2eaab42d33e51760
|
|
| MD5 |
fc6ae787c6e69be71c5fe22e68f93ef9
|
|
| BLAKE2b-256 |
a87b3febfc315717ceb965c71aba8e00b2536aea57cec7b32c550bc9a0a5122e
|