商业产业 Hacker News AI 2026-10-21T16:44 正文 ok 2303 words

Omnara:对标 Claude Managed Agents 与 OpenAI Agents API 的开源托管 Agent 平台

英文标题:🔶 Show HN: Omnara – Open-Source Alternative to Claude Managed Agents

开源托管式 Agent 平台 Omnara 正式发布,旨在为开发者提供 Anthropic Claude Managed Agents 和 OpenAI Agents API 的自托管替代方案,采用 Apache 2.0 开源协议。该平台打破了专有模型厂商的生态绑定,允许开发者通过统一 API 调度任意大模型(包括 OpenAI、Anthropic 及自托管模型),并在任意本地机器或第三方云沙盒中执行任务。系统内置基于 Postgres 的持久化状态管理、MCP 与自定义工具扩展、多租户 RBAC 以及细粒度人工审批流,为企业在自有基础设施上构建安全、可恢复且数据自主可控的生产级 Agent 提供了全套开源基础设施。
打开原文相关 5 · 机会 3
media4.8 KB media11.7 KB media9.0 KB media1.3 KB media1.3 KB media3.1 KB media264.4 KB

中文

Omnara Omnara

开源托管式 Agent 平台

Claude Managed Agents 与 OpenAI Agents API 的可自托管替代方案。

License: Apache 2.0 npm: @omnara/sdk Discord

官网 · 快速上手 · 文档 · API · 更新日志 · Discord

Omnara 是一个开源的托管式 Agent 平台。你可以通过 API 在任何模型和任何机器上运行 AI Agent,内置工具调用、凭证管理、权限控制和流式传输功能。在 Apache 2.0 协议下完全免费自托管,或使用 Omnara Cloud。

在 app.omnara.com 登录。你的第一个项目自带一个模型提供商(omnara-openrouter)和一个托管沙盒池(default-pool),因此以下配置可直接运行。将其保存为 agent.yaml:

yaml version: v1 instruction: | You are an engineering assistant. Use your machine to run commands. model: provider_config: omnara-openrouter name: anthropic/claude-fable-5.1 machine_sources:

  • machine_pool_name: default-pool

使用 CLI 启动它(需要 Node.js 22 或更高版本)。如果尚未登录,第一个命令会自动在浏览器中打开登录页面。

bash npx omnara agents launch --file agent.yaml
--name "Machine assistant"
--message "Report this machine's operating system and free disk space."

在终端中使用 npx omnara agents chat <agent-id> 与 Agent 对话,或在仪表盘中打开以查看其工具调用并进行回复。

通过 TypeScript SDK 从代码中启动

在仪表盘中创建 API 密钥并将其导出为 OMNARA_TOKEN,通过 npm install @omnara/sdk 安装 SDK,并使用 npx omnara config 打印出的组织与项目 ID:

typescript import { readFile } from 'node:fs/promises' import { bearerToken, createOmnaraClient, openAgentEventStream, sdk } from '@omnara/sdk'

const client = createOmnaraClient({ auth: bearerToken(process.env.OMNARA_TOKEN!) }) const path = { orgID: 'org_...', projectID: 'proj_...' }

const config = await sdk.createAgentConfig({ client, path, body: { source: await readFile('agent.yaml', 'utf8'), source_format: 'yaml' }, }) const launched = await sdk.createAgent({ client, path, body: { config: config.data.id, message: "Report this machine's free disk space." }, })

const agentID = launched.data.agent.id for await (const event of openAgentEventStream({ client, path: { ...path, agentID } })) { console.log(event) }

快速上手指南 展示了使用 REST API 的相同流程。

如需让你的 Coding Agent 完成环境配置,可向其发送此提示词:

text Help me set up Omnara by following https://www.omnara.com/SKILL.md

自托管部署

需要安装支持 Compose 的 Docker 环境。

bash git clone https://github.com/omnara-ai/omnara.git cd omnara docker compose -f compose.yaml --profile app up -d

在浏览器中打开 http://localhost:8000 并注册。本地开发环境中,验证链接会直接打印在 docker compose logs api 中,无需配置邮件服务商。如需从源码构建而非使用预发布镜像,请运行 docker compose --profile app up -d --build。

新实例初始状态下尚未配置模型或机器。在控制台中添加模型提供商和模型,在 Machines 页面下连接当前计算机,并将二者共享给你的项目。当你的实例配置了公开 URL 后,沙盒功能即可正常使用。

