From ade7881706a6241c30e366d722e1f77c68447e8f Mon Sep 17 00:00:00 2001 From: Andrew Anderson Date: Thu, 24 Sep 2026 14:12:23 -0400 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20add=20logos=20to=20the=20integratio?= =?UTF-8?q?ns=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Andrew Anderson --- docs/content/hive/integrations.md | 43 +++++++++++++++++++++++++ public/integrations/aider.png | Bin 0 -> 5521 bytes public/integrations/akamai.svg | 1 + public/integrations/anthropic.svg | 1 + public/integrations/bluehost.svg | 23 +++++++++++++ public/integrations/claude.svg | 1 + public/integrations/cloudflare.svg | 1 + public/integrations/deepseek.svg | 1 + public/integrations/github-copilot.svg | 19 +++++++++++ public/integrations/githubcopilot.svg | 1 + public/integrations/google.svg | 1 + public/integrations/googlegemini.svg | 1 + public/integrations/goose.png | Bin 0 -> 2174 bytes public/integrations/ibm.svg | 1 + public/integrations/kilo.png | Bin 0 -> 2208 bytes public/integrations/litellm.png | Bin 0 -> 8078 bytes public/integrations/llm-d.png | Bin 0 -> 3993 bytes public/integrations/meta.svg | 1 + public/integrations/openai.svg | 1 + public/integrations/opencode.svg | 7 ++++ public/integrations/openrouter.svg | 1 + public/integrations/oracle.svg | 1 + public/integrations/pi.png | Bin 0 -> 4955 bytes public/integrations/vllm.png | Bin 0 -> 1835 bytes src/app/globals.css | 22 +++++++++++++ 25 files changed, 127 insertions(+) create mode 100644 public/integrations/aider.png create mode 100644 public/integrations/akamai.svg create mode 100644 public/integrations/anthropic.svg create mode 100644 public/integrations/bluehost.svg create mode 100644 public/integrations/claude.svg create mode 100644 public/integrations/cloudflare.svg create mode 100644 public/integrations/deepseek.svg create mode 100644 public/integrations/github-copilot.svg create mode 100644 public/integrations/githubcopilot.svg create mode 100644 public/integrations/google.svg create mode 100644 public/integrations/googlegemini.svg create mode 100644 public/integrations/goose.png create mode 100644 public/integrations/ibm.svg create mode 100644 public/integrations/kilo.png create mode 100644 public/integrations/litellm.png create mode 100644 public/integrations/llm-d.png create mode 100644 public/integrations/meta.svg create mode 100644 public/integrations/openai.svg create mode 100644 public/integrations/opencode.svg create mode 100644 public/integrations/openrouter.svg create mode 100644 public/integrations/oracle.svg create mode 100644 public/integrations/pi.png create mode 100644 public/integrations/vllm.png diff --git a/docs/content/hive/integrations.md b/docs/content/hive/integrations.md index 92c85f5..4a2899b 100644 --- a/docs/content/hive/integrations.md +++ b/docs/content/hive/integrations.md @@ -4,6 +4,8 @@ Hive supports agent CLIs, inference engines, and OpenAI-compatible model gateway ## Claude Code +![Claude Code logo](/integrations/claude.svg) + - **Owner:** Anthropic - **What Hive does:** launches Claude Code as an agentic CLI, applies Hive's prompt, permissions, audit, and queue controls, and records the configured model with the agent. - **Hive config:** `backend: claude` @@ -11,6 +13,8 @@ Hive supports agent CLIs, inference engines, and OpenAI-compatible model gateway ## GitHub Copilot CLI +![GitHub Copilot CLI logo](/integrations/githubcopilot.svg) + - **Owner:** GitHub - **What Hive does:** launches Copilot CLI for unattended agent work with Hive-managed repository scope, permissions, and audit trails. - **Hive config:** `backend: copilot` @@ -18,6 +22,8 @@ Hive supports agent CLIs, inference engines, and OpenAI-compatible model gateway ## Goose +![Goose logo](/integrations/goose.png) + - **Owner:** Block - **What Hive does:** launches Goose as an agent CLI and delivers Hive prompts and kicks through the Goose runtime. - **Hive config:** `backend: goose` @@ -25,6 +31,8 @@ Hive supports agent CLIs, inference engines, and OpenAI-compatible model gateway ## OpenAI Codex CLI +![OpenAI Codex CLI logo](/integrations/openai.svg) + - **Owner:** OpenAI - **What Hive does:** launches Codex CLI for agent tasks and passes Hive's selected model and reasoning-effort settings where supported. - **Hive config:** `backend: codex` @@ -32,6 +40,8 @@ Hive supports agent CLIs, inference engines, and OpenAI-compatible model gateway ## Pi +![Pi logo](/integrations/pi.png) + - **Owner:** Earendil Works - **What Hive does:** launches the Pi coding-agent CLI as a long-running interactive backend and sends Hive kicks when the CLI is ready. - **Hive config:** `backend: pi` @@ -39,6 +49,8 @@ Hive supports agent CLIs, inference engines, and OpenAI-compatible model gateway ## IBM Bob +![IBM Bob logo](/integrations/ibm.svg) + - **Owner:** IBM - **What Hive does:** launches the IBM Bob / bobshell CLI with Hive-managed headless authentication, approval, and workspace trust settings. - **Hive config:** `backend: bob` @@ -46,6 +58,8 @@ Hive supports agent CLIs, inference engines, and OpenAI-compatible model gateway ## Aider +![Aider logo](/integrations/aider.png) + - **Owner:** Aider open source project - **What Hive does:** launches Aider as an agent CLI and can apply Hive's per-agent prompts, repository context, and audit controls. - **Hive config:** `backend: aider` @@ -53,6 +67,8 @@ Hive supports agent CLIs, inference engines, and OpenAI-compatible model gateway ## Gemini CLI +![Gemini CLI logo](/integrations/googlegemini.svg) + - **Owner:** Google - **What Hive does:** launches Gemini CLI for operators whose Google access still supports that CLI and treats it as an agentic backend. - **Hive config:** `backend: gemini` @@ -60,6 +76,8 @@ Hive supports agent CLIs, inference engines, and OpenAI-compatible model gateway ## Google Antigravity CLI +![Google Antigravity CLI logo](/integrations/google.svg) + - **Owner:** Google - **What Hive does:** launches the Antigravity CLI (`agy`) as Google's current Hive-supported agent CLI, with Hive managing unattended mode and reasoning effort. - **Hive config:** `backend: agy` @@ -67,6 +85,8 @@ Hive supports agent CLIs, inference engines, and OpenAI-compatible model gateway ## OpenCode +![OpenCode logo](/integrations/opencode.svg) + - **Owner:** OpenCode project - **What Hive does:** launches OpenCode as a supported terminal coding-agent backend and routes Hive prompts to it. - **Hive config:** `backend: opencode` @@ -74,6 +94,8 @@ Hive supports agent CLIs, inference engines, and OpenAI-compatible model gateway ## Kilo Code +![Kilo Code logo](/integrations/kilo.png) + - **Owner:** Kilo - **What Hive does:** launches Kilo Code as a supported agentic CLI backend for Hive-managed work. - **Hive config:** `backend: kilo` @@ -81,6 +103,8 @@ Hive supports agent CLIs, inference engines, and OpenAI-compatible model gateway ## Muse Code +![Muse Code logo](/integrations/meta.svg) + - **Owner:** Meta - **What Hive does:** launches Muse Code as a supported CLI backend when installed by the operator. - **Hive config:** `backend: muse` @@ -95,6 +119,8 @@ Hive supports agent CLIs, inference engines, and OpenAI-compatible model gateway ## vLLM +![vLLM logo](/integrations/vllm.png) + - **Owner:** vLLM project - **What Hive does:** routes inference through a vLLM-compatible OpenAI API endpoint while Hive drives agent turns and audit metadata. - **Hive config:** `backend: vllm` @@ -102,6 +128,8 @@ Hive supports agent CLIs, inference engines, and OpenAI-compatible model gateway ## llm-d +![llm-d logo](/integrations/llm-d.png) + - **Owner:** llm-d project - **What Hive does:** routes inference through an llm-d OpenAI-compatible endpoint for self-hosted model serving. - **Hive config:** `backend: llm-d` @@ -109,6 +137,8 @@ Hive supports agent CLIs, inference engines, and OpenAI-compatible model gateway ## LiteLLM +![LiteLLM logo](/integrations/litellm.png) + - **Owner:** BerriAI - **What Hive does:** routes model calls through LiteLLM as an OpenAI-compatible proxy for centrally managed models and keys. - **Hive config:** `backend: litellm` @@ -116,6 +146,8 @@ Hive supports agent CLIs, inference engines, and OpenAI-compatible model gateway ## IBM watsonx.ai +![IBM watsonx.ai logo](/integrations/ibm.svg) + - **Owner:** IBM - **What Hive does:** routes model calls through watsonx.ai's OpenAI-compatible gateway and handles the IBM project and token settings required by Hive configuration. - **Hive config:** `backend: watsonx` @@ -123,6 +155,8 @@ Hive supports agent CLIs, inference engines, and OpenAI-compatible model gateway ## OpenRouter +![OpenRouter logo](/integrations/openrouter.svg) + - **Owner:** OpenRouter - **What Hive does:** uses OpenRouter as a named model gateway for OpenAI-compatible routing when configured by an operator. - **Hive config:** `backend: openrouter` @@ -130,6 +164,8 @@ Hive supports agent CLIs, inference engines, and OpenAI-compatible model gateway ## Anthropic +![Anthropic logo](/integrations/anthropic.svg) + - **Owner:** Anthropic - **What Hive does:** records and routes Anthropic-backed models through the configured CLI or gateway while preserving Hive audit metadata. - **Hive config:** `backend: anthropic` @@ -137,6 +173,8 @@ Hive supports agent CLIs, inference engines, and OpenAI-compatible model gateway ## OpenAI +![OpenAI logo](/integrations/openai.svg) + - **Owner:** OpenAI - **What Hive does:** records and routes OpenAI-backed models through the configured CLI or gateway while preserving Hive audit metadata. - **Hive config:** `backend: openai` @@ -144,6 +182,8 @@ Hive supports agent CLIs, inference engines, and OpenAI-compatible model gateway ## DeepSeek +![DeepSeek logo](/integrations/deepseek.svg) + - **Owner:** DeepSeek - **What Hive does:** routes DeepSeek-backed models through a configured OpenAI-compatible gateway such as LiteLLM. - **Hive config:** `backend: deepseek` @@ -151,4 +191,7 @@ Hive supports agent CLIs, inference engines, and OpenAI-compatible model gateway ## Infrastructure thanks + +![Akamai logo](/integrations/akamai.svg) ![Oracle logo](/integrations/oracle.svg) ![Cloudflare logo](/integrations/cloudflare.svg) ![GitHub Copilot logo](/integrations/github-copilot.svg) ![Bluehost logo](/integrations/bluehost.svg) + Hive Commons thanks [Akamai (Linode)](https://www.linode.com/) and [Oracle Cloud (OKE)](https://www.oracle.com/cloud/cloud-native/kubernetes-engine/) for Kubernetes infrastructure donated through the CNCF, [Cloudflare](https://www.cloudflare.com/) for DNS, edge and tunnels, [GitHub Copilot](https://github.com/features/copilot) for AI inference donated to CNCF projects through the CNCF, and [Bluehost](https://www.bluehost.com/) for domain hosting. diff --git a/public/integrations/aider.png b/public/integrations/aider.png new file mode 100644 index 0000000000000000000000000000000000000000..76cc83925f05a9140d9c7d44b52bbe3198372ba9 GIT binary patch literal 5521 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 TdN~td00000NkvXXu0mjfN \ No newline at end of file diff --git a/public/integrations/anthropic.svg b/public/integrations/anthropic.svg new file mode 100644 index 0000000..c917480 --- /dev/null +++ b/public/integrations/anthropic.svg @@ -0,0 +1 @@ +Anthropic \ No newline at end of file diff --git a/public/integrations/bluehost.svg b/public/integrations/bluehost.svg new file mode 100644 index 0000000..881c457 --- /dev/null +++ b/public/integrations/bluehost.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/integrations/claude.svg b/public/integrations/claude.svg new file mode 100644 index 0000000..1beee86 --- /dev/null +++ b/public/integrations/claude.svg @@ -0,0 +1 @@ +Claude \ No newline at end of file diff --git a/public/integrations/cloudflare.svg b/public/integrations/cloudflare.svg new file mode 100644 index 0000000..63caebb --- /dev/null +++ b/public/integrations/cloudflare.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/integrations/deepseek.svg b/public/integrations/deepseek.svg new file mode 100644 index 0000000..e19a459 --- /dev/null +++ b/public/integrations/deepseek.svg @@ -0,0 +1 @@ +DeepSeek \ No newline at end of file diff --git a/public/integrations/github-copilot.svg b/public/integrations/github-copilot.svg new file mode 100644 index 0000000..059b1e0 --- /dev/null +++ b/public/integrations/github-copilot.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/public/integrations/githubcopilot.svg b/public/integrations/githubcopilot.svg new file mode 100644 index 0000000..f064947 --- /dev/null +++ b/public/integrations/githubcopilot.svg @@ -0,0 +1 @@ +GitHub Copilot \ No newline at end of file diff --git a/public/integrations/google.svg b/public/integrations/google.svg new file mode 100644 index 0000000..2eaf915 --- /dev/null +++ b/public/integrations/google.svg @@ -0,0 +1 @@ +Google \ No newline at end of file diff --git a/public/integrations/googlegemini.svg b/public/integrations/googlegemini.svg new file mode 100644 index 0000000..765adb0 --- /dev/null +++ b/public/integrations/googlegemini.svg @@ -0,0 +1 @@ +Google Gemini \ No newline at end of file diff --git a/public/integrations/goose.png b/public/integrations/goose.png new file mode 100644 index 0000000000000000000000000000000000000000..5bcf568b1a577a123f30fe0ff4ab052832f883fa GIT binary patch literal 2174 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 \ No newline at end of file diff --git a/public/integrations/kilo.png b/public/integrations/kilo.png new file mode 100644 index 0000000000000000000000000000000000000000..6d12005bde1614d030b82a56827a33db64b69522 GIT binary patch literal 2208 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 \ No newline at end of file diff --git a/public/integrations/openai.svg b/public/integrations/openai.svg new file mode 100644 index 0000000..ebbdab0 --- /dev/null +++ b/public/integrations/openai.svg @@ -0,0 +1 @@ +OpenAI \ No newline at end of file diff --git a/public/integrations/opencode.svg b/public/integrations/opencode.svg new file mode 100644 index 0000000..157edc4 --- /dev/null +++ b/public/integrations/opencode.svg @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/public/integrations/openrouter.svg b/public/integrations/openrouter.svg new file mode 100644 index 0000000..83ec807 --- /dev/null +++ b/public/integrations/openrouter.svg @@ -0,0 +1 @@ +OpenRouter \ No newline at end of file diff --git a/public/integrations/oracle.svg b/public/integrations/oracle.svg new file mode 100644 index 0000000..6a46973 --- /dev/null +++ b/public/integrations/oracle.svg @@ -0,0 +1 @@ +Oracle_rgb_web.svg \ No newline at end of file diff --git a/public/integrations/pi.png b/public/integrations/pi.png new file mode 100644 index 0000000000000000000000000000000000000000..6cebd5fcfbd319faa738efd76c9205c08ccf4154 GIT binary patch literal 4955 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 O0J@q+8Z~N|=>Gs${Ks7Y literal 0 HcmV?d00001 diff --git a/public/integrations/vllm.png b/public/integrations/vllm.png new file mode 100644 index 0000000000000000000000000000000000000000..d4af0459391f9512fc2b3250d0aea37f649c90c5 GIT binary patch literal 1835 zcmV+`2h{k9P)00001b5ch_0Itp) z=>Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91K%fHv1ONa40RR91KmY&$07g+lumAuCl}SWFRA>e5T3c@$MHHUdn|HkH zyK|wp*ziCLMX1msAyrk8`U{YNro8jWAK|y~jEclV5icMv5~yjL6iQ2)G|sI_8fVw` z&hTyAnvLW2%=$u8DXUd7dzmxmJ7>;yO@$ETRX(&=nfZ|SV*oE(gU1>;*1(VwIOEKX8K3&383 z{Jtn|&hdxqq!G}QuAeo1(@Mp0kNZamz|Vh+Z|C?zjSxz-@TBFmKb1Erjom*-0szc( zens58&F7Yg*CM9=T-=7nryb96(tX7L@&Vjg7T?_!e=G_=AUgezdt{il5zOR$%PJmG z0FTzOVZ<+wM7==_Ej*(KoTp83{drEEq-zQ_Y}e zE^_0*@YX&4^{;{%#Cl<=2Oht;;DWkVbJ7iLCb3}5hy@VT7q@@@~?>YeYY2tkLP6F#t|FUNL8P?(`YN(xaNmD%WYM5K0V6P&*NH zXpDsatO*2Kne@Z`YU%t$#$&eAhwsj#SO9p#Dt};2T_L>Ld3%__?PbyA3Iqg6=|Q!~ zb%p%{a{U0{F`JnsMw$%Wxo8Fi>5U2*IM4~^m0Uy9W4Cuy3=#ll{%vdOs^ETf&H&?; zZGlt80ARt@LY=Wx+*a&bT>^k;hFzJ}tU@AZ+O-BQm!6W1-7rP#f4~5c0-ee=8B?-g zP?G_GB@{21Q&)$v1h92~6>tn%r8whUpZ9!pzfdruw#5WifrRdzU2 zNTH)^CjkH@lrLG+9}%u<2>^O`S;S;_Q8ox_fFf&@GDx9Sli&9IWB}0dVAUJc$S7I@ zT2ydBDj5X0K@+8%OW;5U13=8&S##n;MN3%R5Sx4Q3I>X@G=4hkCEY*3kW>TEfnh@l zYB6CB4z#7@f>K8CMlsL~c?s4QeCKa+0AWmcKc!G7z%C!Gl0d=W5dq4~E4X^12r%Fl zYEMIoN_0s~*sO~h9H>ePBoG1in5~*Zcf^muAR53lv+#~JjXI%UOsH*>+76LM0B8s) z(CJ*mbrM_f-~jex!VPNW`(#Hb!F&Y+fCJ6j&9WmbxAbK3yy!kh7{P` z(gTyKNTHQ`5Qhm44}e&O^H!uz0D#9^WbK(e0zmwZ*_zI@(riEj0G<&52(zQgEH%;4 z4SOdo9%c}5j?x3~lv$(f62nSX#6&5N0st(be9@Y|26u#A0|56{gh~VeA0_5Zh21qL?$Rv1=jE?0KGyLo z0WSM61(20o9S&5n3mv!UC;=eBV>2J0TW_55HZ&@6LxG@gmg?#BL>y;|_vz?=b{Y7- zr%(u^>B}|Saq&$`k=LHDjR8Q`L_lMI Z{4Y-23@%L*tM32+002ovPDHLkV1gEhF8%-j literal 0 HcmV?d00001 diff --git a/src/app/globals.css b/src/app/globals.css index d8966a3..e321834 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -2623,3 +2623,25 @@ aside::-webkit-scrollbar-thumb:hover, .nextra-sidebar-container nav::-webkit-scr background: color-mix(in srgb, var(--bg) 86%, transparent); backdrop-filter: blur(8px); } + +/* Integration logos on /docs/hive/integrations: uniform tiles readable in dark and light */ +img[src^="/integrations/"] { + display: inline-block; + width: 3rem; + height: 3rem; + margin: 0.25rem 0.5rem 0.25rem 0; + padding: 0.4rem; + object-fit: contain; + background: #fff; + border-radius: 0.6rem; + box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08); + vertical-align: middle; +} +img[src$="akamai.svg"][src^="/integrations/"], +img[src$="oracle.svg"][src^="/integrations/"], +img[src$="cloudflare.svg"][src^="/integrations/"], +img[src$="github-copilot.svg"][src^="/integrations/"], +img[src$="bluehost.svg"][src^="/integrations/"] { + width: 9rem; + height: 3.5rem; +}