ShellSage

Android · v0.2.73

The terminal that
thinks with you.

An AI-first SSH client for your phone. The Sage lives inside the shell — explain errors, write the next command, pipe a screenshot for context. Built for the moment your laptop isn’t in the room.

Latest release: v0.2.73 — Jul 12, 2026 · 8:00 PM EDT

  7 days free Pro · no card required iOS & Android

Built for the way devs actually work

Dual-engine
Two engines under one Sage
0 tabs needed
Stop Googling errors mid-incident
7-day trial
Free mode after — no credit card
$9.99/mo
or $99.90/yr · cancel anytime
Why we built this

Mobile SSH has been stuck since 2014.

Every “modern” terminal is a port of the same paradigm. Black screen, blinking cursor, you on your own. We grew up shipping from phones. This is what we wanted.

The old way

An error you have to Google in another tab.

Open terminal. Read error. Switch app. Google it. Read Stack Overflow on a phone. Switch back. Forget the command. We just… ask the AI in-line.

The old way

Retyping the same six commands every day.

Tail this. Restart that. Check the queue. You’ve typed it a thousand times. The AI remembers what you do on each box and brings it up first.

The old way

Mobile UX as an afterthought.

File transfer buried three menus deep. No voice. No way to share a screenshot of an error. The phone is treated like a tiny laptop instead of a phone.

The old way

A “copilot” bolted onto the side.

A sidebar. A tab. A modal you have to copy/paste in and out of. AI shouldn’t be a feature. It should be where the shell starts.

AI is the shell, not a sidebar

One tap. It explains.

Long-press any line of output to send it to the assist with the surrounding context. No copy-paste, no leaving the session. Ask “why?”, ask “what next?” — get an answer that knows which box you’re on and what you just ran.

  Pick the engine that fits the host
root@db-01 — ssh
$ pg_dump prod > backup.sql
pg_dump: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: role "postgres" does not exist
Sage · explain & fix
The default postgres superuser doesn’t exist on this box. Connect as your actual DB user:
▶ pg_dump -U marcin prod > backup.sql
Natural language → shell

Say what you want. Run what works.

Type or speak it the way you’d say it to a teammate. The AI turns it into the exact command for the OS you’re on, shows you the command first, and only runs when you tap.

No more man. No more “what flag was that again?”.

“Restart nginx and tail the access log, last 50 lines, follow.”
On this Ubuntu box: sudo systemctl restart nginx && \ sudo tail -n 50 -f /var/log/nginx/access.log ▶ Run on prod-web-01
Screenshot → context

Paste an error. Get the fix.

Hit screenshot mid-session and the image gets piped into the AI alongside the surrounding terminal context. Stack trace from a coworker’s Slack? Drop it in. Photo of a server rack sticker? Drop it in. Vision-capable models do the rest.