将 CLI 指向你的实例并登录:

bash npx omnara config --api-url http://localhost:8000/api/v1 --issuer-url http://localhost:8000 npx omnara login

在 agent.yaml 中,填入你的提供商和模型名称,并将 machine_pool_name 项替换为 machine_name: <your machine>。然后执行与前文相同的命令启动 Agent。

本地默认配置出于调试目的并未做安全加固。对于正式生产部署,请参考自托管指南和配置参考。

系统架构

你的产品与 Omnara 通信,Omnara 根据配置中的模型、工具和机器来运行每个 Agent。

mermaid flowchart TB subgraph yours["Your side"] users(["Your users"]) --> app["Your appREST API · TypeScript SDK"] team["Your teamCLI · dashboardSlack · Discord · GitHub"] end subgraph omnara["Omnara"] api["APIlaunch · inputevent stream · approvals"] <--> pg[("Postgreseach agent's event log")] <--> worker["Workersrun the agent loop"] end subgraph plug[" "] models["ModelsOpenAI · AnthropicOpenRouter · self-hosted"] tools["Toolsbuilt-in · skillsMCP · custom"] machines["Machinessandboxes or your ownlaptop, VM, container"] end app --> api team --> api worker --> models worker --> tools worker --> machines

classDef side fill:none,stroke:#8b949e,stroke-width:1px
classDef core fill:#506FCF,stroke:#3D5BB5,stroke-width:1px,color:#ffffff
classDef store fill:#3D5BB5,stroke:#2E4794,stroke-width:1px,color:#ffffff
classDef plugin fill:none,stroke:#85A0E6,stroke-width:1.5px
class users,app,team side
class api,worker core
class pg store
class models,tools,machines plugin
style yours fill:none,stroke:#8b949e,stroke-dasharray:4 3
style omnara fill:#506FCF14,stroke:#506FCF,stroke-width:1.5px
style plug fill:none,stroke:#85A0E6,stroke-dasharray:4 3
linkStyle default stroke:#8b949e,stroke-width:1.5px
  • API:你的应用程序、CLI 和控制台均使用同一个 REST API 来启动 Agent、发送消息和处理审批。事件会实时流式回传。
  • Postgres:持久化记录每个 Agent 的每一步操作。该记录即为 Agent 的状态,因此任何 Worker 进程在崩溃或重启后都能无缝接管 Agent。
  • Workers:无状态进程,负责构建模型上下文、调用模型并执行工具。Agent 仅在执行轮次(turn)时占用 Worker,因此单个 Worker 可以为多个 Agent 提供服务。通过增加 Worker 可同时处理更多并发轮次。
  • Machines:每台机器运行 omnarad 守护进程,该守护进程主动向外连接至 Omnara,因此 Agent 可以在机器上运行命令,无需开放任何入站端口。

Omnara 还使用 Redis、用于附件和工具输出的 Blob 存储以及内存文件系统。架构文档涵盖了详细信息。

