启动 HN:Omnara(YC S25)– 随时随地运行 Claude 代码和 Codex
大家好,我们是来自Omnara的Kartik、Ishaan和Christian(<a href="https://www.omnara.com">https://www.omnara.com</a>)。我们正在构建一个网络和移动端的智能IDE,支持Claude Code和Codex,让您可以随时随地运行和与编码代理进行交互。Omnara允许您在自己的机器上运行Claude Code和Codex会话,并通过网络和移动界面展示这些会话,让您即使不在桌前也能保持参与。可以把它想象成Claude Code Desktop或Conductor,区别在于您可以在手机上继续会话。
<p>这里是网络和移动应用的演示 - <a href="https://youtu.be/R8Wmy4FLbhQ" rel="nofollow">https://youtu.be/R8Wmy4FLbhQ</a></p>
我们在去年初开始使用Claude Code,并迅速发现一个模式:代理可以独立工作很长时间,但每当需要后续输入时,进展就会停滞。如果在我们离开桌子的时候发生这种情况,一切都会暂停。我们查看了当时的远程代理解决方案,如Codex Web和Devin,但它们都运行在远程虚拟机上,而我们希望我们的编码代理能够在自己的环境中运行。我们第一次尝试解决这个问题是创建一个轻量级的包装器,将Claude Code CLI中的消息流式传输到移动应用,但这种方法最终变得脆弱且难以维护。
<p>随着Claude Agent SDK的成熟,它给了我们足够的控制权,可以从头开始重写Omnara,并直接运行代理循环。我们选择在网络和移动端构建图形用户界面,而不是文本用户界面或命令行界面,因为我们认为图形用户界面在与代理和代码交互时通常更符合人体工程学,尤其是在移动设备上。我们仍然保留了命令行界面和文本用户界面的主要优势:可以在任何地方运行,包括无头机器上。</p>
Omnara通过在用户的机器(或远程虚拟机)上运行一个小型无头守护进程来保持这一特性,该守护进程托管代理循环。守护进程与我们的服务器保持一个经过身份验证的出站WebSocket连接,转发在用户机器上运行的代理与任何连接的网络或移动客户端之间的消息。由于守护进程仅进行出站连接,因此用户的机器上不需要开放端口、SSH访问或隧道。
<p>在Omnara的第一个版本中,用户喜欢代理会话在他们自己的环境中运行,但仍然依赖于机器保持在线。一些用户在保持在线的远程机器上运行Omnara,这对他们来说效果很好,尽管大多数用户仍然在笔记本电脑上完成大部分工作。在当前版本中,当您的本地机器离线时,Omnara可以在托管的远程沙箱中继续代理会话。</p>
代理的对话状态已经在我们的服务器上持久化,您可以选择启用工作代码的云同步。当启用同步时,Omnara会在每次对话轮次中创建git提交并将其推送到我们的服务器,因此无论是在本地还是在云中继续执行,都可以从相同的状态恢复。如果您在远程沙箱中继续工作,当您返回到本地机器时,可以将任何更改拉回到本地环境中。沙箱中的环境一致性尚未完美,但在实践中,缺失的依赖项通常可以通过请求代理安装来轻松解决。
<p>我们从使用Omnara初始版本中学到的另一件事是,移动设备适合快速交互,但不适合长时间的来回交流。用户希望有一种免提的方式,在走路、开车或做其他事情时保持代理的运行,这促使我们添加了语音代理。由于我们来自更传统的软件工程背景,老实说,我们认为通过与语音代理对话来编码会显得有些花哨,因此主要作为备用功能添加。</p>
令我们惊讶的是,语音代理在实践中变得非常有用。在与编码代理合作时,冗余和过于明确通常会有所帮助,人们在说话时自然会比打字时提供更多细节。随着对话的展开,与代理的来回交流往往会产生比一次性给出提示更为稳固的计划(这在技术上也可以通过文本完成,但通过语音进行对话和迭代感觉更容易和自然)。这也很有趣。在散步时与代理讨论一个想法,比盯着终端屏幕要愉快得多。
<p>要试用Omnara,请打开终端并使用以下命令下载:</p>
<pre><code> curl -fsSL https://omnara.com/install/install.sh | bash
</code></pre>
然后在任何git仓库中运行omnara。这将在该仓库中启动一个无头的Claude Code或Codex会话,该会话会立即出现在Omnara的网络和移动应用中。从那里,您可以继续该会话或远程启动新的会话(无论是否有工作树),并在不打断代理的情况下在网络和移动客户端之间切换。
<p>Omnara每月提供10个代理会话的免费使用,之后为无限会话收取20美元/月。当代理在您自己的环境中运行时,您可以使用现有的Claude或Codex订阅,因此无需为额外的令牌支付费用。如果您使用Claude Code或Codex,我们非常希望听到您对Omnara的反馈!</p>
查看原文
Hey y’all, Kartik, Ishaan, and Christian from Omnara (<a href="https://www.omnara.com/">https://www.omnara.com/</a>) here. We’re building a web and mobile agentic IDE for Claude Code and Codex that lets you run and interact with coding agents from anywhere. Omnara lets you run Claude Code and Codex sessions on your own machine, and exposes those sessions through a web and mobile interface so you can stay involved even when you’re away from your desk. Think of it like Claude Code Desktop or Conductor, except you can continue your sessions on your phone.<p>Here’s a demo of the web and mobile apps - <a href="https://youtu.be/R8Wmy4FLbhQ" rel="nofollow">https://youtu.be/R8Wmy4FLbhQ</a><p>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.<p>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.<p>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.<p>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.<p>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.<p>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.<p>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.<p>To try it out, open your terminal and download Omnara with<p><pre><code> curl -fsSL https://omnara.com/install/install.sh | bash
</code></pre>
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.<p>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!