Screenshot
Error: ENOSPC: no space
left on device, write
at Object.writeFile
(node:fs:1234:11)
AI suggestion
Disk is full. Check what’s eating it:
▶ du -sh /var/log/* | sort -h
Voice → cursor · new

Hold the mic. It types.

The mic key in the bottom toolbar isn’t a side-feature — it’s the fastest way to drive a server from a phone. Hold to dictate, release to send. Your voice becomes shell-ready text in the cursor where you were already typing.

Short-press dictates literally — perfect for file paths, long flags, and the names you can’t spell after midnight. Long-press flips into intent mode — describe what you want and the Sage turns it into the exact command for the box you’re on.

  On-device transcription · default   Audio never leaves the phone   Locked off on prod-tagged hosts
9:41 ssh prod-web-01 100%
root@prod-web-01:~# systemctl status nginx
  Active: failed (Result: exit-code)
root@prod-web-01:~# _
· listening ·
“rebuild the nginx container with the new cert and restart it”
hold mic, talk, release —
on-device transcription · 0.3s release-to-cursor · $0 per command
1
Faster than thumbs. A 12-word command takes 4 seconds to dictate vs. 25 to thumb-type. On-call from a car, that’s the difference between a fix and an outage extension.
2
No mistype-and-wipe. File paths and long flag strings are exactly where mobile typing breaks. Voice doesn’t guess.
3
The Sage’s read still fires. Whatever you dictate gets the same blast-radius preview before it runs. Talking faster doesn’t mean shipping faster.
More of what we did right

Mobile shouldn’t mean compromised.

Voice ShellSage voice input turning speech into a shell command on a phone

Voice on the go

Speak the command.

Hold the mic, say “deploy the staging branch”, get the command queued. Reused from our voice stack — we’ve been shipping it since 2024.

SFTP Browsing and transferring server files over SFTP in ShellSage

Real SFTP

Tap to attach files.

Tap-to-attach uploads, tap-to-pull downloads. No third-party file app, no “please install” dialogs. It works the way phones work.

Memory ShellSage remembering per-host session context across reconnects

Session memory

It remembers what you were doing.

Per-host context that survives disconnects. Reopen the session next morning and the AI knows where you left off — what you fixed, what you didn’t.

Security SSH key authentication with encrypted credential storage and a biometric gate in ShellSage

Encrypted key storage

Your keys stay encrypted — and synced.

Save a host and its key or password rides up to our servers encrypted at rest with AES-256, so a new phone just works — no re-keying, no USB cable. Host-key pinning catches impostor servers, and an optional Face/Touch ID gate stands between anyone holding your phone and your keys. We never share credentials with anyone.

Observability Tailing two server logs at once in split panes on a phone with ShellSage

Live tail, multi-pane

Tail two logs at once.

Split panes on the phone. One pane for the access log, one for the error log, AI watching both for anomalies.

Config Per-host SSH config with saved keys, jumphosts and port forwards in ShellSage

Per-host config

Saved keys, jumphosts, port forwards.

Everything you’d put in ~/.ssh/config, in a UI that doesn’t fight you. Imports your existing config on first launch.

Who it’s for

Made for the people who ship from a phone.

Solo dev on call

3 a.m. production fire.

PagerDuty buzzes. You’re in bed. The laptop is downstairs. SSH in from your phone, ask the AI what the error means, restart the worker, go back to sleep.

$ restart the queue worker
> sudo systemctl restart sidekiq

Sysadmin between meetings

Hotfix while walking.

Tail the access log on the way to the next room, spot the spike, ship the rate-limit config — done before you’ve sat down again. No laptop. No problem.

$ rate-limit /api/login at 5/min
> editing /etc/nginx/limit.conf

Indie hacker / founder

Your droplet, your pocket.

Manage your VPS like a desktop without the Termux learning curve. Migrations, restarts, logs, file uploads — in a UI built for thumbs and an AI that fills the gaps in your sysadmin knowledge.

$ how much disk is free?
> / has 41% used (24 GB free)
Default-private · built for prod

We don’t keep your session.

Every command you type, every voice transcript, every assist payload is processed in real-time and dropped the moment the response lands. Commands, voice audio and terminal scrollback are never stored on our servers — not in the database, not in the logs. Voice is transcribed on-device: the audio never goes anywhere.

Saved hosts are the one thing we do keep, because that’s what makes a new phone just work: the key or password for a host you save is uploaded and stored encrypted at rest (AES-256) so your servers follow you between devices. Plainly: that’s encryption at rest, not end-to-end — we hold the decryption key and hand the secret back to your app at connect time.

Anything else you might want kept — scrollback for the next reconnect, an audit trail of your AI chats, snippets to reuse — stays off until you turn it on, per category, in Settings → Privacy & Retention. Every one of those has a one-tap wipe beside it.

  Commands, voice & scrollback never stored   Saved keys encrypted at rest — never shared, never sold   Canadian data residency · SOC 2 in progress   Biometric gate before a key is ever used
Settings → Privacy & Retention
7 of 8 off
Session scrollback
Keep terminal buffer locally per host
AI usage history
Local audit log of every assist call
Voice transcript log
Keep 7 days of dictated text locally
Crash reports (PII-scrubbed)
Stack trace + app version + OS only
Cross-device sync
Encrypted at rest · never shared
Hard-purges within 24 hours · biometric required
Where does your data go?
Your commands never leave the device
Voice audio transcribed on-device
Terminal scrollback never stored verbatim
AI assist payloads only when you tap it
Keys for hosts you save synced, encrypted at rest
Pricing

Three tiers. Pick what fits.

7 days free with full Pro access. No card to start. Cancel from inside the app.

Free

$0/mo
  • 2 saved hosts · 5 sessions
  • 50 Sage queries / month
  • 10 voice minutes / month
  • 5 screenshot debugs / month
  • 100 MB SFTP / month
Start free

No card required

Team

$19.99/mo
or $199.90/yr · save 17%
  • Unlimited hosts & sessions
  • Unlimited Sage queries
  • 500 voice minutes / month
  • Unlimited screenshot debugs
  • Unlimited SFTP
  • 5 seats included
  • Priority email support < 24h
Choose Team

7 days free · then $19.99/mo

ShellSage Termius JuiceSSH Blink Shell
AI in the shell (dual-engine) Core feature No No No
Voice command input Yes No No No
Screenshot → AI context Yes No No No
SFTP file transfer Yes Yes Plugin Yes
iOS & Android Both Both Android only iOS only
Price $9.99/mo · $99.90/yr $9.99/mo Free + paid plugins $19.99/yr

Competitor pricing reflects publicly listed rates at time of writing and may change. We compete on the AI, not on price.

Frequently asked

The honest answers.

What does the AI cost on top of the subscription?
Nothing. AI usage is included in the subscription with fair-use limits well above what a normal day of debugging needs. We absorb the API cost.
Does the AI see my server data?
Only what you explicitly send. When you long-press a line to ask the Sage about it, that line plus a configurable window of context goes to the model. Nothing is sent in the background, ever. You can also restrict per-host: some servers can have AI disabled entirely.
iOS, Android, or both?
Both. Same account, same hosts, same keys — a host you save syncs to your other devices, its key or password stored encrypted at rest on our servers. We ship updates roughly weekly while in early access.
Is there a free-forever tier?
Yes — the Hobby plan is free forever: a couple of saved hosts and a taste of Sage, no card, no ads, and we never sell your sessions. When you outgrow it, Pro is $9.99/mo (or $99.90/yr) and unlocks higher limits plus BYOK. Every new account also starts with a 7-day full-Pro trial.
How is this different from running an AI CLI on the server itself?
That assumes you’re already on a machine with the CLI installed and an API key wired up. ShellSage is the phone-first shell — SSH client, file transfer, voice input, screenshot intake, session memory across hosts. No laptop required, no per-host AI setup.
Is it security-audited?
Independent third-party audit is scheduled before general availability. Today: SSH protocol via libssh2; the key or password for a host you save is stored on our servers encrypted at rest with AES-256 (encryption at rest, not end-to-end — we hold the decryption key and return the secret to your app at connect time); host-key pinning on first connect; optional biometric unlock per session. We document our crypto choices openly rather than dress them up.
Get the trial

Start in under a minute.

Download the app. Import your existing ~/.ssh/config or add one host. Long-press an error. That’s the demo.

7 days free No card required iOS 16+ · Android 10+

We email you a one-tap sign-in link. No password. Unsubscribe any time.