CodeMote - Claude Code, Codex, any CLI agent. Driven from your iPhone

CodeMote pairs your iPhone to your machine or VPS and gives you the real sessions. Live terminal on your lock screen, push when your agent needs approval, full diffs, complete git flow. Direct encrypted connection. Your code never touches our servers.

Add a comment

Replies

Best
Hi PH! I built CodeMote because my workflow became "start Claude Code, wait 20 minutes, answer one question, wait again." I was stuck to my desk waiting an agent that needs me only few times. CodeMote pairs your iPhone or iPad directly to your machine. And is not only a terminal inside a phone, is a full workspace (git, file editor, speech-to-text, servers) And the part I'm most proud of: the terminal streams live into a Lock Screen Live Activity. When your agent stops to ask something, it flips to waiting and sends a push. I have approved plans from the beach, the gym, without bringing my pc with me. My record is a full feature shipped from a motorcycle stop. Technical bits, because this crowd will ask: • Agent agnostic. If it runs in your terminal, it runs in CodeMote. Claude Code, Codex CLI, Gemini CLI, opencode, aider, whatever comes next. • Works via a VS Code/Cursor extension, or npx codemote-cli on any machine, including a headless VPS. • Connection is a direct encrypted tunnel, devtunnel by default, Tailscale or ngrok, adding cloudflare too, if you prefer. There is no relay server. My servers never see your code or your session. That was non-negotiable for me. I'll be here all day. Tell me what's missing, what's broken, and what you'd need to actually leave your desk while your agent works.
💎 Pixel perfection

The interesting constraint here isn't the iOS interface, it's latency and interruption. CLI agents mid-task don't always pause cleanly, and if you're driving one from your phone on a spotty connection and the session drops, you need to know whether the agent kept going, stopped, or did something half-finished that left the repo in a weird state. Curious how CodeMote handles that. Also wondering whether you have any visibility into agent output in real time or if it's more of a fire-and-check-back situation, because the value of mobile control drops a lot if you can't actually watch what's happening.

 Great questions Florent, really thanks for the opportunity to explain better how CodeMote works

The agent doesn't run on your phone. It runs on your machine (Mac, VPS, wherever your code is), and your phone is just a live window into it. So if your connection drops, nothing happens to the agent, it keeps going exactly as if you'd locked your phone and stepped away. When you're back online, you pick up right where you left off and see everything that happened while you were gone. Nothing's lost, and you're never guessing whether it kept running or stalled.


And yes, it's fully live, not fire-and-check-back. You watch it work in real time and can jump in the moment it needs you. And sends you notifications when it needs you to do action, so you can fire and forget actually.

I hope I answered your concerns :) what do you think?

this is the thing I actually want, I keep starting a session then getting pulled away before it needs the next approval. one thing I'd be careful about is approving a big diff from a 6 inch screen while distracted, it's easy to skim and tap approve on something you'd catch immediately on a real monitor. do you have any friction built in for large or risky-looking diffs, like forcing a scroll through the whole thing before the approve button unlocks, versus treating every approval the same regardless of size

 thanks for the comment Gal!

in my personal experience i didn’t find any problem reviewing on my iphone, but i’m used to since im a heavily user nowadays! but for a person who’s just starting to use it can be weird the first few times, but then you develop more experience .

but what you have suggested can be really good 😄

 makes sense, muscle memory probably does most of the work once you're used to it. i'll probably end up the same way after a few weeks. good luck with the launch

 Thanks Gal! btw i would love a feedback by a smart person like you, could help me improve the app a lot

happy to give real feedback since you asked. one thing i'd want before trusting an approval from a lock screen notification: some way to see the actual diff or command being run, not just the question text. right now it sounds like you approve based on the agent's phrasing alone, and that's the exact moment a subtle bad command would slip through. even a truncated diff preview on the live activity card would go a long way for the higher-stakes approvals

