147 points kmansm27 4 days ago 158 comments
Here’s a demo of the web and mobile apps - https://youtu.be/R8Wmy4FLbhQ
We started using Claude Code early last year and quickly ran into a pattern: agents could work for long stretches on their own, but progress would stall whenever they needed follow-up input. If that happened while we were away from our desks, everything just paused. We looked at remote agent solutions like Codex Web and Devin, which were the main options at the time, but they ran in remote VMs, and we wanted our coding agent to run in our own environment. Our first attempt at solving this was a lightweight wrapper that streamed messages from the Claude Code CLI to a mobile app, but that approach ended up being fragile and hard to maintain.
As the Claude Agent SDK matured, it gave us enough control to rewrite Omnara from scratch and run the agent loop directly. We chose to build a GUI across web and mobile instead of a TUI or CLI, because we think GUIs are generally more ergonomic for working with agents and code, especially on mobile. We still preserve the main strength of CLIs and TUIs: running anywhere, including on headless machines.
Omnara keeps that property by running a small headless daemon on the user’s machine (or a remote VM) that hosts the agent loop. The daemon maintains an authenticated, outbound WebSocket connection to our server, which relays messages between the agent running on the user’s machine and any connected web or mobile clients. Because the daemon only makes outbound connections, there’s no need for exposed ports, SSH access, or tunneling on the user’s machine.
In our first version of Omnara, users liked that agent sessions ran in their own environment, but they still depended on the machine staying online. Some users ran Omnara on a remote machine that stayed up, which worked well for them, though most still did most of their work on laptops. In the current version, Omnara can continue an agent session in a hosted remote sandbox when your local machine goes offline.
The conversation state of an agent is already persisted on our server, and you can optionally enable cloud syncing for the working code. When syncing is enabled, Omnara creates git commits at each turn in the conversation and pushes them to our server, so execution can resume from the same state regardless of whether it continues locally or in the cloud. If you continue working in a remote sandbox, you can later pull any changes back into your local environment when you return to your machine. Environment parity in the sandbox isn’t perfect yet, but in practice, missing dependencies are usually easy to resolve by asking the agent to install them.
Another thing we learned from using the initial version of Omnara is that mobile is fine for quick interactions, but not great for extended back-and-forth. Users asked for a hands-free way to keep agents moving while walking, driving, or doing something else, which led us to add a voice agent. Coming from more traditional software engineering backgrounds, we honestly thought coding by talking to a voice agent would be gimmicky and added it mostly as a fallback.
What surprised us is how useful the voice agent ended up being in practice. When working with coding agents, being redundant and overly explicit usually helps, and people naturally give more detail when speaking than when typing. Going back and forth with the agent as the conversation unfolds tends to produce a much more solid plan than trying to one-shot it with a prompt (this could technically also be done over text, but talking and iterating over voice feels easier and more natural). It’s also just fun. Talking through an idea with an agent while out on a walk is a lot more enjoyable than staring at a terminal screen.
To try it out, open your terminal and download Omnara with
curl -fsSL https://omnara.com/install/install.sh | bash
then run omnara inside any git repository. This starts a headless Claude Code or Codex session in that repo, which immediately appears in the Omnara web and mobile apps. From there, you can continue that session or start new ones remotely (with or without worktrees) and switch between the web and mobile clients without interrupting the agent.Omnara is free for 10 agent sessions per month, then $20/month for unlimited sessions. When agents run in your own environment, you can use your existing Claude or Codex subscription, so there’s no need to pay us for additional tokens. If you use Claude Code or Codex, we’d love to hear your feedback on Omnara!
zomglings 4 days ago | parent
My current solution is to have claude (--dangerously-skip-permissions) listen for messages in my slack DMs to myself and take action in response to those messages.
I would happily switch to something better.
Why is Omnara better?
kmansm27 4 days ago | parent
devinbernosky 4 days ago | parent
cmsparks 4 days ago | parent
Our goal is to be harness agnostic as well, so eventually we will be adding support for running OpenCode sessions in Omnara.
qwesr123 4 days ago | parent
cmsparks 3 days ago | parent
ncphillips 4 days ago | parent
kmansm27 4 days ago | parent
fragmede 4 days ago | parent
p-a_58213 4 days ago | parent
Although I must say that Omnara's UI looks absolutely fantastic. Well done!
faramarz 4 days ago | parent
I think I will only explore an alternative if the UI on the mobile is dramatically better (something to explore) but im trying my best to only pay for the model these day and avoid any other tooling subscription, and doing pretty great thus far.
isehgal 4 days ago | parent
faramarz 4 days ago | parent
cheers and congrats on the launch!
isehgal 4 days ago | parent
koakuma-chan 4 days ago | parent
tverbeure 4 days ago | parent
deron12 4 days ago | parent
It's interesting to me that YC has managed to dilute this prestige to a large extent. I don't think it's an inevitable result of scale: look at Google. I think "Xoogler" prestige has diminished, but it's not nearly as bad as what has happened to the YC label.
My theory is: YC never figured out their formula. The whole formula is essentially Paul Graham, who had a knack for trusting his gut (and sometimes his wife) when everything else in his "system" was saying NO.
Once they lost that, they had to rely on what was left, and it simply wasn't competitive anymore. It's like Apple in their John Sculley era. While Sculley is credited with growing Apple's revenue from $800 million to $8 billion, his approach created a "mess of dull SKUs" that eventually confused customers and diluted the brand.
They also have a (bad) habit of removing access to bookface for all the founders who aren't "active", decimating their network and in some ways discarding valuable knowledge around what didn't work.
geoffschmidt 4 days ago | parent
kmansm27 4 days ago | parent
koakuma-chan 4 days ago | parent
kmansm27 4 days ago | parent
dbbk 4 days ago | parent
keepamovin 4 days ago | parent
cmsparks 4 days ago | parent
notabot33 4 days ago | parent
Not affiliated with that project, but have been using it for a few weeks and it blows every other 'GUI for the CLI agents' I've tried out of the water in terms of both features and just working snappily/consistently.
Also totally free, and actively being improved by the solo maintainer and an active community of contributors.
Omnara providing a tunnel for you is nice, but considering Tailscale is dead simple and free, feels hard to justify $20 a month for what looks like considerably less features than openchamber
kmansm27 4 days ago | parent
notabot33 4 days ago | parent
FYI openchamber/opencode support claude/codex/copilot subscriptions as well
sanufar 4 days ago | parent
sanufar 4 days ago | parent
kmansm27 4 days ago | parent
jdmoreira 4 days ago | parent
isehgal 4 days ago | parent
We've heard this from other users and it's on our roadmap. The challenge is we're building features like voice coding agents and hosted sandboxes that require plaintext inputs, so we'd need two execution models. Doable, but adds complexity for our team size.
That said, it's something we're prioritizing as we grow. No promises on timing, but it's coming.
If you want to discuss specific requirements or a local-only mode, happy to chat: https://discord.gg/Dc46sYk6e3
kovek 4 days ago | parent
kmansm27 4 days ago | parent
kovek 4 days ago | parent
kmansm27 4 days ago | parent
kovek 4 days ago | parent
splintercell 3 days ago | parent
There are attempts to create a fork maintained by other developers, but they're yet to be launched.
kmansm27 4 days ago | parent
What do you mean by syncing? Happy coder syncs sessions between all my happy coder clients. I can even see in real time how happy coder in my browser's conversations progress as well as on my phone, in parallel.
Omnara also displays realtime conversations between all Omnara clients. What I mean by syncing is syncing your conversation and code changes to a cloud sandbox, which is useful if you're using Omnara on your laptop and you close your computer (as explained in the original post). If you run your agents on a persistent cloud VM, then this is less of a value add.
I can voice chat with Happy coder.
We use https://docs.livekit.io/agents/ which runs the voice agent in the cloud (to enable the above use case, and a better experience when you're using your phone when it's off), whereas I believe happy runs a client-side voice agent.
kovek 4 days ago | parent
sneak 4 days ago | parent
That means you don't have E2EE, period. Implying that there is such a thing as "true E2EE" (as opposed to "E2EE") either indicates that you don't know what E2EE means, or that you're scammily trying to do what Apple does with iMessage and say that something that isn't E2EE is, for marketing purposes.
E2EE means that nobody except the endpoints has keys. There is no such thing as "true E2EE" any more than there is such a thing as "true pregnancy".
unsupp0rted 4 days ago | parent
kmansm27 3 days ago | parent
lalo2302 4 days ago | parent
redrove 4 days ago | parent
kmansm27 4 days ago | parent
lalo2302 4 days ago | parent
At a first glance I understood all sessions would be created at the local machine. My niche use case having a mac mini on 24/7 at home would make this interesting. That’s why I mentioned the cheaper price.
Looks like a good product. Everyone is afraid of the grind, keep going!
GraffitiTim 4 days ago | parent
"1. For a Linux user, you can already build such a system yourself quite trivially by getting an FTP account, mounting it locally with curlftpfs, and then using SVN or CVS on the mounted filesystem. From Windows or Mac, this FTP account could be accessed through built-in software."
ciaranmca 4 days ago | parent
Obligatory https://news.ycombinator.com/item?id=9224
fragmede 4 days ago | parent
Welcome to the new economy.
busch_j 3 days ago | parent
The apps that do this are an easy money grab though, I have a seen some total trash ones that still rank high on IOS store because people still want this so I am sure they will get some subs.
petervandijck 3 days ago | parent
RobMurray 4 days ago | parent
cmsparks 4 days ago | parent
We try to provide a decent chunk of features on top as well, including (but not limited to):
* web support
* worktrees
* sandboxing
* richer git management (richer diffs, checkpoints, git operations)
* preview URLs
whazor 3 days ago | parent
Ideally I would like a ACP proxy wrapper, where I integrate ACP into my code editor and still be able to use it remotely via a phone.
splintercell 3 days ago | parent
kgc 4 days ago | parent
kmansm27 4 days ago | parent
CharlesW 4 days ago | parent
Claude Code will help you set this up using tmux. Voice input and output personally seems like a gimmick, but OS accessibilty features should work fine for this.
kmansm27 4 days ago | parent
"Claude Code will help you set this up using tmux" - I don't think that you can connect to tmux sessions running in Claude Code/Codex remote VMs using their mobile apps. Their mobile apps don't provide a terminal emulator afaik
CharlesW 4 days ago | parent
Right, this requires using a terminal app.
elxr 4 days ago | parent
Nice to have when cooking and I want to use my laptop without wiping my hands dry constantly.
sidsud 4 days ago | parent
Sidenote - is this novel enough to be backed by YC? Just seems like a feature that Anthropic/OpenAI could release any day.
kmansm27 4 days ago | parent
And for your sidenote, we'll see when Anthropic/OpenAI release something similar. For now it's pretty useful, and we're making it better every day.
sidsud 4 days ago | parent
kmansm27 4 days ago | parent
jpallen 4 days ago | parent
kmansm27 4 days ago | parent
jpallen 4 days ago | parent
- I only had the option to create a worktree from main. I'd like to be able to pick any starting branch. Not a big deal, I just told claude to checkout the branch I wanted as my first instruction.
- For some reason in the Android app the usual automatic capitalisation of the first letter in a sentence doesn't work. Claude probably doesn't care, but I like to type in proper sentences!
- It would be nice if the worktree names got semantic names, e.g. by running my first prompt through Haiku. Maybe that's not the order things are set up in though
cmsparks 4 days ago | parent
This is actually a PR that I have open right now, it'll be out soon!
> automatic capitalization
We'll get this fixed
> automatic worktree names
definitely on our roadmap, probably will do that this week
Nextbysam 4 days ago | parent
Nextbysam 4 days ago | parent
try spoq.dev , it's free
inercia 4 days ago | parent
TheOnlyWayUp 4 days ago | parent
If I paste in something confidential, and Omnara suffers a breach tomorrow - will my conversation data be a part of it?
isehgal 4 days ago | parent
hmokiguess 4 days ago | parent
I have been pretty satisfied with it, and it’s free with unlimited sessions, so I need a good reason to switch
kmansm27 4 days ago | parent
hmokiguess 4 days ago | parent
reliability is not big selling point given the high cost on unlimited sessions which I use quite a bunch
kmansm27 4 days ago | parent
hmokiguess 4 days ago | parent
I was curious if it had something Hapi didn't have, but sounds like it doesn't.
Thanks for your help!
theturtletalks 4 days ago | parent
There's also Happy, Coder/Mux, and so many others that actually started out open-source and stayed that way and I can be sure my chats are not going to a 3rd party?
kmansm27 4 days ago | parent
And Omnara chats are stored in our DB, which is how we're able to enable our voice agent, cloud syncing, and ability to see all your chats while your machine is offline. Basically anything you see in the web and mobile clients is being proxied/persisted through our server, until you delete the chat.
theturtletalks 4 days ago | parent
kmansm27 4 days ago | parent
dakolli 4 days ago | parent
cmsparks 4 days ago | parent
Even though this might be "the obvious thing", I think there is a non-obvious way to build it.
CuriouslyC 4 days ago | parent
cmsparks 4 days ago | parent
__sy__ 4 days ago | parent
saadn92 4 days ago | parent
nzxt210 4 days ago | parent
cmsparks 4 days ago | parent
We try to provide more features on top as well, including (but not limited to):
* improved web interface
* worktrees
* sandboxing
* richer git management (richer diffs, checkpoints, git operations)
* preview URLs
rvz 4 days ago | parent
Just shows that AI has advanced so quickly that it is easy to clone YC startups to zero.
cmsparks 4 days ago | parent
sneak 4 days ago | parent
mchusma 4 days ago | parent
kmansm27 4 days ago | parent
kmansm27 3 days ago | parent
itissid 4 days ago | parent
I have just a list of chat sessions on the web app on all my projects. The webapp is modified to launch claude code daemons (borrowed from humanlayer/codelayer) and exposes the outbound STT from the WebRTC into a chat session.
- MCP Auth is via auth0
- Webapp itself is gated by a Bearer token.
This itself gets me pretty far. I am not sure what more this is offering?
My TTS/STT models are local by Kyutai and the voice agent's LLM between STT and TTS is used to determine some basic context: e.g. what project directories, mcp servers to select and what skills to use for launching the daemons.
kmansm27 4 days ago | parent
itissid 4 days ago | parent
I spend my time trying to tuning the voice+webapp experience: i.e. how it can explain things, can it surface thinking tokens from claude tools properly etc. The sweat, blood, voice go into `/create_research -> /create_plan` loop before the `/implement_plan`. Sometimes I copy the research and paste it into chatGPT for review or comments as well.
I generally use the MCP to get it to follow commands and explain things to me to make progress in this cycle, and I often pause it and ask for drawing me a mermaid a sequence diagram for events or a block diagram showing how pieces go together.
groovetandon 4 days ago | parent
barapa 4 days ago | parent
fiico 4 days ago | parent
JLO64 4 days ago | parent
- Is it possible to completely disable or not use the remote sandbox features? I would never use them and would prefer my code stays on my device.
- For those of us that are using subscriptions, does it show our remaining usage? I would hate to run out of tokens in the middle of a session.
- One feature of the CC TUI I sorely missed on mobile is the ability to look up and directly reference files via “@“. Is any functionality like this planned?
- (This likely won’t affect my decision to use the service as I’ll just put it on a company card.) $20 per month for a service that runs CC on a remote machine in a convenient matter is steep but doable. Asking that same amount for a running code on my own server seems a bit unjustified, especially since this is pricier than the cost of a Claude pro subscription. Are there any plans to offer a cheaper tier for those of us that just want to run this on our own machines?
kmansm27 4 days ago | parent
Is it possible to completely disable or not use the remote sandbox features? I would never use them and would prefer my code stays on my device.
Yes, the remote sandbox feature is disabled by default, and you have to manually enable it for the syncing to start.
For those of us that are using subscriptions, does it show our remaining usage? I would hate to run out of tokens in the middle of a session.
Currently Omnara doesn't show your usage limits, you would have to check that at claude.ai. I'll look into add that though.
One feature of the CC TUI I sorely missed on mobile is the ability to look up and directly reference files via “@“. Is any functionality like this planned?
Yes, this exists in Omnara already!
Are there any plans to offer a cheaper tier for those of us that just want to run this on our own machines?
That's a good idea, we'll think about doing this where we don't offer sandbox + voice, and just have the messaging service.
njarecki 4 days ago | parent
kmansm27 4 days ago | parent
ed_mercer 4 days ago | parent
saberience 4 days ago | parent
Also, I'm not sure many engineers really WANT to be able to do more "vibe coding" away from their laptop.
Is this really what our job is going to be? Typing in prompts from a mobile phone?
Good luck guys but I think a pivot might be in order.
cadamsdotcom 4 days ago | parent
I’ve been iterating the past few months on a solution to use Claude Code on my phone while it runs on my laptop and it’s a lot of moving parts: Tailscale, git worktrees, tmux, an always-on “caffeinate” process, and a ton of hooks & tweaks to fix bugs along the way. It’s become very comfortable but in the process, impossible for anyone but me to understand.
But it’s awesome because I own the machine that runs tests and am not paying monthly for anything but Claude Max - and it keeps going if I lock my phone or go into a cell reception dead zone.
Productising such a thing would be a very interesting challenge indeed.
groask 18 hours ago | parent
The remote/phone side I haven't solved (your Tailscale+tmux setup sounds solid for that), but the "at my desk" problem — losing track of which terminal is doing what — I ended up productizing into a small menubar app called GroAsk (groask.com). It does two things: ⌥Space to quick-launch any AI, and a dashboard showing real-time status of all Claude Code sessions so you can jump to the right terminal instantly.
Very different scope from Omnara — purely local, purely desktop, no remote/phone stuff. But for the "I have 3 sessions running and forgot which one needs me" problem it's been a huge quality of life improvement for my own workflow.
cadamsdotcom 12 hours ago | parent
So the main repo is always the left-most, then worktree 1, and so on.
Rereading the Claude Code transcript is an excellent tool for getting back into the context of what I’m working on in a particular window.
I struggle to run more than 3 truly complex implementations at once, but can handle as many as 6 or 7 if I’m just fixing little bugs.
fathermarz 4 days ago | parent
Was there some unlock that happened to make it viable again?
I was an omnara user until that happened and then I switched to happy.engineering. It’s been okay, but I’m excited that omnara is back
kmansm27 4 days ago | parent
Now we use the Claude Agent SDK (basically a headless version of Claude Code), and we make our own UI for laptop and mobile. This is way easier to maintain than the previous solution we had. You can import Claude Code CLI sessions into Omnara, but you cant see a 1:1 realtime Claude Code CLI session in Omnara anymore. But we think that a GUI is a better experience than the CLI anyways for managing a bunch of agents.
quxbar 4 days ago | parent
wiseowise 4 days ago | parent
sneak 4 days ago | parent
For sensitive apps, it can't merge them, so I have to hit the button in the Gitea web interface (also on my phone), which does the same thing.
dbbk 4 days ago | parent
linux_devil 4 days ago | parent
gregjw 4 days ago | parent
mpaepper 3 days ago | parent
cmsparks 3 days ago | parent
nicewood 3 days ago | parent
topnde 3 days ago | parent
I am currently building something similar but only for Codex app (not terminal) https://remotecodex.app An e2e encrypted link between the Codex app and the phone.
jackbuilds 3 days ago | parent
kundi 3 days ago | parent
How are you handling private data and chats transmitted?
cmsparks 3 days ago | parent
> We don't have E2EE yet (it's on the roadmap), so some level of trust in Omnara is required today. All repo operations happen locally on your machine. For messages/chat history: we store those encrypted at rest because we need access to sync across devices, send notifications, and resume agents. Cloud sandboxing is opt-in and would require syncing codebase state.
kundi 1 day ago | parent
cmsparks 6 hours ago | parent
However, even if you don't opt into syncing, tool calls will end up sending pieces of code from your codebase to our backend. That's just the nature of how we handle persistence of chats. Though messages/chats are retained until you delete them.
FergusArgyll 3 days ago | parent
All demos of coding from your phone or even just agents in general show the user just relaxing in a park or whatever.
If you have tons of free time and you are employed, what do you think will happen? Solve for the equilibrium!
fluidcruft 3 days ago | parent
Omnara is easy to get a taste and with that pricing the next step is just going to be: switch to happy. But for people starting out you're just driving people to happy instead and when they upgrade from $20/mo LLM plans you will have pushed them to happy and they'll stick with happy rather than come to omnara.
josefrichter 3 days ago | parent
quotz 17 hours ago | parent