hive

aden-hiveApache-2.0活跃维护

面向生产环境的多智能体编排框架,把 Claude、OpenAI 等模型和 Agent 技能统一管理起来,支持人工介入,让自主智能体真正能上线跑业务。

Multi-Agent Harness for Production AI

v1.0.14发布于 2026-11-02 10:09 UTC11,152star +6 / 7 天5,632fork同步于 2026-11-10 23:30 UTC

怎么上手

由 README 提炼,执行前请确认
git clone https://github.com/aden-hive/hive.git
cd hive
./quickstart.sh
硬件要求按 README 说明

README 未说明显存或 GPU 要求;本地模型可通过 Ollama 运行,无需 API key。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

开源多智能体运行时,让女王智能体按需组建并行工作群,完成真实业务任务

面向生产环境的多智能体编排框架,把 Claude、OpenAI 等模型和 Agent 技能统一管理起来,支持人工介入,让自主智能体真正能上线跑业务。

核心能力

  • 女王智能体先亲自试做一遍,把方法固化为可复用技能
  • 用 run_worker 并行分发任务,默认同时运行四个
  • 共享 SQLite 跟踪表记录每行结果,可用 SQL 查询与续跑
  • run_playbook 带重试、退避、限速与死信列表批量执行
  • 支持任意 MCP 服务器与 LiteLLM 兼容的各类模型

容易踩的坑

仓库是 uv workspace,根目录 pip install -e . 装的是占位包无法运行,须用 quickstart;需 Python 3.11+、Node.js 20+ 和 git,quickstart 会补装 uv 与 ripgrep;必须配置模型来源(API key、订阅、Hive LLM 或 Ollama)才能用。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v1.0.14
  1. v1.0.14最新正式版2026-11-02 · 2026-11-02 10:09 UTC

    Hive v1.0.14: Models and Skills

    Configuration has a Models page, and any OpenAI-compatible endpoint can serve a queen. A queen can now write skills for herself, and one she wants to give every queen and colony waits for your consent.

    New

    • A Models page. Configuration → Models replaces the settings modal's AI Model tab as the place to choose models. The main model, workers and the vision fallback each get a searchable picker, and queens with a model of their own are listed too. Magpie is built in at http://127.0.0.1:3425/v1 and detected when it's running, and any OpenAI-compatible address (Ollama, vLLM, LM Studio, a gateway) can be added; their models are listed live from /models. A provider's API key can be added, replaced or removed, and is checked first. A subscription that's detected can become the main model, marked as at your own risk. See configuration.md.

    • A queen writes her own skills. write_skill now works when a queen is alone with you, and takes a scope: colony (the default when she has one, as before), queen (the default otherwise) or global. A queen skill goes in her skills folder and is in her list on her next turn, in every running session of hers and in her colonies. It won't replace a skill you made, and a skill you turned off stays off when she rewrites it.

    • A skill for everyone asks you first. write_skill(scope="global") writes nothing. It saves a request in the session, and that session's chat page shows you the skill's name, description, files and body, with a warning when it would replace one. She carries on while it waits. Closing the dialog isn't a refusal: the request stays, and survives a reload and a restart. If you approve, the content she asked with (not anything she changed since) goes in the shared skills folder and every running session picks it up. Either way she gets a message saying what you decided.

      This is a rule she's told, not a wall: with her terminal tools she can still write in the skills folders herself.

    Changed

    • Recall quotes the part that answers. A snippet was centred on the first query word in a turn. It now takes the window carrying the most of the query, and a reply gets 500 characters, not 300. A conversation that placed a top hit can also bring back up to two more of its matching turns (four in all), so evidence spread over several turns arrives together. On LongMemEval-S, for questions about what the assistant said, the share of blocks holding every word of the answer rose from 43% to 68%; the wider replies add about 860 characters per block.

    Fixed

    • A queen can find the last thing she said. The indexer held a turn back until a later event closed it, and none follows a conversation's final reply, so that reply never reached search_messages or recall. A turn is now written as it streams, and a cache built before this gains the missing reply on its next sync, with no rebuild.

    • The stall check catches agreement without action. Told what's wrong with work she delivered, some models agree, describe the fix and end the turn. The judge was only asked whether she had said she was about to act, so the reminder never came. It's now also asked about a change she agreed to or described and didn't make, it's told what doesn't count (conversation, answers, questions, refusals, arguments, delivered work whose reply lists its flaws), and it sees her previous reply and its tools. A mistaken judgment costs one extra message from her: there's still at most one reminder per message from you.

    • Compaction is faster when it has to split. The two halves are summarised at once, not one after the other, since the turn waits for them and a summary can take minutes on a reasoning model. If one fails, the other is cancelled and that error is raised as it is.

    • **hive serve on its own keeps the browser bridg

  2. v1.0.132026-10-26 · 2026-10-26 07:08 UTC
    查看更新说明

    Hive v1.0.13: Letters Between Queens

    Queens can write to each other, each in a conversation that lasts, with chains of letters kept in bounds and every hop logged. And a queen can be Claude Code itself, with all its tools: she writes and is written to like any other, paid for with an API key, and shown on the org chart.

    New

    • Queens write to each other. Turn on queen_mail and a queen gets two tools: list_queens names the queens she can write to, and message_queen sends one a letter. The letter arrives in a session the other queen keeps for that writer (the same one every time, named after the writer in her session list) as [Ava(queen_ava)]: ..., the way a chat app's message does, so her memory and soul credit the writer. What she says there goes back the same way and wakes the writer: to the session of the letter her turn answers, or else the session the writer last wrote from. Her questions, the files she attaches and a reply that fails go back too, and the way back survives a restart. Off by default; queens limits who takes part. See configuration.md.

    • Chains in bounds, every hop logged. A letter or reply is one hop deeper than the deepest letter or reply that entered its conversation since anyone else last spoke there; a message from someone else, a timer that fires or a worker's report starts a new chain. The hop past max_depth (8) isn't made, so two queens answering each other stop on their own, and a queen sends at most daily_limit (100) letters a day. Every hop is a line of queens/mail.jsonl (who, to whom, which sessions, what set it off and how deep, never the text), enough to draw how one push spreads from queen to queen.

    • A queen run by Claude Code. Under queen_mail.claude_code, a queen is Claude Code itself (claude -p), with all its tools. A letter to her runs a turn in a conversation she keeps for that writer, resumed every time, so she remembers each correspondent; letters that arrive while she works go in together as her next turn, and what she ends it with goes back to the writer. She writes to the other queens herself through a hive MCP server each of her runs gets, with a token good for that one conversation. The org chart shows her as a dashed card; opening it shows, read only, what was said and done in each of her conversations. permission_mode, allowed_tools, cwd, model and timeout_minutes set what she may do, where and for how long. See configuration.md.

      She pays with an Anthropic API key (api_key, and api_base for a gateway). Her runs inherit only what a program needs from Hive's environment, never Hive's credential key, provider keys or tokens. At most max_parallel_turns (2) of her turns run at once, each in its own process tree, which is stopped when a turn runs out of time or Hive stops.

    A Claude subscription is at your own risk

    A Claude Code queen can also run on a Claude plan signed in in her own config folder, but only when "auth": "subscription" says so. Running a plan unattended, on behalf of other agents, may go against the terms of the plan, and Anthropic may limit or close the account. Hive does it only because you chose it in so many words: it logs a warning when she first runs and marks her as such in the dashboard. Whether it is allowed is between you and Anthropic, and what follows from it is yours alone. The API key is the supported way.

    Mind, too, what such a queen can reach: a queen who talks with strangers in a chat app can pass their words on to her, so with bypassPermissions or Bash, a stranger is a few letters away from running commands with the rights of the account Hive runs as.

    For code built on Hive

    • New endpoints: GET /api/claude-code-queens and `GET /api/claude-code-queens/{queen_id}/co
  3. v1.0.122026-10-24 · 2026-10-24 21:31 UTC
    查看更新说明

    Hive v1.0.12: A Soul of Her Own

    A queen keeps a soul: a short, first-person record of who she has become, which she revises once a day from her chats and you approve change by change. Her profile is a page of her own, where her persona is edited chapter by chapter, and the org chart's positions are yours to add and remove.

    New

    • A queen's soul. Her profile says who she is meant to be and her memory holds what she knows. Her soul is what she has become: a short, first-person record in sections (what is on her mind, how she stands with particular people, open threads and promises, what she thinks and why, how she has changed). It rides her system prompt right after her identity, so she is the same self in every chat, and it changes at most once a day, so the cached prompt prefix stays warm.

      Once a day, after hour, she reads what was said in her chats since the last time and proposes a few changes in her own voice. Every change quotes, word for word, what she read; a section can ask for quotes from two different people or chats; changes are capped per day, and no section may outgrow its limit. In "review" mode the changes wait on her profile page to be approved one by one; in "auto" mode they apply at once. Probe questions answer the same message with her soul before and after a proposal, so you can see what it would change in her. Turn it on per queen under soul.queens.<id> in configuration.json; everything lives in queens/<id>/soul/, every version kept. See configuration.md.

    • Her profile is a page of her own (/queen/<id>/profile), in place of the side panel. Her card in the org chart, her name above her chat and her avatar in a chat open it, and Back returns to where it was opened from. At the top: her portrait in a honeycomb cell lit by the colour her picture is mostly made of, her name and title (edited in place), the newest line of her soul, and her numbers. Below, numbered sections:

      • Persona: her text (core_traits in profile.yaml) in the chapters it is written in: <tag> blocks, headings, markers such as VOICE_MUTABLE_START. Edit one chapter and only it is rewritten, in the style it was written, the rest byte for byte; or edit the whole text at once. Beneath it, the pillars her prompt also reads: hidden background, psychological profile, triggers and world lore. Every save keeps the file as it was in _profile_snapshots/ (the last 30).
      • Soul: the changes her reflection proposes, to approve one by one, her answers before and after them, each section with its room, and the history to restore from.
      • Mind (her model), Memory (her notes by type, out of the most she keeps), Craft (her skills, the skills library and tools) and her colonies.
    • Positions you can add and remove. Every queen now holds a position in the org chart's catalog, the shipped functions and the queens you made alike. New position makes a queen titled by it and opens her profile. Remove takes a position out of the catalog, the sidebar, the pickers and routing; her profile, chats, memory and soul stay where they are, and Restore brings her back as she was.

    Changed

    • A queen you made is on the team from the start. In a browser with no saved choices, the queens you made started out hidden, then all appeared at once as soon as any choice was saved. They are now on the team from the start.
    • The memory library opens on a queen's notes with /memory-library?queen=<id>.

    Fixed

    • A colony's queen waking up without her colony tools. Opening a queen's DM page resumed her newest DM, and when that DM was the one that had spawned a colony, the resume landed in the colony's own session in DM mode and saved that mode over the colony's. From then on the colony's queen ran without run_worker, triggers or the tracker, and search_tools could not find the
  4. v1.0.112026-10-19 · 2026-10-19 19:37 UTC
    查看更新说明

    Hive v1.0.11: MCP from the Terminal

    An agent can run an MCP server from the terminal instead of carrying its tools in every prompt, through Stephan Fitzpatrick's mcp2cli. worker_llm and each queen's own model take extra_body, and queens reflect on memory every few replies rather than after every model call.

    New

    • MCP servers agents run from the terminal. An MCP server's tools load into every agent's tool list, and their schemas go with every model call: ComfyUI's official server, comfy-mcp, has 39 tools, about 15,600 tokens. Register a server with hive mcp add --as-cli, switch one with hive mcp mode <name> cli, or click Use from terminal under Configuration → Skills → MCP Tools → MCP Servers, and its tools stay out of the tool list. Each queen and worker gets one line naming the server instead (about 110 tokens for ComfyUI) and runs it with terminal_exec:

      hive mcp run comfy --list
      hive mcp run comfy run-workflow --help
      hive mcp run comfy run-workflow --workflow-path /abs/wf.json --wait
      

      In a test, a queen given only that line listed ComfyUI's commands, wrote a workflow, rendered the image on the local GPU and showed it in the chat. The commands come from mcp2cli by Stephan Fitzpatrick (@knowsuchagency), MIT-licensed, which turns an MCP server's tools into a command-line interface at runtime. Hive reads the server's connection from its registry and hands it to mcp2cli, with env vars and headers passed through the environment, never on a command line. A CLI-mode server can use the stdio, SSE or standard MCP HTTP transport. See configuration.md.

    • hive mcp add takes --env, --cwd, and the server's command after --, so a command whose arguments start with - (-- uvx --from comfy-mcp comfy-mcp) can be registered.

    • extra_body for worker_llm and each queen's own model. Only the main model sent extra_body (fields added to every request body as they are). worker_llm and each queen_llm entry now send theirs too, and a running chat that switches to or from a queen's own model switches its extra_body with it. For DeepSeek, {"reasoning_effort": "max"} sets how hard it thinks and {"thinking": {"type": "disabled"}} turns thinking off. See configuration.md.

    Changed

    • Queens reflect on memory every few replies, not after every model call. Reflection counted every model call, tool calls included, so on a busy channel it outnumbered the queen's own calls about four to one. It now counts her replies: a short reflection every 6, and every 4th of those also tidies all her memory files. memory_reflection.every_turns and long_every set both, and memory_reflection.model: "worker" runs reflection (and her dated timeline) on worker_llm. See configuration.md.

    Fixed

    • MCP servers on another Python version, when Hive runs from a uv-made virtualenv on Windows. The python.exe uv put in a virtualenv (from uv's #17821 until #19199) set PYTHONHOME for the interpreter it started, and every process Hive started inherited it. A server that uvx runs on another Python version then loaded Hive's standard library and died at import (SRE module mismatch), which Hive reported as "Connection closed"; under a Windows service, every health check of comfy-mcp failed this way. hive now drops that PYTHONHOME when it starts. It recognises uv's by the marker uv sets beside it, so a PYTHONHOME you set yourself is kept.
    • Retired Claude model. `clau
  5. v1.0.102026-10-19 · 2026-10-19 06:59 UTC
    查看更新说明

    Hive v1.0.10: Her Own Model

    Each queen can run on a model of her own, set from her profile in the dashboard, and hive serve stops within seconds.

    New

    • A queen's own model. Every queen used the main model (Settings → AI Model → LLM). Now a queen can have her own: open her profile (Org Chart → her card) and, under Model, pick a saved provider, edit the section as JSON, or go back to the main model. It is stored under queen_llm in configuration.json, by queen id, in the main slot's shape, and gets the same key check when saved. Her running chats switch on their next model call; her context window follows her model; changing the main model leaves her on hers; her colony workers use it too unless worker_llm is set. The key can be literal, api_key_env_var or in the credential store; the subscription logins (Claude Code, Codex, Kimi, Antigravity) work only for the main model. See configuration.md.

    Fixed

    • hive serve stops within seconds. Stopping it started a last memory reflection for every session (up to five model calls each) and waited a minute for open connections, which dashboard event streams never close, so a service manager often killed it first. The reflections now get 6 seconds and connections 3; if the process is still there 5 seconds after that, every thread's stack goes to stderr and it exits.

    For code built on Hive

    • GET /api/queen/{queen_id}/llm and PUT /api/queen/{queen_id}/llm ({"section": {...} | null}) read and set a queen's own model.
    • LiteLLMProvider.reconfigure() takes an optional api_key_resolver, to replace the callable that re-resolves the key before each call.

    aden-tools is released at the same version. It hasn't changed, but the two packages pin each other exactly.

    If you run hive serve under NSSM with AppRotateOnline 1, NSSM itself can stay in STOP_PENDING for a minute after Hive has exited; AppRotateOnline 0 avoids it (files still rotate at each start).

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    What you just watched

    A growth team preparing a Show HN wants to know how five developer tools' own launches did on Hacker News. Here's what Hive did with that one message:

    1. You hand it to a queen. Queens are long-lived agents with a role (here, Head of Growth) and their own memory and tools.
    2. She asks the one question that changes the answer: every launch post, or only each product's original launch? You pick every launch, and she carries on.
    3. She proposes a colony, and you approve it. Five products means five parallel jobs, so the chat becomes a colony: the queen plus as many worker agents as the work needs.
    4. She does one herself. She takes PostHog first, works out what counts as a genuine launch post rather than a passing mention, checks the numbers against the Hacker News API, and saves the method as a reusable skill.
    5. She fans out. A playbook starts one worker per product. Each follows her skill and writes its result to the colony's tracker, a shared SQLite table.
    6. She checks every row before she answers, and fixes one. Cal.com's worker counted a post from its old name, Calendso, but that post wasn't a Show HN, Launch HN or YC launch. She clears the row, and the chart shows Cal.com as not found rather than zero.

    None of this was wired up in advance. There's no workflow graph to draw: the queen shapes the colony as the work unfolds, and a tracker on disk, not a context window, keeps count of what's done and what's left.

    Quick start

    You'll need Python 3.11+, Node.js 20+ and git. The quickstart installs uv and ripgrep if they're missing, and offers to install Node.

    And a model. The quickstart sets up any of these:

    • an API key from Anthropic, OpenAI, Google Gemini, Groq, Cerebras or OpenRouter
    • a coding subscription you already pay for: Claude Code, OpenAI Codex, Kimi Code, MiniMax, Z.AI or Antigravity
    • Hive LLM
    • a local model through Ollama, with no key at all
    git clone https://github.com/aden-hive/hive.git
    cd hive
    ./quickstart.sh          # macOS / Linux
    .\quickstart.ps1         # Windows (PowerShell 5.1+)
    

    The quickstart creates a single Python environment for the workspace, stores your API key encrypted under ~/.hive, asks which model to use, builds the dashboard and opens it at http://127.0.0.1:8787. Next time, run hive open from the repository.

    [!NOTE] This repository is a uv workspace: pip install -e . at its root installs a placeholder that won't run, so use the quickstart. Without the repository, pip install "aden-hive[tools]" installs Hive from PyPI; then run hive open. To add an optional package (a chat-app channel, for example), see Optional packages. To build your own project on Hive's agent loop and models, depend on aden-hive: see Building on Hive.

    Then type a task on the home screen and choose the queen to give it to, or open the Prompt Library and send a ready-made prompt straight to the queen it was written for.

    How it works

    flowchart LR
        You(["You"]) -->|"describe the outcome"| Queen["Queen<br/>(persistent agent)"]
        Queen -->|"proposes a colony,<br/>you approve"| Pilot["Pilot<br/>(one unit, done by the queen)"]
        Pilot -->|"saves the method"| Skill["Skill + playbook"]
        Skill -->|"run_worker / run_playbook"| W["Worker clones<br/>in parallel"]
        W -->|"tracker_upsert"| T[("Tracker<br/>shared SQLite")]
        T -->|"SQL: what's done,<br/>what's left"| Queen
        Queen -->|"checked answer"| You
    
        style Queen fill:#ffb100,stroke:#cc5d00,color:#333
        style T fill:#fff3d6,stroke:#cc5d00,color:#333
        style W fill:#ff9800,stroke:#cc5d00,color:#fff
    

    Hive has one execution primitive: the agent loop. The queen is one, and every worker is a clone of it with its own task, a narrower set of tools and a strict budget. Orchestration is a tool call, not a compiled graph:

    • run_worker fans tasks out and returns at once, so the queen keeps talking to you while workers run. Four run at a time by default; the rest wait their turn. Each worker's report arrives in the queen's conversation as a new turn.
    • The tracker is the colony's shared state. The queen defines the table and which columns workers may write, workers upsert one row per unit of work, and the queen checks progress with SQL. It's a file on disk: ~/.hive/colonies/<name>/tracker/tracker.db.
    • run_playbook runs a proven method over every row, with retries and backoff, rate-limited lanes, and a dead-letter list for rows that keep failing. "What's left" is always a fresh query of the tracker, so re-running a playbook picks up where it stopped.

    The architecture overview goes deeper: the loop, the tool surface, memory, human oversight, and how state survives a crash.

    What's inside

    Queens with a job and a memory. Hive ships thirteen persona queens. Six are active out of the box (Growth, RevOps, Content, Lead Generation, Outbound, and Brand & Design); hire the rest from the Org Chart, or create your own. Each one keeps notes in markdown memory as she works, and relevant past conversations are recalled into her context automatically.

    A memory you can measure. A queen remembers you across sessions. She writes notes about you as she works, related past conversations are placed in front of her before each message, and she checks her memory before asking you for something you've already told her. We benchmark it on LongMemEval, run end to end through Hive and graded by the official judge, with gpt-6.1-sol answering:

    LongMemEval-SLongMemEval-M
    History per question~115k tokens~1.1M tokens
    Hive88.4%82.0%
    The same model reading the whole history96.8%doesn't fit

    When a whole history fits in the model's context, reading all of it is still more accurate than Hive's memory. When it doesn't, as on LongMemEval-M, memory is the only option. The benchmark page has the methodology, per-type results, a comparison with other memory systems, and the limitations.

    Built-in tools that run in-process. Shell commands and background jobs, file editing, fast code search, PDFs, attachments and images, web scraping, charts (ECharts and Mermaid), CSV files, and image generation through Hive LLM. They run inside Hive itself, with no tool servers to start.

    Your browser, driven by your agents. The Hive Browser Bridge extension lets agents work in your own Chrome, where you're already logged in. Each worker gets its own tab group.

    Skills. Reusable instructions in the open Agent Skills format. Hive ships with a set, queens write new ones once a method proves out, and you manage them all in the Skills Library.

    Any MCP server. Add one with hive mcp add, and its tools join the same allowlists as the built-ins. The full integration catalog in tools/ (GitHub, Gmail, HubSpot, Slack, Notion and many more) runs as one; see docs/tools.md.

    Runs while you're away. Colonies can wake themselves on cron, interval or webhook triggers. Sentinel, opt-in per colony, watches a queen whenever she stops: it nudges her on, or escalates to you through the Hive inbox, Telegram or Slack, and she picks up as soon as you reply.

    Built to survive. Every agent saves its state to disk and resumes exactly where it stopped after a crash or restart. Large tool results spill to files instead of flooding the context, long sessions compact themselves, stuck or looping turns get caught, and every worker runs under a hard tool-call budget.

    Any model. Anything LiteLLM supports, including OpenAI, Anthropic, Gemini, OpenRouter, Hive LLM, any OpenAI-compatible endpoint and local models through Ollama. Workers can run on a different model than their queen, and text-only models still see images through a vision fallback.

    Is Hive for you?

    Hive earns its keep once the model is no longer the hard part, and everything around it is:

    • A process with many similar units of work, such as leads, accounts, tickets, repositories or documents, that you want done in parallel and done the same way every time.
    • Work that runs for hours or on a schedule and has to survive a restart.
    • Results you need to check, query and audit, not just read in a chat.
    • A human who stays in charge of the decisions that matter.

    For a single prompt or a one-off script, a plain agent is simpler.

    Documentation

    FAQ

    Which models does Hive support? Any provider LiteLLM supports, plus any OpenAI-compatible endpoint. The quickstart sets up the common ones, including coding subscriptions such as Claude Code and OpenAI Codex; docs/configuration.md covers the rest.

    Can I run it with local models? Yes. Choose Ollama in the quickstart, or set a model such as ollama/llama3 with Ollama running locally.

    How is this different from other agent frameworks? Most frameworks ask you to design a graph of agents and wire up their inputs and outputs. Hive has one kind of agent: the queen is an agent loop, and every worker is a clone of it. Orchestration happens at runtime through tool calls, and agents coordinate through a shared SQL tracker instead of passing messages along edges. Persistence, resume, budgets, compaction and oversight live in that one loop, so every agent gets them.

    Where does my data live? On your machine. Sessions, colonies, trackers and memory are plain files under ~/.hive (or wherever HIVE_HOME points), and API keys are stored there encrypted.

    How do I keep costs under control? Every worker runs under hard limits on turns and tool calls, so a stuck worker stops by itself, and the number of workers running at once is capped. Every model call is metered. There are no spending limits in dollars yet.

    Can agents use my own tools and APIs? Yes: through the built-in shell and browser, through any MCP server you add, and through skills that teach them your procedures.

    Is Hive open source? Yes, under the Apache License 2.0.

    Contributing

    Contributions are welcome, especially tools, integrations and skills (#2805). Read CONTRIBUTING.md first, and get assigned to an issue before you open a pull request: comment on the issue and a maintainer will assign you. Issues with reproduction steps or a concrete proposal get priority.

    Community

    • Discord for questions, feature requests and discussion
    • X / Twitter and LinkedIn for updates
    • HoneyComb: a community market that tracks which jobs AI agents are automating. Go long or short on a job with compute tokens, not money.

    We're hiring in engineering, research and go-to-market. See open positions.

    Security

    To report a vulnerability, see SECURITY.md.

    License

    Apache License 2.0. See LICENSE.

    Star history