Using Meows
Start by adding a server. The sections below explain each part of Meows and where to look when something goes wrong.
Android 14 or later · English, Simplified Chinese, Traditional Chinese, Japanese, and Korean
On this page
01
Before you start
Meows is a native Android SSH client and monitor. Connections originate on your device and do not pass through a Meows relay. The server does not need any additional software.
Requirements
- An Android device running Android 14 or later
- A reachable SSH server and a valid password or private key
- Monitoring reads only what the SSH account can access and does not invoke sudo. Terminal can still work when some or all metrics are unavailable
- For Docker features, a Docker installation that the same SSH user can access
What happens when you use Meows
| Item | What happens |
|---|---|
| Automatic monitoring | While monitoring is active, Meows automatically collects the server metrics available to the SSH account, checks whether Docker is available, and runs the unlock checks described below when the server supports them. It does not invoke sudo or change Docker state. |
| User actions | Commands entered in Shell run only when you submit them. Meows starts, stops, or restarts a Docker container, or starts a tunnel, only when you trigger that action. |
| SSH credentials | Passwords and private keys are encrypted on the device. An optional full backup includes stored credentials and is separately encrypted before upload with a key derived from your master password. |
| Monitoring history | Monitoring history stays on the device. Older entries are removed automatically. |
| Network tools | DNS, WHOIS, and TLS use the network only after you start a query. Local IP database lookups stay on the device. |
| Google Drive backup | This is optional. A backup is encrypted on your device before it is stored in Meows' hidden app data folder in Google Drive. |
| Notification permission | Notifications are the only runtime permission Meows asks you to grant. You can deny it and continue using the app without notification alerts. |
For your first test, use a temporary or non-critical server with a dedicated unprivileged SSH account. Do not grant it sudo or Docker access. When you are finished, remove the saved server from Meows and revoke the test key or account on the server.
Meows has no advertising SDKs, subscriptions, analytics, or telemetry. See the privacy policy for full details on how data is handled.
Where to find things
| Dashboard | Add and group servers, check live cards and the map, open history, configure alerts, and enter Docker management. |
|---|---|
| Terminal | Choose a saved server, then use the connection icon to start a terminal session. |
| Settings | Manage appearance, background monitoring, bastions, tunnels, backups, security controls, and the built-in tools. |
Long-press the Meows app icon for Add Server, Status, Settings, and Terminal shortcuts.
02
Add your first server
- Open Dashboard and tap Add Server.
- Enter a display name, host, SSH port, and username.
- Choose password or private-key authentication, then enter the credential.
- Optionally choose a bastion host, group, or per-server refresh interval, then save.
Connection fields
| Field | How it is used |
|---|---|
| Name | The name shown in the server list. |
| Host and port | A numeric IP address or DNS hostname, plus an SSH port from 1 to 65535. The default port is 22. |
| Username | The remote SSH account used for authentication and all server-side operations. |
| Authentication | Password or a pasted SSH private key. An encrypted private key also requires its passphrase. |
| Refresh interval | Choose 1, 2, 3, or 5 seconds, or leave it unselected to inherit the global setting. The default global interval is 3 seconds. |
| Connection route | Use a direct connection or a saved bastion host. |
When editing a server, leaving the credential blank preserves the saved credential only while the authentication type remains unchanged.
Server names must be unique, ignoring letter case. Even with a different name, the same host, port, and username can be added only once. Usernames are case-sensitive.
After saving
After you save it, the server appears on Dashboard and monitoring starts automatically.
- Double-tap a server card to pin it to the top or unpin it.
- Deleting a server removes its saved configuration, credentials, alerts, local monitoring history, and any tunnel configurations that use it. It does not change the remote server.
03
Connections, bastion hosts, and host keys
For a direct connection, your device connects to the server. With a bastion, it connects to the bastion first, then uses the target server's own credentials to reach the target.
Android device → serverAndroid device → bastion → target server- One saved bastion can be reused by multiple servers. In Bastion Configuration, double-tap a bastion card to pin it to the top or unpin it.
- Deleting a bastion switches affected servers back to direct mode. It does not delete those servers.
- Meows records the server host key on first connection. If that key changes later, Meows blocks the connection until you review the new key.
Set up a bastion
- Open Settings, then Bastion Configuration.
- Add a name, host, port, username, and password or private key.
- Tap Test to check the connection, then tap Add to save the bastion.
- Edit the target server and select the saved bastion as its connection route.
Reconnects and retries
When a VPN or the default network changes, Meows disconnects the affected monitoring sessions and reconnects over the current network.
Meows retries temporary network and server failures automatically, with pauses that grow to about 30 seconds. Automatic retry stops when authentication needs attention. Edit the server if its password or private key is missing, invalid, or wrong. If the saved authentication information is correct, check SSH access on the target server or bastion, fix it, then use Retry connection on the card.
04
Dashboard and monitoring
Dashboard shows live server cards and a country or region map. Meows uses its bundled offline database to find a server's country or region. IP data is not reliable enough for city-level location, so the map stops there.
Finding a server
- Choose a group to filter servers, or All to clear the filter.
- Use the switch in the header to move between World Map and Data Monitoring.
- Select a country or region marker to see the servers in that area.
- The map also shows day and night shading and the current positions of the Sun and Moon. Select either marker for details.
- Servers without a usable location remain available under Servers Not Located.
- Data Monitoring shows the current online and offline counts for the active filter.
Server cards
A server card shows its connection state and the latest metrics Meows could read.
| Area | What it contains |
|---|---|
| Usage | CPU, memory, and mounted storage usage. |
| Network | Current upload and download rate, plus transferred totals when those counters are available. |
| Card badges | Region, operating system, architecture, kernel, ASN, verified unlock results, Docker count, TCP connections, failed logins, updates, uptime, consecutive successful requests, and latency. |
| Actions | Open history or Docker, configure alerts, and edit or delete the server. Retry connection is also available after authentication is rejected. |
Card badge visibility applies to every server. Hiding a badge type only changes what the cards show. It does not stop monitoring or disable a feature.
Unlock results and server facts
Once monitoring data is available, Meows uses the current SSH connection to check Claude, Gemini, ChatGPT, Netflix, Disney+, Prime Video, YouTube Premium, and Google Scholar from the server. Only services confirmed as unlocked appear on the card. Netflix access limited to Originals Only is not counted as unlocked.
Failed-login data depends on whether the SSH account can read the authentication log, the current boot's journal, or a system log. A blank or unavailable result can be a permission or platform limitation rather than a zero count.
Per-server alerts
Open Alert Settings at the bottom of a server card. Turn on alerts, set the CPU, memory, disk, and latency thresholds, and choose whether to be notified when the server disconnects.
History charts
Use the chart action in a server card header, then choose a 1, 2, or 5 minute range. The metric row scrolls horizontally. Tap Return to Status to show live data on the card again. History stays on your device for a short time.
| Metric | Detail below the chart |
|---|---|
| CPU | Top processes by CPU |
| Memory | Top processes by memory |
| Disk | Mounted filesystems and capacity |
| Disk read | Read rate by device |
| Disk write | Write rate by device |
| Download | Receive rate by interface |
| Upload | Transmit rate by interface |
| TCP Connections | Listening local ports and established connections without a current listener |
| Latency | Current value, average, P50, P95, and jitter |
05
Shell
Shell opens a separate interactive SSH session.
Start and end a session
- Open Terminal and choose one of your saved servers.
- After selecting a server, tap the connection icon in the upper-right corner and wait for the remote prompt. Selecting a server does not connect to it.
- Tap the terminal to focus the keyboard. Tapping a recognized value in ordinary output opens Lens. Tapping elsewhere returns input focus to the terminal.
- When the interactive session is no longer needed, tap the disconnect icon in the upper-right corner.
Use the server selector at the top to switch terminals. Each server has its own terminal; switching keeps other sessions connected, and input goes only to the selected terminal.
Disconnecting ends only the selected session and keeps its output visible. Once disconnected, use the trash icon to close that terminal and discard its output. Meows then selects the most recently used remaining terminal, whether connected or disconnected. The initial screen appears only when none remain. Closing a terminal does not delete the saved server.
Terminal controls
| Control | Use |
|---|---|
| Tab and Esc | Send keys that are awkward to enter from a phone keyboard. |
| Ctrl and Ctrl+C | Tap Ctrl, then enter a letter to send its control code. Use Ctrl+C to interrupt the foreground command. |
| Arrow keys | Edit commands, browse command history, and navigate terminal programs. Hold an arrow to repeat it. |
| Clear | Clear the current display and scrollback, then send Ctrl+L to redraw the foreground program. |
- top can redraw the main screen, while htop commonly uses an alternate screen. Exit full-screen programs with their normal key or Ctrl+C before reviewing main-screen scrollback.
- Terminal colors follow Meows' dynamic theme.
- Lens is available in ordinary terminal output, but not while a full-screen program is using the alternate screen.
- Scroll up to read earlier output, and move long lines sideways when needed. The view stays where it is while you look back. Return to the bottom or type to follow new output again.
06
Docker
Docker management runs through the selected server's SSH connection. You do not need to expose the Docker Remote API.
Open and use Docker
- After Docker is detected, use the Docker action in the header of the connected server card.
- Check the engine information and container totals, then filter the list by all, running, or stopped containers.
- Each container card shows the available resource and network facts, with actions to start, stop, restart, or open logs.
- The same SSH user must already be allowed to use Docker. Meows does not automatically elevate with sudo.
- Logs open full screen. The view stays where it is while you scroll back through older entries. Return to the bottom or tap Latest to see new entries as they arrive. You can also copy logs or tap a recognized value to open Lens.
- If Docker is not installed, the Docker daemon is unavailable, or the SSH user lacks permission, the Docker button is not shown on the server card. If a Docker page is already open, it shows Docker not detected. Shell and monitoring remain available.
07
SSH tunnels
| Type | Where it listens | Which side connects to the target |
|---|---|---|
| Local forwarding | Your Android device | The SSH server |
| Remote forwarding | The SSH server | Your Android device |
Create a tunnel
- Open Settings, then Tunnel Configuration, and add a tunnel.
- Choose the saved server that the tunnel will use.
- Choose Local or Remote, then fill in Bind Port, Host Address, and Target Port.
- Save the configuration and start it from the tunnel list.
- Double-tap a tunnel card to pin or unpin it. Editing or deleting a running tunnel stops the tunnel first.
- For local forwarding, other apps on the device connect to the configured local bind port.
- For remote forwarding, the Android device connects to the target. If that target is outside the device, the connection follows the device's current network.
- A running tunnel can continue working while Meows is in the foreground or Persistent Notification is enabled.
- After you stop a tunnel, it stays stopped until you start it again.
08
Background monitoring and alerts
Enable background monitoring
- Open Settings and turn on Persistent Notification.
- Allow notifications when Android asks so the persistent notification and threshold alerts can appear.
- Alerts are evaluated on the Android device. There is no cloud push server watching your hosts.
- When several thresholds are crossed at once, Meows combines them into one notification.
- Android vendors can still restrict background work. If monitoring stops after the app leaves the foreground, remove battery restrictions for Meows in system settings.
- This is device-side monitoring, not a guaranteed 24-hour remote monitoring service. Force-stopping the app also stops its monitoring and alerts.
09
Credentials, privacy, and backup
Credentials and trusted hosts
- SSH passwords and private keys are encrypted on the device with keys protected by Android Keystore.
- A host key identifies the remote SSH server. It is not the private key used to sign in. After the first connection, Meows rejects a different host key from the same host and port.
- Privacy Mode hides Meows from the recent-apps preview and blocks screenshots and screen recording while enabled.
- Clear Secure Data disconnects SSH sessions and deletes stored server and bastion credentials plus trusted host keys. Server and bastion configurations remain.
Google Drive backup
Backups created in the current format are encrypted on your device, then stored in Meows' hidden app data folder in Google Drive. They do not appear in the ordinary Drive file list. The cat name and short code are display names used only inside Meows.
Create, restore, or delete a backup
- Open Cloud Backup in Settings, then sign in with the Google account where you want to store the backup.
- Enter a 15–256 character master password using English letters, numbers, spaces, or symbols. When the on-device strength check shows Strong, choose Create Backup.
- The list shows each backup's display name, creation time, and size. Refresh it after changes made from another device.
- To restore a backup, select Download, confirm Restore, and enter its master password. Select Delete to remove it instead.
- Current backups contain server and bastion settings and credentials, tunnels, alert thresholds, the global refresh interval, theme, language, privacy mode, persistent notification setting, terminal font and size, and card badge visibility. Monitoring history is not included.
- Creating or restoring requires the master password each time. It is not recoverable. Losing it makes that backup impossible to restore.
- Restore can replace current app data. Review the confirmation before continuing.
- Uninstalling Meows removes its data from this device. It does not delete backups stored in Google Drive.
- Deleting a backup from the list permanently removes that selected cloud backup.
- If you still have a JSON backup created by Meows 1.0.153 or earlier, restore it in the current version and create a new backup. Meows 1.0.165 will no longer list or import those files, but it will not delete them from Drive.
10
Settings reference
A refresh interval set on a server overrides the global interval here.
| Section | What you can change or open |
|---|---|
| Appearance Settings | Follow System, Light, or Dark, plus the badges shown on server cards. |
| Security Settings | Privacy Mode, Cloud Backup, bastion and tunnel configuration, and Clear Secure Data. |
| App Settings | Global refresh interval, language, terminal font and size, and Persistent Notification. |
| Data Management | The installed offline IP database source, date, and size, plus the size of Meows' local database. |
| Utilities | Linux and C references, network queries, and local calculators. |
| Help & Documentation | Online Help, Privacy Policy, Terms of Use, and Open Source Licenses. |
| About | Acknowledgements and Version Info. |
To copy the developer's contact email, open Settings → About → Version Info.
Terminal appearance
The terminal can use System Monospace, Sarasa Fixed, JetBrains Mono, Cascadia Mono, or Maple Mono. Font size can be set from 6 to 20. These settings change only how the terminal looks in Meows, not settings on the server.
11
Meows Lens and tools
Lens marks supported text in ordinary Shell output and Docker logs. Tap it to see the available actions. Recognizing text alone does not perform a lookup, open a URL, or execute a command.
What Lens recognizes
| Recognized input | Actions offered |
|---|---|
| IP address | Offline IP facts, WHOIS, reverse DNS, and relevant command suggestions. |
| IP network or CIDR | Calculate the recognized network's subnet in Lens. |
| Domain name | A and AAAA DNS lookups, WHOIS, TLS on port 443, and relevant command suggestions. |
| URL | Open the URL in an external app. Depending on its host, scheme, and port, Lens may also offer DNS, WHOIS, IP, or TLS. |
| Host and port | When Lens recognizes a host and port, it uses that port for TLS and offers the usual lookups for the host. |
| Cron or POSIX permission | Explain the schedule or decode the permission locally. |
You can review and copy command suggestions. Lens does not send them to Shell.
Built-in tools
| Tool or input | What it does |
|---|---|
| Linux and C references | Search the bundled command and function references and copy a command or function name exactly as shown. These tools do not contact a server. |
| IP lookup | Literal IP metadata uses the bundled offline database and can show country or region, ASN, organization name, and domain facts when present. Domain input is resolved with DNS first. On NAT64 networks, results may show both the resolved address and the address used for the database lookup. |
| DNS | Query A, AAAA, CNAME, MX, TXT, NS, SOA, CAA, SRV, PTR, or HTTPS records. Choose System default, Google, Cloudflare, AliDNS, DNSPod, or a custom resolver IP. System default follows Android's current network and Private DNS. The other choices send traditional unencrypted DNS directly to the selected resolver. |
| WHOIS | Domain, IP, and ASN input is detected automatically. WHOIS sends plaintext queries over port 43, first to IANA and then to the server named in the referral. |
| TLS certificate | Enter a host or host and port. The default port is 443. The address used for the connection is labeled as Target IP, Resolved IP, or Connection IP according to the input and network. Results also include the issuer, validity, key and signature algorithms, chain length, Subject Alternative Names, and SHA-256 fingerprint. The tool reads the certificate presented by the target. It does not verify hostname matching, the trust chain, or revocation status. |
| Subnet and permissions | Calculate IPv4 or IPv6 CIDR ranges and convert owner, group, and other permissions between symbolic and octal forms. |
| Cron | Build common minute, hour, day, or week schedules, or inspect a custom expression. |
| Text and number tools | Regex testing, timestamp conversion, base conversion, and password generation run locally on the device. |
Lens also recognizes a plain domain such as google.com.
12
Troubleshooting
A server will not connect
Check the host, SSH port, username, authentication type, and selected bastion. Meows retries ordinary network and server failures automatically. If the saved password or private key is missing, invalid, or wrong, edit the server. If the saved authentication information is correct, check SSH access on the target server or bastion, fix it, then choose Retry connection.
A private key is rejected
Confirm that the pasted key belongs to the selected user and that its public key is authorized on the server. An encrypted private key also needs the matching passphrase. When changing authentication type, enter the new credential rather than leaving it blank.
Upload and download still show loading
Upload and download rates need two comparable samples from the same connection, so they may appear later than other data after connecting. If they never appear, the remote network counters may be unavailable or not comparable between samples.
The terminal works, but metrics are unavailable
On minimal systems or restricted accounts, Terminal may connect even when some or all metrics cannot be read. This does not mean the SSH connection failed. For a missing or incorrect value, see A metric is missing or looks wrong below.
Docker is unavailable
Log in with the same SSH account and confirm that Docker is installed, the daemon is running, and the account can run Docker without an interactive sudo prompt.
The server host key changed
First confirm why the server host key changed and rule out connecting to the wrong host. Open the host-key review from the affected server card, Shell, or tunnel configuration. Compare the SHA-256 fingerprint with the server console or another trusted source. If it matches, choose Trust new key. If only a password or login private key is wrong, edit the server instead.
Monitoring stops in the background
Enable Persistent Notification and remove battery restrictions for Meows. Force-stopping Meows or using a task cleaner that ends the app also stops local monitoring.
A Drive backup cannot be restored
If the backup is missing from the list, sign in to Meows with the Google account that created it and refresh. If it is listed but cannot be restored, enter the exact master password used when it was created. Meows cannot recover or reset that password.
Lens does not offer an action
Lens works only with supported text in ordinary Shell output and Docker logs. It is unavailable while a full-screen program is using the alternate screen. Unrecognized text remains ordinary output.
A tunnel starts but the target is unreachable
Start with the forwarding type. With Local forwarding, the SSH server must be able to reach the target. With Remote forwarding, the Android device must be able to reach it. Then verify Bind Port, Host Address, and Target Port, and check the network path from the side that reaches the target.
A metric is missing or looks wrong
Include the Meows version, Linux distribution and version, kernel version, architecture, the affected metric, what you expected, and steps to reproduce it. Remove hostnames, IP addresses, usernames, credentials, and keys from any command output or logs you attach.
Email: Reveal email
After I understand the environment, I may reply with a short diagnostic command for that case. Read it before running it, then send back only output that is safe to share.