The Lock Screen Live Activity flipping to waiting with a push is what actually makes this desk-free, since long agent runs are mostly idle waiting for one approval. When I have two or three agents going at once (say Claude Code and Codex in separate sessions), do they each get their own Live Activity/terminal, or is it one merged stream where I have to work out which agent is asking? And if the tunnel drops mid-run, does the session survive on the machine side and re-attach, or is the terminal state lost?

 you can activate live activities per terminal, so every agents get their own!

and yes if connection drops, it get resumed automatically, no info lost

Per-terminal live activities is exactly what I hoped — thanks. On the reconnect: while the tunnel is down, does the agent keep running headless on the machine so I reconnect to finished work, or does it pause until the device is back? That difference decides whether I can kick off a long run and actually walk away.

 yes!

it runs in the machine and streams to the app, so while you are offline it is still working, when you go back online everything is updated correctly

Perfect, headless-on-the-machine with reconnect sync is exactly the walk-away behavior I wanted. One follow-up for the multi-agent case: if I have three running offline and one hits an approval it cannot auto-accept, does that one just park until I am back while the others keep going, or does anything about the paused agent stall the shared session or stream? Trying to make sure one blocked agent does not hold up the rest.

 I'm sorry for the late response, if you have 3 agents working, and one need approval, if you enabled notification it will just send you a notification, and you approve that session. every agent is independent from each other.
and yes they continue while you are offline, when you are back Apple sends you the notification, otherwise going into the terminal of each you can find what they are doing

That "start it, wait 20 minutes, answer one thing, wait again" loop is basically my day, so this really lands for me. One place I might differ from the demo: I run most sessions in auto-accept, usually a few at once, so the agent rarely stops to ask — it just finishes or dies on an error. So I'm curious how the push plays out for me — does the Live Activity fire on completion and failure too, or only when the agent needs input? And can it hold several concurrent sessions and pull me to whichever finishes or breaks first, or is it one pairing at a time? Ambient status across a handful of auto-running agents is what would actually get me away from my desk. The no-relay, code-never-leaves-my-machine setup is a big part of why I'd want to try it.

 hey kyo , thanks for you question!

the push notifications are per agent, so you can have multiple sessions and everyone fire an independent notification and live activity.

and yes they intercept both failure or when agent is done, everytime clause needs you to do something, it sends you an alert

 That's the combination I was hoping for — per-agent notifications plus intercepting both "done" and "failed" is exactly what makes it work for how I run. The only thing I'd watch at three or four parallel agents is signal volume: keeping the "failed / needs input" pings loud while muting the routine "done" ones would stop it turning into noise. Either way, this just became something I'd actually keep on my phone — thanks for the thorough answer, and congrats on the launch.

Awesome! It's changing the rules of the game. I want to use it on my bike too. Stop, check, and on the road again

 you definitely can! i’ve already coded from my motorcycle too, and is awesome! here is the

Finally tried it on my VPS and the lock screen terminal blew me away, actually usable for quick checks. The encrypted direct connection is a nice touch too.

 Thanks Poyraz! I wanted it to be 1:1 and your things stays yours!

The lock screen terminal integration is genuinely clever, feels like something Apple should have shipped themselves. Love that the connection stays direct and encrypted too, the no-middleman approach is the right call for dev tools like this.

 Thanks Selin! really appreciate this comment :)

Does CodeMote support juggling multiple agent sessions at once, like Claude Code on one project and Codex on another, from the same phone view?

 absolutely yes!
it is a 1:1 mirror of your workspace on your laptop/server, you have unlimited terminals, so you can open 2/3 terminal with different agents CLI on each of them, and do things like you would do on your laptop.

The requirement for codex is that you need to use the CLI version

💡 Bright idea

I think speech to text fits this workflow well. Could custom voice shortcuts approve common actions even faster?

 Hello Jason, thanks for you comment! CodeMote currently implement a shortcuts for common actions, so you don't need to every time type the same thing

but could be even better if you could launch this shortcut easier, or even from the live activity.
you gave me a good input for a new feature!
Thanks

12
Next