Mobile Access Guide
Access Whiskers securely from an Android phone, iPhone, iPad, or other mobile device using Tailscale.
Device names, IP addresses, and hostnames shown in this guide are examples. Your tailnet details will be different.
Contents
Access Whiskers from a Mobile Device in 5 Minutes
- Install Tailscale on the computer running Whiskers.
- Install Tailscale on your mobile device.
- Sign into the same Tailscale tailnet on both devices.
- Confirm that the Whiskers computer appears in the Tailscale device list.
- Find the Whiskers computer's Tailscale IP address or MagicDNS hostname.
- Make sure Whiskers is running.
- Open a browser on the mobile device.
- Enter the Whiskers address.
Using a Tailscale IP address:
http://100.x.x.x:8081
Using a MagicDNS hostname:
http://whiskers-server:8081
Replace the example IP address or hostname with the address assigned to your Whiskers computer.
If the Whiskers interface appears, mobile access is working.
How Mobile Access Works
The mobile device does not run Whiskers or the AI model itself. It connects through Tailscale to the Whiskers instance already running on your computer.
Mobile Device → Tailscale → Tailnet → Whiskers Server → llama.cpp
Prompts entered on the mobile device are sent to the Whiskers server. The server processes the request, communicates with llama.cpp, updates the local session log, and returns the response to the mobile browser.
Canon files, Contract files, model files, and session logs remain on the Whiskers server.
Prerequisites
Whiskers Server
- Whiskers must be installed on a desktop, laptop, or server.
- Whiskers and llama.cpp must be running.
- The server must remain powered on while mobile access is being used.
- The server must have an active network connection.
Tailscale Account
- You need a Tailscale account.
- The Whiskers server and mobile device must be enrolled in the same tailnet.
Device Enrollment
Each device must be signed into Tailscale and authorized to join the tailnet.
Depending on your tailnet configuration, a Tailscale administrator may need to:
- Approve the new device.
- Authorize the device after login.
- Apply an appropriate device tag.
- Grant access through the tailnet access policy.
Access Rules
Tailscale access policies may restrict which devices can communicate with the Whiskers server.
The mobile device must be permitted to reach the Whiskers server on the configured Whiskers port. The default port is:
TCP 8081
Prepare the Whiskers Server
Step 1: Start Whiskers
From the Whiskers installation folder, run:
python3 whiskers_setup.py start
Or use the normal Whiskers launcher for your operating system.
Step 2: Verify Local Access
On the Whiskers server, open:
http://localhost:8081
Verify that the Whiskers interface loads and that you can submit a prompt.
Step 3: Verify the Listening Address
Whiskers must listen on an address that allows Tailscale connections. During startup, the output should show that Whiskers is listening on all network interfaces or on the server's Tailscale interface.
Typical output may resemble:
Whiskers proxy listening on 8081
Running on all addresses (0.0.0.0)
Running on http://127.0.0.1:8081
Running on http://192.168.x.x:8081
On Linux, you can check the listening port with:
ss -tulpn | grep 8081
A working result may resemble:
tcp LISTEN 0 128 0.0.0.0:8081
127.0.0.1, other devices will not be able
to reach it through Tailscale.
Step 4: Find the Tailscale Address
Open Tailscale on the Whiskers server and locate either:
- The server's Tailscale IPv4 address, normally assigned from the
100.64.0.0/10range. - The server's MagicDNS hostname, if MagicDNS is enabled.
Example Tailscale IP:
100.64.12.34
Example MagicDNS hostname:
whiskers-server
Android Setup
Step 1: Install Tailscale
Install the official Tailscale application from the Google Play Store.
Step 2: Sign In
- Open Tailscale.
- Select the option to sign in.
- Sign in with an account authorized to access the Whiskers server's tailnet.
- Complete any authentication or device approval steps.
Step 3: Connect to the Tailnet
Enable the Tailscale connection. Android may ask for permission to create a VPN connection. Approve the request.
Step 4: Verify the Whiskers Server Appears
Open the Tailscale device list and confirm that the Whiskers server is shown.
Note its Tailscale IP address or MagicDNS hostname.
Step 5: Open Whiskers
Open Chrome, Firefox, or another browser and enter:
http://<TAILSCALE-IP>:8081
For example:
http://100.64.12.34:8081
Or, when MagicDNS is available:
http://whiskers-server:8081
Step 6: Verify Operation
Submit a short test prompt. The response should be generated by the Whiskers server, and the interaction should be added to the server's local session log.
iPhone and iPad Setup
Step 1: Install Tailscale
Install the official Tailscale application from the Apple App Store.
Step 2: Sign In
- Open Tailscale.
- Select the option to sign in.
- Sign in with an account authorized to access the Whiskers server's tailnet.
- Complete any authentication or device approval steps.
Step 3: Allow the VPN Configuration
iOS or iPadOS will ask for permission to add a VPN configuration. Approve the request.
Your device may require Face ID, Touch ID, or the device passcode.
. -->Step 4: Connect to the Tailnet
Enable Tailscale and confirm that its status shows as connected.
Step 5: Verify the Whiskers Server Appears
Open the Tailscale device list and confirm that the Whiskers server is present.
Note its Tailscale IP address or MagicDNS hostname.
Step 6: Open Whiskers
Open Safari or another browser and enter:
http://<TAILSCALE-IP>:8081
For example:
http://100.64.12.34:8081
Or, when MagicDNS is available:
http://whiskers-server:8081
Step 7: Verify Operation
Submit a short test prompt. The Whiskers server should process the request and return the response to the mobile browser.
Connection Details
Default Whiskers URL
Whiskers normally uses port 8081.
Using a Tailscale IP address:
http://<TAILSCALE-IP>:8081
Using a MagicDNS hostname:
http://<TAILSCALE-HOSTNAME>:8081
Example Addresses
| Address Type | Example |
|---|---|
| Local computer | http://localhost:8081 |
| Tailscale IPv4 | http://100.64.12.34:8081 |
| MagicDNS hostname | http://whiskers-server:8081 |
Custom Whiskers Ports
If Whiskers was started on a different port, replace 8081 with that
port.
For example:
http://100.64.12.34:8090
Bookmark the Address
After confirming that the connection works, bookmark the Whiskers address in the mobile browser for easier access.
Expected Behavior
When Connected
- The Whiskers interface loads in the mobile browser.
- Prompts are sent to the Whiskers server.
- The server's local model generates the response.
- New interactions are written to the server's active session log.
- The active Canon and Contract files are loaded from the server.
When Disconnected
- The Whiskers URL will not load.
- Existing browser content may remain visible but cannot generate new responses.
- No prompts can be processed until connectivity is restored.
Current Whiskers v1.x Limitations
- The Whiskers server must remain powered on and running.
- The mobile device is accessing the server, not running an independent copy.
- Whiskers v1.x does not provide a built-in multiple-session selector.
- A newly opened mobile browser may not display earlier conversation history.
- New mobile prompts still use and update the active session log on the Whiskers server.
- Canon, Contract, and session files must still be changed on the Whiskers server.
- Switching projects requires manually replacing or restoring the appropriate files.
Security Notes
Why Tailscale Is Used
Whiskers is designed as local-first software. Tailscale allows authorized devices to reach the Whiskers server without exposing the server directly to the public internet.
Tailscale avoids the need for:
- Public port forwarding
- Opening port
8081on the internet - Maintaining a public DNS record
- Running a public reverse proxy
- Making the Whiskers interface discoverable by internet scanners
Access Control Model
Access is controlled through the Tailscale tailnet. A device generally needs:
- A valid Tailscale login.
- Enrollment in the correct tailnet.
- Approval when device approval is enabled.
- Permission under the tailnet's access rules.
- Network access to the Whiskers server and port.
Recommended Practices
- Use multi-factor authentication on the identity account used for Tailscale.
- Remove devices that are lost, replaced, or no longer used.
- Review the device list periodically.
- Do not share the tailnet with people who should not access Whiskers.
- Use restrictive access policies on shared or organization-managed tailnets.
- Keep the Whiskers server operating system and Tailscale client updated.
Limitations and Cautions
- Anyone who can access the Whiskers interface may be able to submit prompts to the active model.
- Mobile access uses the same active Canon, Contract, and session files as local access.
- Whiskers should not be exposed through public router port forwarding unless additional authentication and security controls are configured.
- Tailscale secures network access, but it does not replace normal operating-system security.
Troubleshooting
The Mobile Device Does Not Appear in the Tailnet
- Confirm that Tailscale is installed and running.
- Verify that the mobile device is signed into the correct account.
- Check whether the device is waiting for administrator approval.
- Sign out of Tailscale and sign back in.
- Restart the Tailscale application.
- Check whether the device has been disabled or expired.
The Whiskers Server Does Not Appear in Tailscale
- Confirm that Tailscale is running on the server.
- Verify that the server is signed into the same tailnet.
- Check whether the server requires device approval.
- Restart Tailscale on the server.
Unable to Reach Whiskers
First verify that Whiskers works locally on the server:
http://localhost:8081
Then confirm that Whiskers is listening on port 8081:
ss -tulpn | grep 8081
If Whiskers listens only on 127.0.0.1, restart it using a configuration
that listens on an address reachable through Tailscale.
Also check:
- The Tailscale IP address is correct.
- The port number is correct.
- The URL begins with
http://. - The Whiskers server is powered on.
- Whiskers and llama.cpp are both running.
- A local firewall is not blocking incoming connections to port
8081. - The tailnet access policy permits the connection.
The Browser Opens but Whiskers Does Not Respond
If the interface loads but prompts fail, verify that llama.cpp is running on the configured model-server port.
The default main model-server port is:
8083
Test it from the Whiskers server:
curl http://localhost:8083/props
MagicDNS Hostname Does Not Work
- Try the server's Tailscale IP address instead.
- Verify that MagicDNS is enabled for the tailnet.
- Confirm that the hostname is spelled correctly.
- Disconnect and reconnect Tailscale on the mobile device.
- Restart the mobile browser.
If this works:
http://100.64.12.34:8081
but this does not:
http://whiskers-server:8081
Whiskers is reachable and the remaining problem is DNS or MagicDNS resolution.
Authentication Problems
- Confirm that both devices use the intended Tailscale account.
- Complete any identity-provider login or multi-factor authentication prompts.
- Check whether the tailnet administrator must approve the device.
- Verify that the device has not expired or been removed.
- Sign out, close Tailscale, reopen it, and sign in again.
Works on Wi-Fi but Not on Mobile Data
- Confirm that Tailscale remains connected after Wi-Fi is disabled.
- Verify that mobile-data access is allowed for the Tailscale application.
- Check whether battery-saving settings are suspending Tailscale.
- Disable and re-enable the Tailscale connection.
- Try opening the Tailscale IP address instead of the MagicDNS hostname.
Works on Mobile Data but Not on Wi-Fi
- Confirm that Tailscale is still connected.
- Check whether the Wi-Fi network blocks VPN traffic.
- Try another Wi-Fi network.
- Try the server's Tailscale IP address instead of its hostname.
- Temporarily disable another active VPN application.
Another VPN Is Installed
Some mobile operating systems allow only one active VPN configuration at a time. Another VPN, filtering application, or security product may prevent Tailscale from connecting.
Temporarily disable the other VPN and reconnect Tailscale.
The Old Conversation Is Not Visible
A newly opened browser may begin with an empty visual chat window. This does not necessarily mean the Whiskers session log is empty.
Mobile prompts are still sent to the same Whiskers instance and written to the same active log on the server.
Briefly remind Whiskers where the conversation left off before continuing.
Mobile Access Complete
If the Whiskers interface loads from the mobile device and responds to a test prompt, remote access is configured correctly.
Bookmark the Tailscale address for future use and keep the Whiskers server running whenever mobile access is needed.