HN user

cmsparks

370 karma

founding eng @ omnara

prev @ cloudflare

Posts7
Comments34
View on HN

That would prolly work for simple sites, but you still need the dedicated scraping service with a browser to render sites that are more complex (i.e. SPAs)

Sandboxing, which is an optional, opt-in feature, requires persistent access to the code via our github integration + us syncing certain refs to our backend.

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.

Reposting part of what Ishaan said elsewhere:

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.

Yeah, we have parallel agent functionality, sort of like conductor. This allows you to create worktrees for your repo and run any number of chats per worktree. On your local machine, we don't have any unique sandboxing capabilities, but we reuse your sandboxing settings from Claude or Codex if you have them set. The cloud sandboxing is more isolated, but still has access to the internet.

We've seen a decent amount of comparisons to Happy, but anecdotally from some Omnara users who have used both, I've heard that reliability and latency when sending messaages is much better in Omnara

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

Our goal is building infrastructure around the agent tools, which I think is how we'll build up a moat and provide automation value. I agree that competing with the labs on general tools is probably a bad business decision, but I'd argue that just means we should compete on the infrastructure, not the harness/model.

Anecdotally from some Omnara users who have used both, I've heard that reliability and latency when sending messaages is better in Omnara

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

OpenCode is great and `opencode serve` in particular is very cool. Though I think the main thing is that you need to manage the OpenCode server yourself and expose it via tailscale or something like that. Our goal is to provide managed infrastructure around the coding agent harness with features like mobile, sandboxes, preview urls, etc.

Our goal is to be harness agnostic as well, so eventually we will be adding support for running OpenCode sessions in Omnara.

It has some support, but it got merged into A2A, which I don't hear anyone talking about, so it seems like it's going to die on the vine.

I'm not sure this is true, do you have a source? Maybe conflating this with the recent Agentic AI Foundation & MCP news?

Frankly, it's pretty difficult. Though, I've found that the actor model maps really well onto building agents. An instance of an actor = an instance of an agent. Agent to agent communication is just tool calling (via MCP or some other RPC)

I use Cloudflare's Durable Objects (disclaimer: I'm biased, I work on MCP + Agent things @ Cloudflare). However, I figure building agents probably maps similarly well onto any actor style framework.

There when would one update the tools? You can’t “trigger” an event which causes a tool change without some hacky workarounds

Tool calls can trigger tool changes. Consider an MCP server exposes a list of accounts and tools to manage resources on those accounts:

1. MCP session starts, only tool exposed to the client is the `select_account` and `list_accounts` tools

2. MCP Client selects an account with `select_account` tool

3. MCP Server updates tools for the session to include `account_tool_a`. This automatically dispatches a listChanged notification

4. MCP Client receives notification and updates tools accordingly

IME this is pretty ergonomic and works well with the spec. But that’s assuming your client is well behaved, which many aren’t

MCP isn't static. It explicitly includes support for dynamically modifying tools, resources, etc via it's client notifications[0]. Sure, context is usually opaque to the server itself (unless you use the sampling feature[1]), but there's nothing preventing MCP clients/hosts from adjusting or filtering tools on their own.

[0] https://modelcontextprotocol.io/specification/2025-03-26/ser...

[1] https://modelcontextprotocol.io/specification/2025-03-26/cli...

Oof not a fun incident, this is my nightmare as someone who works on this type of stuff.

As an aside, GitHub’s security model for apps/integrations is extremely puzzling to reason about and enables a lot of foot guns. Add the fact that it’s very obtuse to audit integrations (especially within an organization) makes them pretty scary to use sometimes.

If you want to try out Cloudflare Pages again, you aren't required to have github integration. If you want to just upload and host some static assets you can use direct upload. You can basically just drag and drop/manually upload a zip file containing some HTML, JS, or other static assets and create a static site that way. (See: https://developers.cloudflare.com/pages/get-started/direct-u...)

(Disclaimer: I'm an engineer on Cloudflare Pages)

"in the absence of a law that compels us to write software, which is unconstitutional btw"

This isn't really settled. Writing software is not always constitutionally protected speech, and Apple being compelled to write software would probably not constitute a violation of the First Amendment. Federal wiretap law can compel companies to make it easy for the government to get data via a warrant (which necessarily entails writing code to produce that data) and has been upheld in the past. Also companies are often liable for the code they write. Both of those are examples of when code is not considered speech.