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

Before starting: Whiskers must already be installed and running on the computer that will act as the Whiskers server.
  1. Install Tailscale on the computer running Whiskers.
  2. Install Tailscale on your mobile device.
  3. Sign into the same Tailscale tailnet on both devices.
  4. Confirm that the Whiskers computer appears in the Tailscale device list.
  5. Find the Whiskers computer's Tailscale IP address or MagicDNS hostname.
  6. Make sure Whiskers is running.
  7. Open a browser on the mobile device.
  8. 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

Tailscale Account

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:

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
Personal tailnets: A small personal tailnet may allow devices to communicate by default. Managed, business, or organization-controlled tailnets may use more restrictive policies.

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
Important: If Whiskers listens only on 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:

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

  1. Open Tailscale.
  2. Select the option to sign in.
  3. Sign in with an account authorized to access the Whiskers server's tailnet.
  4. 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

  1. Open Tailscale.
  2. Select the option to sign in.
  3. Sign in with an account authorized to access the Whiskers server's tailnet.
  4. 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

When Disconnected

Current Whiskers v1.x Limitations

Mobile continuity: Even if earlier messages are not displayed in the mobile browser, Whiskers continues using the active server-side session log. You may need to briefly remind the model where the conversation left off.

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:

Access Control Model

Access is controlled through the Tailscale tailnet. A device generally needs:

Recommended Practices

Limitations and Cautions

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.