How to run quick terminal commands from your phone (without living in SSH)
A phone-friendly workflow for quick shell checks (git status, logs, dev servers) while the real terminal stays on your machine.
- CLI
- 0.1.0
- Preview ref
- f36aa45
When I’m on my phone, I don’t actually want “a full terminal experience”.
What I want is smaller than that:
- run
git status - tail a log
- check whether a dev server is up
- copy/open a local URL the session printed
Most of the time, jumping into a separate SSH app is enough to make me postpone the task.
What I wanted was a “quick command” workflow that’s still real (it runs on the machine that owns the repo), but doesn’t drag me into a full SSH/tmux setup on a tiny screen.
Most tools force you into one of two extremes:
- full SSH/tmux life
- or no terminal at all (just screenshots, logs, or whatever the agent said)
Happier is one of the options I ended up using because it gives you an embedded terminal attached to the session.
TL;DR
- Decide what you need:
- a few real commands/log lines (great fit), or
- a full terminal workflow (SSH/tmux is still better)
- Set up Happier (daemon connected) on the machine you want to run commands on, and connect your phone.
- Open any session → tap Terminal in the session header.
- Use it for quick commands and logs; it reconnects and follows the session.
The problem
When I’m using Happier from my phone, I’m usually making a small decision, not “doing terminal work all day”.
But small decisions still need real state:
- what branch am I on?
- did that command finish?
- what’s the error line?
The embedded terminal is useful because it’s part of the session UI instead of a context switch.
What I tried first (and where I bounced off)
- SSH app + tmux: totally works, but the friction is high on a phone.
- Remote desktop: works, but it’s heavy and fiddly.
- Just trusting the agent transcript: fine until you need one real command output.
- Happier embedded terminal: gives me a real shell, but in a session-shaped workflow.
If you’re new to Happier (what it is, and where to get it)
If you haven’t seen Happier before: it’s an open-source companion app (mobile/web/desktop) for AI coding agents like Claude Code, Codex, and OpenCode.
The workflow here is: keep the repo/workspace on the owning machine, and use Happier from your phone to inspect and act — including the occasional shell command.
Get set up:
- How to run Happier from your phone
- GitHub: https://github.com/happier-dev/happier
- Install/download: https://github.com/happier-dev/happier#how-it-works
- Discord (community + support): https://discord.gg/W6Pb8KuHfg
A workflow that works (step-by-step)
1) Enable the embedded terminal feature
Open Settings → Features and enable:
- Embedded terminal
Also choose a default location:
- Bottom panel (recommended on larger screens)
- Sidebar
- Details panel
On phones, Happier uses a more focused terminal presentation instead of trying to keep desktop-style docked panels on-screen.
2) Open the terminal from a session
- Open any session.
- Tap Terminal in the session header.
Happier opens a live shell backed by your connected daemon.
3) Use it for “session-adjacent” commands
A few examples that come up a lot for me:
git statusgit difftail -f <logfile>pnpm dev/npm run dev(and then open the detected URL)
The important detail: commands run on the connected machine for the current session.
4) Move the terminal without losing your shell
The embedded terminal is meant to feel like one session-owned terminal.
So if you dock it to a different location (bottom/sidebar/details), Happier keeps the same underlying terminal session.
5) Use the same terminal foundation for provider login flows
This is a nice consistency detail: when a provider supports native CLI login flows from inside Happier, those login surfaces reuse the same embedded-terminal transport.
So once you know how the terminal behaves (reconnect, clear/restart, detected URL banners), the provider login UI feels familiar.
Requirements (what has to be true)
If the terminal doesn’t open, the docs boil it down to three requirements:
- the Embedded terminal feature toggle is enabled
- your daemon is running and connected
- the session resolves to a reachable machine target
If the machine is offline (or the daemon isn’t connected), you’ll see an error state instead of a live shell.
Why this works (and what breaks)
It works because Happier treats the terminal as part of the session (not a separate, fragile “remote terminal page”).
It breaks when:
- your daemon isn’t running
- you’re on the wrong server profile
- the session can’t resolve to a reachable machine
Common mistakes
- Enabling the feature but forgetting the daemon → the terminal is daemon-backed.
- Expecting it to run on your phone → it runs on the connected machine.
- Using it for long interactive workflows → it’s best for quick checks and logs.