How to access an existing Claude, Codex, or OpenCode session on your phone
Find provider-native sessions, open them from your phone, then decide whether to keep them provider-backed or import them for longer-term continuity.
- CLI
- 0.1.0
- Preview ref
- f36aa45
I sometimes end up with sessions that started somewhere else:
- a Codex run I started in a terminal
- a Claude Code session I kicked off quickly
- an OpenCode session living in its own server/store
When I open my phone later, I don’t want to re-create the session or re-explain context.
I want to find that existing provider session, open it from my phone, and keep going — without having to copy/paste context into a brand-new chat.
The tricky part is that most tools don’t give you a clean “pick an existing session from a list, then decide how portable it should become” workflow.
TL;DR
- Decide which continuity you want:
- Provider-backed (you’re opening the existing provider session as-is)
- Imported/synced (you want the history + future work to live together in one app-managed session)
- Set up Happier on the machine where your provider sessions live (and connect your phone).
- Use Direct sessions → Browse provider sessions to open the existing session.
- If you want longer-term continuity, switch to Take over + Sync after you’ve inspected it.
The problem
When you say “I want to keep going from my phone”, you might mean two very different things:
- Keep going in the exact same provider session (provider-backed continuity)
- Bring that session into a place where it becomes portable and app-managed (import/sync continuity)
Both are valid.
The problem is that most tools blur them together, so you only notice the difference later:
- “Why did this session stop updating when my laptop went offline?”
- “Why does this feel like a different session after I switched machines?”
Once you name the two ownership models, the rest of the workflow becomes a lot clearer.
What I tried first (and where I bounced off)
- Start a brand-new session on my phone: works, but you lose the existing thread.
- Copy/paste context into a new session: works, but you always miss something (and it’s hard to keep updated).
- Keep everything on the original machine and remote into it (SSH/tmux/remote desktop): works, but it’s heavy on a phone.
- Happier (Direct sessions + Take over + Sync): gives you a clean “open the existing session first, then decide whether to import it” 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 your sessions and repos on a machine you control, and use Happier from your phone to open/monitor/continue them.
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) Open the existing session first (before you decide to import anything)
This is the step that most tools don’t really support.
In Happier, the flow is:
- Open the session list.
- Switch to the Direct tab.
- Choose Browse provider sessions.
- Pick:
- a machine
- a provider (Codex / Claude / OpenCode)
- a source
Happier will show a list of existing provider sessions it can discover for that selection.
You can open one immediately as a Direct session (meaning: provider-backed, machine-bound).
2) Open directly first (even if you plan to sync later)
When you open a provider session this way, Happier opens it as a Direct session.
That’s useful because it lets you:
- inspect the transcript
- follow new transcript entries
- monitor a live session
…without committing to an import/sync yet.
3) Decide: keep Direct vs Take over + Sync
After you’ve opened the session, you have two “continuation” styles:
Option A: keep it Direct
Keep it Direct when:
- you want the lowest-friction way to open the provider session
- you’re happy with the provider being the source of truth
- the owning machine will be online when you need to use it
The trade-off is important:
- if the session is still Direct and the machine goes offline, Happier can’t keep tailing/refreshing the provider transcript
Option B: Take over + Sync
Use Take over + Sync when:
- you want Happier to own the transcript moving forward
- you want cross-device continuity even if the original machine is offline
- you want the session to behave like a normal Happier synced session
Conceptually, Take over + Sync does:
- reads the provider transcript
- imports that history into the Happier session
- converts the session from Direct to Synced
4) Know when Resume ID is the better tool
Browsing provider sessions is best when you want to see a list and choose.
But sometimes you already have the id (or you want to resume by id from a new-session flow).
That’s where Resume ID comes in:
- Start a new Happier session
- Provide the provider’s resumable session id
- (When available) use the Browse picker next to Resume ID to fill it
A detail worth calling out: the Resume ID browse picker is scoped to the machine/provider/auth context you selected in the new-session screen (so you don’t pick a session from a different “home” that won’t actually resume).
Why this works (and what breaks)
This works because Happier doesn’t pretend there’s one universal session model.
It gives you a bridge:
- open provider sessions as they are (Direct)
- then sync/import only when you want Happier-native continuity
It breaks in the obvious direct-session case:
- machine offline → can’t tail or control a Direct session
Common mistakes
- Syncing everything immediately → I like opening Direct first, then syncing only the sessions I know I’ll want long-term.
- Forgetting Direct is machine-bound → if you need “works even when that machine is asleep”, sync it.
- Mixing up Resume ID vs browsing → browsing is a list picker; Resume ID is for “resume this specific session id into a new Happier session”.
FAQ
Does “Take over + Sync” delete the provider session?
No. It’s an import/continuity move in Happier.
Can I browse sessions from multiple Codex homes?
Codex can have more than one home (native vs connected-service-backed). The Resume ID picker is intentionally scoped to your current auth/home selection.