核心特性

  • 支持任意模型:自带密钥支持 OpenAI、Anthropic、OpenRouter、Amazon Bedrock、LiteLLM、Ollama 或任何兼容接口,包括自托管模型。

  • 工具系统:内置 Shell 命令、文件操作、网页搜索与抓取以及向人类提问等工具,并支持 MCP 服务端以及在你自身系统中运行的自定义工具。

  • 技能(Skills):一次性打包指令和文件,可挂载至任意 Agent,Agent 在需要时按需加载。

  • 记忆机制:记忆存储为 Agent 提供跨会话持久化的文件,并可在不同 Agent 之间共享,每个 Agent 均可配置只读或读写权限。

  • 子 Agent(Subagents):Agent 可以启动拥有独立全新上下文的子 Agent,检查其进度并发送新指令。每个子 Agent 都是可被完整审查的独立 Agent。

  • 机器管理:机器也是 Agent 可调用的工具。在任何 macOS 或 Linux 笔记本、虚拟机或容器上安装 Omnara 守护进程,Agent 即可在其中执行命令和编辑文件,无需开放入站端口或配置 SSH 密钥。或者直接使用来自 11 家提供商(Arker、Blaxel、boxd、CreateOS、Daytona、E2B、Freestyle、Modal、Superserve、Tenki、Unikraft)的沙盒。Agent 可以同时使用多台机器(例如一组 GPU 服务器)并在其间迁移。如果你的笔记本电脑离线,Agent 可在沙盒中继续运行并通过 Git 同步工作成果。

  • 持久化状态:每一步操作均被保存,即使发生崩溃、重启和机器断连,Agent 也能从中断处无缝恢复。

  • 定时调度:支持带时区配置的 Cron 触发器,可向现有 Agent 发送消息、通过配置预设启动新 Agent,或定时发起新的 Slack 或 Discord 讨论串。

  • Slack、Discord 与 GitHub 集成:在 Slack 或 Discord 中提及(@)机器人即可在讨论串内启动 Agent,由其回复、提问和请求审批。在 GitHub 上,当开启 Pull Request 或有人提及它时即可触发 Agent,Agent 可读取 Diff、发表评论并提交审查。如需连接其他服务,可基于相同的公开 API 构建自定义集成。

  • 流式传输与 Webhooks:实时流式推送每个事件,或通过 Webhook 接收,并支持在 Agent 工作时发送新消息。

  • 权限控制:每个工具均可配置为立即执行、先征询人工确认或直接禁止。平台严格执行该设置,Agent 会暂停等待人工批准或拒绝调用。

  • API、SDK 与 CLI:提供在 api/openapi/openapi.yaml 中定义的 REST API、TypeScript SDK(@omnara/sdk)、CLI 工具(omnara)以及 MCP 服务端。

  • 基于角色的访问控制(RBAC)与密钥管理:为用户和 API 密钥提供组织与项目级别的权限角色。模型、机器和 MCP 服务的凭据只需存储一次,并显式授权共享给各项目。

  • 多租户支持:单个部署即可服务多个组织,各组织独立拥有成员、项目、密钥、模型提供商和机器资源。自托管运营方也可像 Omnara Cloud 一样,为每个新组织预配默认模型和沙盒。

  • 数据完全自主掌控:自托管部署将所有 Agent 的历史记录完整保存在你自有的 Postgres 中,便于直接查询用于分析、评估(Evals)和模型训练数据集。

Omnara 对比 Claude Managed Agents 与 OpenAI Agents API

Claude Managed Agents 与 OpenAI 的 Agents API 均为绑定其单一厂商自有模型的托管服务。Omnara 则作为开源平台实现同样的功能,允许你在任意基础设施上运行任意模型。

对比维度 Omnara Claude Managed Agents OpenAI Agents API
源码属性 开源(Apache 2.0) 闭源 框架开源(Codex)。托管服务为 OpenAI 闭源运营。
支持模型 任何兼容模型 仅限 Claude 仅限 OpenAI
Agent 循环机制 Omnara 自研,兼容任意模型 Anthropic 自研,专为 Claude 打造 Codex,由 OpenAI 运行和迭代
平台运行位置 Omnara Cloud,或你自己的基础设施 Anthropic 云端 OpenAI 云端
Agent 执行环境 来自多家提供商的沙盒,或你自有的机器 Anthropic 沙盒,或你自建的沙盒 OpenAI 沙盒、合作伙伴沙盒,或你自有的机器
运维模式 Omnara Cloud 提供全托管。自托管时由用户自行运维。 由 Anthropic 托管。若自建沙盒则需自运维沙盒端。 由 OpenAI 托管。若自带执行环境则需自行维护环境。
Agent 历史数据 Omnara Cloud 由官方存储并通过 API 查询;自托管时保存在自有 Postgres 中。 由 Anthropic 存储,可通过 API 读取和删除。当前不支持零数据留存(Zero Data Retention)或 HIPAA BAA。 由 OpenAI 存储。不支持零数据留存(Zero Data Retention)。仅限美国数据驻留。
定价模式 自托管完全免费。在 Omnara Cloud 上自带 Key 和机器免费使用,官方模型与沙盒按需付费。 Claude Token 费率 + 每活跃会话小时 0.08 美元 OpenAI 模型费率,再加上 OpenAI 工具的标准费率

English / 原文

Omnara Omnara

The open-source managed agent platform

A self-hostable alternative to Claude Managed Agents and OpenAI's Agents API.

License: Apache 2.0 npm: @omnara/sdk Discord

Website · Quickstart · Docs · API · Changelog · Discord

Omnara is an open-source managed agent platform. Use the API to run AI agents on any model and any machine, with tools, secrets, permissions, and streaming built in. Self-host it for free under Apache 2.0, or use Omnara Cloud.

Sign in at app.omnara.com. Your first project comes with a model provider (omnara-openrouter) and a pool of managed sandboxes (default-pool), so this config runs as is. Save it as agent.yaml:

version: v1
instruction: |
  You are an engineering assistant. Use your machine to run commands.
model:
  provider_config: omnara-openrouter
  name: anthropic/claude-fable-5.1
machine_sources:
  - machine_pool_name: default-pool

Launch it with the CLI (Node.js 22 or newer). If you're not logged in, the first command opens your browser to sign in.

npx omnara agents launch --file agent.yaml \
  --name "Machine assistant" \
  --message "Report this machine's operating system and free disk space."

Chat with the agent in your terminal with npx omnara agents chat <agent-id>, or open it in the dashboard to watch its tool calls and reply.

Launch it from your code with the TypeScript SDK

Create an API key in the dashboard and export it as OMNARA_TOKEN, install the SDK with npm install @omnara/sdk, and use the org and project IDs that npx omnara config prints:

import { readFile } from 'node:fs/promises'
import { bearerToken, createOmnaraClient, openAgentEventStream, sdk } from '@omnara/sdk'

const client = createOmnaraClient({ auth: bearerToken(process.env.OMNARA_TOKEN!) })
const path = { orgID: 'org_...', projectID: 'proj_...' }

const config = await sdk.createAgentConfig({
  client,
  path,
  body: { source: await readFile('agent.yaml', 'utf8'), source_format: 'yaml' },
})
const launched = await sdk.createAgent({
  client,
  path,
  body: { config: config.data.id, message: "Report this machine's free disk space." },
})

const agentID = launched.data.agent.id
for await (const event of openAgentEventStream({ client, path: { ...path, agentID } })) {
  console.log(event)
}

The quickstart shows the same flow with the REST API.

To have your coding agent do the setup, give it this prompt:

Help me set up Omnara by following https://www.omnara.com/SKILL.md

Requires Docker with Compose.

git clone https://github.com/omnara-ai/omnara.git
cd omnara
docker compose -f compose.yaml --profile app up -d

Open http://localhost:8000 and sign up. Local development prints the verification link in docker compose logs api, so no email provider is needed. To build from source instead of using published images, run docker compose --profile app up -d --build.

A new instance has no models or machines yet. In the console, add a model provider and a model, connect this computer under Machines , and share both with your project. Sandboxes also work once your instance has a public URL.

Point the CLI at your instance and log in:

npx omnara config --api-url http://localhost:8000/api/v1 --issuer-url http://localhost:8000
npx omnara login

In agent.yaml, use your provider and model names, and replace the machine_pool_name entry with machine_name: <your machine>. Then launch it with the same command as above.

The local defaults are intentionally insecure. For a real deployment, follow the self-hosting guide and the configuration reference.

Your product talks to Omnara, and Omnara runs each agent with the model, tools, and machines in its config.

flowchart TB
    subgraph yours["Your side"]
        users(["Your users"]) --> app["Your app<br/>REST API · TypeScript SDK"]
        team["Your team<br/>CLI · dashboard<br/>Slack · Discord · GitHub"]
    end
    subgraph omnara["Omnara"]
        api["API<br/>launch · input<br/>event stream · approvals"] <--> pg[("Postgres<br/>each agent's event log")] <--> worker["Workers<br/>run the agent loop"]
    end
    subgraph plug[" "]
        models["Models<br/>OpenAI · Anthropic<br/>OpenRouter · self-hosted"]
        tools["Tools<br/>built-in · skills<br/>MCP · custom"]
        machines["Machines<br/>sandboxes or your own<br/>laptop, VM, container"]
    end
    app --> api
    team --> api
    worker --> models
    worker --> tools
    worker --> machines

    classDef side fill:none,stroke:#8b949e,stroke-width:1px
    classDef core fill:#506FCF,stroke:#3D5BB5,stroke-width:1px,color:#ffffff
    classDef store fill:#3D5BB5,stroke:#2E4794,stroke-width:1px,color:#ffffff
    classDef plugin fill:none,stroke:#85A0E6,stroke-width:1.5px
    class users,app,team side
    class api,worker core
    class pg store
    class models,tools,machines plugin
    style yours fill:none,stroke:#8b949e,stroke-dasharray:4 3
    style omnara fill:#506FCF14,stroke:#506FCF,stroke-width:1.5px
    style plug fill:none,stroke:#85A0E6,stroke-dasharray:4 3
    linkStyle default stroke:#8b949e,stroke-width:1.5px

