How to monitor existing Claude Code or Codex sessions from your phone (Direct sessions)
Follow a provider-native session in Happier, then optionally take over (or take over + sync) when you want Happier to own it.
- CLI
- 0.1.0
- Preview ref
- f36aa45
One of the most common “wait, do I have to start over?” moments is this:
You already have a Claude Code or Codex session running, and you want to monitor it from your phone.
The two obvious ways people try to solve this are:
- start a brand-new session on the phone (simple, but you lose the already-running thread), or
- remote into the machine that’s running the session (SSH/tmux/remote desktop)
What I wanted was a third option:
open the existing provider session first, then decide whether I want to “adopt” it into a more portable workflow.
Happier is one of the options I use for this. The feature is called Direct sessions.
TL;DR
- Set up Happier on the owning machine and connect your phone.
- Enable Direct sessions (experimental) if your server requires it.
- Open the provider session as a Direct session.
- If you want Happier to own it going forward, choose:
- Take over (attach control), or
- Take over + Sync (convert into a synced Happier-managed session).
What I tried first (and where I bounced off)
-
Start a new session in Happier: works, but you lose the already-running provider-native session context.
-
SSH in from my phone: works, but it turns into terminal work on mobile.
-
Happier (Direct sessions): lets me follow an existing session from my phone, then convert it only if/when I want. Trade-off: it’s experimental and capability-driven; some providers/backends support more handoff features than others.
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: use Happier from your phone to monitor an existing session (and optionally take it over), while the session still runs on the machine that owns the workspace.
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
The mental model: Direct vs Synced
- Synced session: created inside Happier; Happier owns the session metadata and can support resume/attach semantics when the provider supports it.
- Direct session: a view onto a provider-native session that isn’t synced into Happier unless you explicitly convert it.
Direct sessions aren’t “unsaved”. They’re just not synced until you choose to sync.
Step-by-step: open an existing session as Direct
- Enable Direct sessions if needed (feature flag / experimental toggle).
- Open the provider session from the Direct sessions flow.
- Monitor from your phone (transcript, tool events, approvals).
Step-by-step: Take over vs Take over + Sync
Take over
Use this when you want to take control of the provider session.
Take over + Sync
Use this when you want to convert the provider session into a Happier-managed synced session.
A good rule of thumb: if you want the session to be resumable and shareable in the “Happier-native” way, you usually want Take over + Sync.
Troubleshooting
Symptom: I don’t see Direct sessions
Likely causes:
- it’s disabled by feature flags
- it’s not enabled on the server
Fix:
- enable the Direct sessions experimental feature