Remote Access
Chrome ACP can be accessed from other devices on your local network, such as mobile phones, tablets, or other computers.
Quick Start
This:
- Binds to all network interfaces (
0.0.0.0) - Enables HTTPS with a self-signed certificate
- Generates an authentication token
- Prints URLs and QR code for connection
Server Output
When running with remote access enabled:
The QR code contains the full URL with the embedded auth token.
Why HTTPS?
HTTPS is required for several browser features:
Self-Signed Certificate
Chrome ACP generates a self-signed certificate on startup:
- Valid for 365 days
- Stored in
~/.acp-proxy/(persisted and reused) - Automatically regenerated if expiring within 7 days or LAN IP changes
- Browser will show a security warning
To accept the certificate:
- Navigate to the URL
- Click "Advanced" or "Show Details"
- Click "Proceed to site" or "Accept the Risk"
On mobile, you may need to visit the URL directly before scanning the QR code to accept the certificate.
Authentication Flow
How It Works
- Token Generation: Server generates a random 64-character hex token at startup
- URL Embedding: Token is appended as
?token=abc123... - Connection: Client sends token in initial WebSocket handshake
- Validation: Server validates token before accepting connection
Custom Token
Set a fixed token instead of random generation:
Useful for:
- Automation scripts
- Persistent URLs in bookmarks
- Sharing access with known parties
Token in QR Code
The QR code encodes the complete URL including token:
Scan with any QR reader or your phone's camera.
Connecting from Mobile
Method 1: QR Code (Recommended)
- Start proxy with
--https --host 0.0.0.0 - Open phone camera and point at QR code
- Tap the URL notification
- Accept the certificate warning
- Start chatting!
Method 2: Manual URL
- Find your computer's IP address:
- Open browser on mobile
- Navigate to
https://<your-ip>:9315/app?token=<token>
Termux (Android)
Run Chrome ACP directly on your Android device.
Installation
Running with Auto-Launch
The --termux flag:
- Starts the proxy server on localhost
- Waits for server to be ready
- Calls
termux-open-urlto launch the PWA
Requirements
For auto-launch to work:
- Install Termux:API app from F-Droid
- Grant Termux API permissions
- Install termux-api package:
pkg install termux-api
Network Options
Common Configurations
Local only (default):
LAN access with auth:
Custom port:
Security Considerations
Remote access exposes your AI agent to network connections. Be careful!
Do's
- Use
--httpsfor any non-localhost access - Keep authentication enabled (don't use
--no-auth) - Use on trusted networks only (home, office)
- Stop the server when not in use
Don'ts
- Don't use
--no-authwith--host 0.0.0.0 - Don't expose to the internet without additional security
- Don't share your auth token publicly
- Don't run on untrusted networks
For Public Access
If you need public access:
- Use a reverse proxy (nginx, Caddy)
- Set up proper TLS certificates (Let's Encrypt)
- Add additional authentication (basic auth, OAuth)
- Consider VPN access instead
Server Deployment
When deploying on a server with a domain name, the auto-detected LAN IP won't work for the QR code. Use --public-url to specify the actual WebSocket URL:
This makes the QR code contain wss://example.com/ws instead of the local network IP.
Example: nginx Reverse Proxy
Then run:
