[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-85102":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":16,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":23,"readmeContent":24,"aiSummary":10,"trendingCount":16,"starSnapshotCount":16,"syncStatus":25,"lastSyncTime":26,"discoverSource":27},85102,"omnigent","omnigent-ai\u002Fomnigent","omnigent-ai","A meta-harness for all your AI agents.  Omnigent provides a common layer over Claude Code, Codex, Pi, and the agents you write yourself: swap or combine harnesses without rewriting, keep them in check with policies and sandboxing, and collaborate in real time on the same live session, from any device.","https:\u002F\u002Fomnigent.ai",null,"Python",1282,150,6,10,0,50.28,"Apache License 2.0",false,"main",true,[],"2026-06-15 10:04:18","\u003Cdiv align=\"center\">\n\n# \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fomnigent-ai\u002Fomnigent\u002Fmain\u002Fdocs\u002Fimages\u002Fomnigent-logo.svg\" alt=\"\" height=\"38\" valign=\"middle\" \u002F> Omnigent\n\n### A meta-harness for all your AI agents\n\nOmnigent provides a common layer over Claude Code, Codex, Pi, and the agents you write yourself: swap or combine harnesses without rewriting, keep them in check with policies and sandboxing, and collaborate in real time on the same live session, from any device.\n\n[![License: Apache 2.0](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache_2.0-blue.svg)](https:\u002F\u002Fgithub.com\u002Fomnigent-ai\u002Fomnigent\u002Fblob\u002Fmain\u002FLICENSE)\n![Status: alpha](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fstatus-alpha-orange.svg)\n[![Python 3.12+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.12%2B-blue.svg)](#1-install)\n\n[omnigent.ai](https:\u002F\u002Fomnigent.ai) · **[⬇️ Download the macOS desktop app](https:\u002F\u002Fomnigent.ai\u002Fdownload\u002Fmac)**\n\n\u003C\u002Fdiv>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fomnigent-ai\u002Fomnigent\u002Fmain\u002Fdocs\u002Fimages\u002Fomnigent-hero.png\" alt=\"An Omnigent orchestrator and its sub-agents in one shared session\" width=\"520\" \u002F>\n\u003C\u002Fp>\n\n---\n\n## Why Omnigent?\n\nOmnigent lets you:\n\n- **📱 Work with agents from any device, including your phone.** Sessions\n  follow you: start in your terminal, continue in the browser, pick it up on\n  your phone. Messages, sub-agents, terminals, and files stay in sync.\n\n- **🤖 Supervise multiple agents.** Use Claude Code, Codex, Pi, and custom\n  agents (defined in YAML) together in the same session. Ask one agent to\n  review another's work, or split a task across agents that are each good at\n  different things.\n\n- **🔌 Use any model.** A first-party API key, a Claude\u002FChatGPT subscription,\n  or any compatible gateway. All first-class.\n\n- **🤝 Collaborate.** Share a session so teammates can chat with your agent\n  and watch it work live, co-drive it on your machine, or fork the\n  conversation to continue on their own.\n\n- **☁️ Run agents in cloud sandboxes.** No laptop required: run sessions in\n  disposable [Modal](https:\u002F\u002Fmodal.com) or [Daytona](https:\u002F\u002Fwww.daytona.io)\n  sandboxes, launched from the CLI or provisioned by the server per session\n  (*managed hosts*). More providers coming soon.\n\n- **🛡️ Govern your agents.** Create\n  [policies](#6-govern-your-agents-with-policies) to pause for your approval\n  before risky actions, cap spend, or limit which tools an agent reaches.\n  They apply to the whole server, one agent, or a single chat.\n\n---\n\n## Quick start\n\n### 1. Install\n\nOne command installs Omnigent and everything it needs:\n\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fomnigent-ai\u002Fomnigent\u002Fmain\u002Fscripts\u002Finstall_oss.sh | sh\n```\n\n\u003Cdetails>\n\u003Csummary>Prefer to install manually?\u003C\u002Fsummary>\n\nOmnigent needs **Python 3.12+**. Install the `omnigent` package:\n\n```bash\nuv tool install omnigent        # or: pip install \"omnigent\"\n```\n\nOr with [Homebrew](https:\u002F\u002Fgithub.com\u002Fomnigent-ai\u002Fhomebrew-tap):\n\n```bash\nbrew install omnigent-ai\u002Ftap\u002Fomnigent\n```\n\nOr install straight from the repo:\n\n```bash\nuv tool install -q --python 3.12 git+https:\u002F\u002Fgithub.com\u002Fomnigent-ai\u002Fomnigent.git\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Toolchain and prerequisites (if the installer reports a missing tool)\u003C\u002Fsummary>\n\n- **`uv`** (required). https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002Fgetting-started\u002Finstallation\u002F\n  The installer offers to set this up for you.\n- **`git`** (required).\n- **Node.js 22 LTS or newer** with **`npm`**, for the Claude, Codex, and Pi\n  coding harnesses. `omnigent run` installs the harness CLI you pick.\n  https:\u002F\u002Fdocs.npmjs.com\u002Fdownloading-and-installing-node-js-and-npm\n- **`tmux`**, required by the native `omnigent claude` \u002F `omnigent codex`\n  wrappers (`brew install tmux` \u002F `apt install tmux`; the installer offers\n  to install it for you).\n- **Databricks** (optional). To use a Databricks workspace as your model\n  provider, install Omnigent with the `databricks` extra:\n  `uv tool install \"omnigent[databricks]\"`. Signing in to the workspace also\n  uses the [Databricks CLI](https:\u002F\u002Fdocs.databricks.com\u002Faws\u002Fen\u002Fdev-tools\u002Fcli\u002Finstall).\n\n\u003C\u002Fdetails>\n\n### 2. Start your first agent\n\n`omnigent` picks a model with you and starts a session in your terminal. It\nalso launches a local web UI at `http:\u002F\u002Flocalhost:6767` that shows the same\nsession in the browser, or on a phone on your network (step 4). The\n[desktop app](https:\u002F\u002Fomnigent.ai\u002Fdocs\u002Finteract\u002Fdesktop) wraps that same UI\nin a native window and adds OS notifications and a dock badge —\n[download it for macOS](https:\u002F\u002Fomnigent.ai\u002Fdownload\u002Fmac).\n\n> [!NOTE]\n> The install puts two names for the same CLI on your PATH: `omnigent` and\n> the shorter `omni`. They're interchangeable.\n\n> [!TIP]\n> On first run, Omnigent picks up model credentials already in your\n> environment (an `ANTHROPIC_API_KEY` \u002F `OPENAI_API_KEY`, or a `claude` \u002F\n> `codex` CLI you're logged into) and offers one as the default.\n\n```bash\nomnigent\n```\n\nOr launch a specific agent runtime, or your own agent:\n\n```bash\nomnigent claude                      # Claude Code, in a session your team can join\nomnigent codex                       # Codex\nomnigent run path\u002Fto\u002Fagent.yaml      # your own agent (see \"Write your own agent\")\n```\n\n#### 🐙 Polly and 🟠🔵 Debby\n\nTwo example agents ship with the repo, and they make good first sessions:\n\n```bash\nomnigent run examples\u002Fpolly\u002F\nomnigent run examples\u002Fdebby\u002F\n\n# Run an orchestrator on a different harness (sub-agents keep their own):\nomnigent run examples\u002Fpolly\u002F --harness pi\nomnigent run examples\u002Fdebby\u002F --harness openai-agents\n```\n\n**🐙 Polly** is a multi-agent coding orchestrator who writes no code herself.\nShe's the tech lead: she plans, delegates the work to coding sub-agents\n(Claude Code, Codex, or Pi) in parallel git worktrees, then routes each diff\nto a reviewer from a different vendor than the one that wrote it. You merge.\n\n**🟠🔵 Debby** is a brainstorming partner with two heads, one Claude and one GPT.\nEvery question you ask goes to both heads, and she lays the two answers out\nside by side. Type `\u002Fdebate` and the heads critique each other for a few\nrounds before converging. (She needs both a Claude and an OpenAI credential;\nsee step 3.)\n\n**Prefer the browser?** Start a server and register your machine as a host:\n\n```bash\nomnigent server start   # start the local server and web UI in the background\nomnigent host           # (separate terminal) register this machine as a host\n```\n\nIn the web UI, hit **New Chat**, pick your machine, and go. Check status with\n`omnigent server status`; stop everything with `omnigent stop`.\n\n### 3. Choose & switch models\n\n```bash\nomnigent setup\n```\n\nAdd a credential, set a default, or remove one, grouped by agent. Omnigent\nworks with four kinds of credentials:\n\n| | Kind | What it is |\n|---|---|---|\n| 🔑 | **API key** | A first-party vendor key for Anthropic, OpenAI, and similar providers |\n| 🎟️ | **Subscription** | A Claude Pro\u002FMax or ChatGPT plan, via the official `claude` \u002F `codex` CLIs |\n| 🌐 | **Gateway** | Any OpenAI- or Anthropic-compatible `base_url` and key (OpenRouter, LiteLLM, Ollama, vLLM, Azure) |\n| 🧱 | **Databricks** | A Databricks workspace profile (requires the `databricks` extra) |\n\nDefaults are per agent, so a Claude default and a Codex default coexist. You\ncan also switch models in the middle of a session with the `\u002Fmodel` command.\n\n\u003Cdetails>\n\u003Csummary>Gateway base URLs (OpenRouter, Ollama)\u003C\u002Fsummary>\n\nWhen you add a **Gateway** credential, `omnigent setup` asks for a base URL\nand a key. The base URL depends on which agent you point it at:\n\n| Provider | For | Base URL | Key |\n|---|---|---|---|\n| **OpenRouter** | Claude Code | `https:\u002F\u002Fopenrouter.ai\u002Fapi` | your OpenRouter key (`sk-or-…`) |\n| **OpenRouter** | Codex \u002F OpenAI agents | `https:\u002F\u002Fopenrouter.ai\u002Fapi\u002Fv1` | your OpenRouter key (`sk-or-…`) |\n| **Ollama** (local) | Codex \u002F OpenAI agents | `http:\u002F\u002Flocalhost:11434\u002Fv1` | any value (Ollama ignores it) |\n\nFor Claude Code, point at OpenRouter's Anthropic-compatible endpoint\n(`…\u002Fapi`, **not** `…\u002Fapi\u002Fv1`). For Codex and the OpenAI-agents harness, use\nthe OpenAI-compatible `…\u002Fapi\u002Fv1`.\n\n\u003C\u002Fdetails>\n\n### 4. Deploy a server (and use it from your phone📱)\n\nRun Omnigent on a server with a stable URL\n([`deploy\u002FREADME.md`](https:\u002F\u002Fgithub.com\u002Fomnigent-ai\u002Fomnigent\u002Fblob\u002Fmain\u002Fdeploy\u002FREADME.md) is the full guide) and your sessions\nbecome reachable from anywhere, including your phone. The web UI is built for\nmobile, so you get the same chat, sub-agents, terminals, and files, in sync\nwith your laptop.\n\nOne `docker compose up` runs the server on any host you have (a VPS, a home\nserver); Render deploys with one click; Fly.io, Railway, Hugging Face Spaces,\nand Modal are covered too. The server can also provision a cloud sandbox per\nsession (*managed hosts*), so no laptop has to stay online. The full menu of\ntargets, the database options, and the sandbox setup live in\n[`deploy\u002FREADME.md`](https:\u002F\u002Fgithub.com\u002Fomnigent-ai\u002Fomnigent\u002Fblob\u002Fmain\u002Fdeploy\u002FREADME.md).\n\nOnce the server is up, sign in and register your laptop as a host:\n\n```bash\nomnigent login https:\u002F\u002Fyour-host    # sign in once; run \u002F attach \u002F host reuse the token\nomnigent host  https:\u002F\u002Fyour-host    # new sessions can now run on this machine\n```\n\n> [!TIP]\n> On your own network you don't need a deploy. Open your machine's LAN\n> address on your phone (e.g. `http:\u002F\u002F192.168.x.x:6767`).\n\n### 5. Collaborate with your team\n\nOmnigent supports **multi-user accounts**, controlled by one environment\nvariable:\n\n```bash\nOMNIGENT_AUTH_ENABLED=1 omnigent server start\n```\n\nThe **Docker deploy in [step 4](#4-deploy-a-server-and-use-it-from-your-phone)\nturns it on for you** (`OMNIGENT_AUTH_ENABLED` defaults to `1` there).\n\n#### Invite your teammates\n\nOpen the web UI (`http:\u002F\u002Flocalhost:6767` locally, or your host's URL) and\nsign in as `admin`; first run prints the password and saves it locally. Then\nopen **Admin → Members → Invite** to create a single-use invite link, no\nemail server needed. Send it over; your teammate opens it, sets a password,\nand they're in. Signup is invite-only.\n\n\u003C!-- TODO: screenshot of Admin → Members → Invite. -->\n\n> [!NOTE]\n> Teammates need to be able to reach the server. A local server is only\n> reachable on your network; for anyone off it, deploy an always-on host\n> (see [step 4](#4-deploy-a-server-and-use-it-from-your-phone)).\n\n#### Code together\n\n- **Share a live session.** Hit **Share** in the web UI and send the link;\n  teammates watch your agent work and chat with it in real time.\n- **Co-drive.** A teammate co-attaches to your running session; their\n  messages execute on **your** machine. Great for pairing or handing the\n  keyboard to a domain expert mid-investigation.\n\n  ```bash\n  omnigent attach \u003Csession_id>\n  ```\n\n- **Fork.** Clone a conversation onto your own machine and continue\n  independently from the fork point.\n\n  ```bash\n  omnigent run --fork \u003Csession_id>\n  ```\n\n> [!TIP]\n> Want your team to sign in with the logins they already have (**Google,\n> GitHub, Okta, Microsoft**)? Set `OMNIGENT_OIDC_ISSUER` plus a client ID\n> and secret on your deployed server and restart. The full walkthrough,\n> domain allowlists, and the proxy-only `header` auth mode are covered in\n> [`deploy\u002FREADME.md#auth`](https:\u002F\u002Fgithub.com\u002Fomnigent-ai\u002Fomnigent\u002Fblob\u002Fmain\u002Fdeploy\u002FREADME.md#auth).\n\n### 6. Govern your agents with policies\n\n**Policies** decide what an agent may do: run shell commands, edit files,\nspend tokens. They check every action and either allow it, block it, or pause\nto ask you first.\n\n- **In the web UI**: open a session's info panel to browse the available\n  policies and toggle them on or off.\n- **In chat**: ask. *\"Add a policy that asks me before running shell\n  commands.\"* The agent sets it up for you.\n\nWant defaults that apply to everyone, or to a specific agent? Define them in\nyour server config or an agent's YAML:\n\n```yaml\npolicies:\n  approve_shell:\n    type: function\n    handler: omnigent.policies.builtins.safety.ask_on_os_tools   # ask before shell \u002F file writes\n  cap_calls:\n    type: function\n    handler: omnigent.policies.builtins.safety.max_tool_calls_per_session\n    factory_params:\n      limit: 50                    # cap how many tools one session can call\n  budget:\n    type: function\n    handler: omnigent.policies.builtins.cost.cost_budget\n    factory_params:\n      max_cost_usd: 5.00           # hard spend cap...\n      ask_thresholds_usd: [3.00]   # ...with a soft warning on the way\n```\n\nPolicies stack across three levels, **server-wide** (admin), **per-agent**\n(developer), and **per-session** (you), with the stricter session rules\nchecked first. Spend caps and access limits ship as builtins.\n\nSee the [policy guide](https:\u002F\u002Fgithub.com\u002Fomnigent-ai\u002Fomnigent\u002Fblob\u002Fmain\u002Fdocs\u002FPOLICIES.md) for the full catalog and trust model.\n\n---\n\n## Write your own agent\n\nAn agent is a short YAML file: your prompt, your tools, and optional helper\nsub-agents a supervisor can delegate to. You don't have to write it by hand:\nagents can build agents, so describe the agent you want in any Omnigent chat\nand it authors the file for you.\n\n```yaml\nname: my_agent\nprompt: You are a helpful data analyst.\n\nexecutor:\n  harness: claude-sdk          # or: codex, codex-native, claude-native, openai-agents, pi\n\ntools:\n  # A local Python function (schema auto-generated from the signature)\n  word_count:\n    type: function\n    callable: mypackage.mymodule.word_count\n\n  # A sub-agent the supervisor can delegate to\n  researcher:\n    type: agent\n    prompt: Search for relevant information and summarize it.\n    tools:\n      word_count: inherit\n```\n\nRun it with:\n\n```bash\nomnigent run path\u002Fto\u002Fmy_agent.yaml\n```\n\nThe same file can declare sub-agents and reviewers. For a fuller example, see\nPolly at [`examples\u002Fpolly\u002F`](https:\u002F\u002Fgithub.com\u002Fomnigent-ai\u002Fomnigent\u002Ftree\u002Fmain\u002Fexamples\u002Fpolly\u002F), and the\n[Agent YAML spec](https:\u002F\u002Fgithub.com\u002Fomnigent-ai\u002Fomnigent\u002Fblob\u002Fmain\u002Fdocs\u002FAGENT_YAML_SPEC.md) for the full schema.\n\n---\n\n## Contributing\n\nContributions are welcome. See [CONTRIBUTING.md](https:\u002F\u002Fgithub.com\u002Fomnigent-ai\u002Fomnigent\u002Fblob\u002Fmain\u002FCONTRIBUTING.md) for how to set up your environment, run the checks, and open a pull request.\n",2,"2026-06-15 02:30:02","CREATED_QUERY"]