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.

Based on
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

  1. Decide what you need:
    • a few real commands/log lines (great fit), or
    • a full terminal workflow (SSH/tmux is still better)
  2. Set up Happier (daemon connected) on the machine you want to run commands on, and connect your phone.
  3. Open any session → tap Terminal in the session header.
  4. 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:

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

  1. Open any session.
  2. 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 status
  • git diff
  • tail -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.
mobileterminalworkflowsgitdebugging
Last updated: 2026-04-03