Loading

  • API. Your app, the CLI, and the dashboard all use the same REST API to launch agents, send messages, and answer approvals. Events stream back as they happen.
  • Postgres. Every step of every agent is saved here. That record is the agent's state, so any worker can pick an agent back up after a crash or restart.
  • Workers. Stateless processes that build the model context, call the model, and run tools. An agent only uses a worker while it's taking a turn, so one worker can serve many agents. Add workers to handle more turns at once.
  • Machines. Each machine runs the omnarad daemon, which connects out to Omnara, so agents can run commands there without any inbound ports.

Omnara also uses Redis, blob storage for attachments and tool outputs, and a memory filesystem. The architecture docs cover the details.

  • Any model. Bring your own keys for OpenAI, Anthropic, OpenRouter, Amazon Bedrock, LiteLLM, Ollama, or any compatible endpoint, including models you host yourself.

  • Tools. Built-in tools for shell commands, files, web search and fetch, and asking a person a question, plus MCP servers and custom tools that run in your own systems.

  • Skills. Package instructions and files once, attach them to any agent, and the agent loads them when it needs them.

  • Memory. Memory stores give agents files that persist between conversations and can be shared with other agents, with read or read-write access per agent.

  • Subagents. An agent can start subagents with a fresh context, check their progress, and send them new instructions. Each subagent is a full agent you can inspect.

  • Machines. Machines are tools the agent uses. Install the Omnara daemon on any macOS or Linux laptop, VM, or container and your agents can run commands and edit files there, with no inbound ports or SSH keys. Or use sandboxes from eleven providers (Arker, Blaxel, boxd, CreateOS, Daytona, E2B, Freestyle, Modal, Superserve, Tenki, Unikraft). An agent can use several machines at once (for example, a set of GPU servers) and move between them. If your laptop goes offline, the agent can continue in a sandbox and sync its work back with git.

  • Durable state. Every step is saved, so agents pick up where they left off after crashes, restarts, and machine disconnects.

  • Schedules. Cron triggers with time zones can message an existing agent, launch a new one from a profile, or start a new Slack or Discord thread.

  • Slack, Discord, and GitHub. Mention the bot in Slack or Discord to start an agent in a thread, where it replies, asks questions, and requests approvals. On GitHub, an agent can start when a pull request opens or someone mentions it, then read the diff, comment, and submit reviews. To connect another service, build a custom integration on the same public API.

  • Streaming and webhooks. Stream every event as it happens or receive it as a webhook, and send new messages while the agent works.

  • Permissions. Each tool can run immediately, ask a person first, or be blocked. The platform enforces the setting, and the agent waits until someone approves or denies the call.

  • API, SDK, and CLI. A REST API defined in api/openapi/openapi.yaml, a TypeScript SDK (@omnara/sdk), a CLI (omnara), and an MCP server.

  • Role-based access control and secrets. Organization and project roles for users and API keys. Credentials for models, machines, and MCP servers are stored once and shared with each project explicitly.

  • Multi-tenant. One deployment serves many organizations, each with its own members, projects, secrets, model providers, and machines. Self-hosted operators can give every new organization default models and sandboxes, as Omnara Cloud does.

  • Your data. Self-hosted deployments keep every agent's history in your own Postgres, where you can query it for analytics, evals, and training datasets.

Omnara vs Claude Managed Agents and OpenAI's Agents API

Claude Managed Agents and OpenAI's Agents API are hosted services for running agents on one company's models. Omnara does the same job as an open-source platform you can run anywhere, with any model.

| Omnara | Claude Managed Agents | OpenAI's Agents API
---|---|---|---
Source | Open source (Apache 2.0) | Closed | Open-source harness (Codex). The hosted service is OpenAI's.
Models | Any compatible model | Claude | OpenAI
Agent loop | Omnara's, works with any model | Anthropic's, built for Claude | Codex, run and updated by OpenAI
Where the platform runs | Omnara Cloud, or your own infrastructure | Anthropic's cloud | OpenAI's cloud
Where agents run | Sandboxes from many providers, or your own machines | Anthropic sandboxes, or your own sandboxes | OpenAI sandboxes, partner sandboxes, or your own machines
Operations | Managed on Omnara Cloud. You operate it when self-hosting. | Managed by Anthropic. You run the sandbox side if you self-host sandboxes. | Managed by OpenAI. You run the environment if you bring your own.
Agent history | Stored by Omnara on Omnara Cloud and queryable through the API. In your own Postgres when self-hosted. | Stored by Anthropic, readable and deletable through the API. Not currently eligible for Zero Data Retention or HIPAA BAA coverage. | Stored by OpenAI. No Zero Data Retention support. US data residency only.
Pricing | Free to self-host. On Omnara Cloud, free with your own keys and machines, or pay as you go for our models and sandboxes. | Claude token rates plus $0.08 per active session-hour | OpenAI model rates, plus standard rates for OpenAI tools and hosted sandboxes

Choose Claude Managed Agents or the Agents API if you use one company's models and want that company to run everything for you. Choose Omnara if you want to pick your models and machines, run the platform yourself, or keep agent data in your own database.

If you use It's good for Omnara adds
Workflow builders, such as n8n or Zapier Predictable, step-by-step automations Open-ended agents that run code on machines and keep state for days
Agent frameworks, such as Mastra, LangChain, or the OpenAI Agents SDK Agent logic in your app's code Hosting, state, machines, permissions, and integrations, with agents created and changed through an API instead of a redeploy
Agent harnesses, such as Claude Code, the Claude Agent SDK, Codex, OpenCode, or Pi One agent loop in a terminal or on one machine Cloud agents that run as a service, across machines and users, started from your app, Slack, GitHub, or a schedule
Managed agent platforms, such as Claude Managed Agents or the Agents API Hosted agents on one company's models The same model of hosted agents, open source, on any model, and self-hostable

Each of these is an agent.yaml plus a SKILL.md in examples/, and you can deploy any of them with one prompt to your coding agent.

  • Slack coding agent fixes issues you mention in Slack, Discord, or a GitHub pull request and opens a PR.
  • PR review agent reviews your GitHub pull requests against a checkout of the repository and leaves inline findings.
  • SRE agent investigates production problems such as a 5xx spike.
  • Browser agent works in a real browser on long-running tasks.
  • PostHog analytics agent compares yesterday's product usage with the 7-day average and reports what changed.
  • Reddit, X, and LinkedIn signal agents summarize the last 24 hours of posts about a topic you pick.
  • Video generation agent makes short videos from a brief.

There are also code samples for a CLI chat app built on the TypeScript SDK, custom tools over webhooks, and a SharePoint filesystem mount.

Use Omnara from your coding agent

MCP server. Connect Claude Code, Codex, Cursor, or any MCP client that supports OAuth to https://app.omnara.com/mcp to launch and manage Omnara agents. You sign in through the browser, so there are no tokens to paste. In Claude, add it from the connectors directory. Omnara is also listed in the official MCP Registry as com.omnara/omnara.

claude mcp add --transport http omnara https://app.omnara.com/mcp
codex mcp add omnara --url https://app.omnara.com/mcp

Then sign in with /mcp in Claude Code or codex mcp login omnara in Codex. See Connecting MCP clients.

CLI. omnara manages agents, profiles, machines, model providers, secrets, skills, and cron triggers from your terminal or your coding agent's shell. Run npx omnara --help to start.

Setup skill. skills/setup-omnara-agent, also served at omnara.com/SKILL.md, walks a coding agent through setting up Omnara for your project.

Docs for LLMs. docs.omnara.com/llms.txt.

What is Omnara? An open-source managed agent platform for running AI agents on any model and any machine.

How much does it cost? Nothing to self-host. Omnara Cloud has no platform fee. You can bring your own model keys and machines for free, or pay as you go for our models at provider token rates and our sandboxes by active time and retained storage. See pricing.

Can I self-host it? Yes. Run it with Docker Compose locally, then follow the self-hosting guide for production. The API, CLI, SDK, and config format are the same on Omnara Cloud and self-hosted deployments.

Which models work? Any model behind an OpenAI Responses, OpenAI Chat Completions, or Anthropic Messages compatible endpoint, including OpenAI, Anthropic, OpenRouter, Amazon Bedrock, LiteLLM, and Ollama.

Source development requires the Go version declared in go.mod, Node.js 24 or newer with Corepack, ripgrep, and Docker with Compose. Run the fast repository gate with make verify. See CONTRIBUTING.md for the full test suite, generated-code workflows, and pull request expectations.

Community

Discord · GitHub Issues · X · Security

Apache License 2.0