{"repo":"looplj/axonhub","free":true,"listed":false,"github":"https://github.com/looplj/axonhub","clone":"git clone https://github.com/looplj/axonhub.git","description":"⚡️ Open-source AI Gateway — Use any SDK to call 100+ LLMs. Built-in failover, load balancing, cost control & end-to-end tracing.","language":"Go","stars":4995,"topics":["agent","agents","ai","anthropic","anthropic-api","api-gateway","claude","claude-code","codex","cost-management","deepseek","gemini-api","llm","openai","opencode"],"license":null,"category":"api_gateway","readme_excerpt":"<div align=\"center\">\n\n# AxonHub - All-in-one AI 开发平台\n### 任意 SDK、任意模型、零代码改动\n\n<a href=\"https://trendshift.io/repositories/16225\" target=\"_blank\"><img src=\"https://trendshift.io/api/badge/repositories/16225\" alt=\"looplj%2Faxonhub | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"/></a>\n\n</div>\n\n<div align=\"center\">\n\n[![测试状态](https://github.com/looplj/axonhub/actions/workflows/test.yml/badge.svg)](https://github.com/looplj/axonhub/actions/workflows/test.yml)\n[![Lint 状态](https://github.com/looplj/axonhub/actions/workflows/lint.yml/badge.svg)](https://github.com/looplj/axonhub/actions/workflows/lint.yml)\n[![Go 版本](https://img.shields.io/github/go-mod/go-version/looplj/axonhub?logo=go&logoColor=white)](https://golang.org/)\n[![Docker Ready](https://img.shields.io/badge/docker-ready-2496ED?logo=docker&logoColor=white)](https://docker.com)\n\n[English](README.en-US.md) | [中文](README.md) | [日本語](README.ja-JP.md)\n\n</div>\n\n---\n\n## ❤️ 赞助商\n\n<div align=\"center\">\n\n<table width=\"100%\">\n  <tr>\n    <td width=\"50%\" align=\"center\" valign=\"top\">\n      <a href=\"https://lj.s.gy/oZl7Vd\" target=\"_blank\">\n        <picture>\n          <source media=\"(prefers-color-scheme: dark)\" srcset=\"docs/sponsors/atlas-cloud-logomark-white.svg\"/>\n          <source media=\"(prefers-color-scheme: light)\" srcset=\"docs/sponsors/atlas-cloud-logomark-black.svg\"/>\n          <img src=\"docs/sponsors/atlas-cloud-logomark-black.svg\" alt=\"Atlas Cloud\" height=\"50\"/>\n        </picture>\n        <br/>\n        <strong>Atlas Cloud</strong>\n      </a>\n      <p align=\"left\">\n        <a href=\"https://lj.s.gy/oZl7Vd\" target=\"_blank\">Atlas Cloud</a> 是一个全模态 AI 推理平台，为开发者提供统一的 AI API 来访问视频生成、图像生成和 LLM API。无需管理多个供应商集成，只需连接一次即可统一访问 300+ 精选模型，涵盖所有模态。\n      </p>\n      <p align=\"left\">\n        查看 Atlas Cloud 的 <a href=\"https://lj.s.gy/jknt2V\" target=\"_blank\">全新 Coding plan 促销</a>，获取更经济实惠的 API 访问方案。\n      </p>\n    </td>\n  </tr>\n</table>\n\n</div>\n\n<br/>\n\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"16\">\n  <thead>\n    <tr>\n      <th align=\"center\" width=\"220\">赞助商</th>\n      <th align=\"left\">详情</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://lj.s.gy/8HNo22\" target=\"_blank\">\n          <img src=\"https://www-static.qbox.me/_next/static/media/logo.0fc18feaa621d2068a7180631f742256.jpg\" alt=\"七牛云 AI\" height=\"90\"/>\n          <br/>\n          <strong>七牛云 AI</strong>\n        </a>\n      </td>\n      <td valign=\"middle\">\n        七牛云 AI 是七牛云（02567.HK）旗下企业级大模型 MaaS 平台，一站式调用全球 150+ 主流模型，兼容全球主流模型厂商协议，覆盖文本、图像、音频、视频、文件处理等全模态处理能力，服务超过 169 万企业及开发者用户。七牛云 AI 为 AxonHub 项目的用户提供了专属福利：通过<a href=\"https://lj.s.gy/8HNo22\" target=\"_blank\">此链接</a>注册，企业用户免费领 1200 万 Token，开发者免费领 300 万 Token。\n      </td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://lj.s.gy/Wo8IuN\" target=\"_blank\">\n          <img src=\"https://api.fenno.ai/branding/standard/icon.webp\" alt=\"FennoAI\" height=\"90\"/>\n          <br/>\n          <strong>FennoAI</strong>\n        </a>\n      </td>\n      <td valign=\"middle\">\n        FennoAI 是一家面向企业研发团队和开发者的高稳定、高性能 API 中转服务商，兼容 OpenAI 与 Anthropic 协议，可无缝接入 Codex、Claude Code、OpenCode 等主流 AI 编程工具。平台具备企业级稳定性，可支撑千亿 Token/日的调用规模，并支持境内外主体公对公结算及开票，满足企业级研发与采购需求。作为 AxonHub 用户专属福利，通过<a href=\"https://lj.s.gy/Wo8IuN\" target=\"_blank\">专属链接</a>购买订阅，仅需 1.99 美元即可获得价值 50 美元的 Coding Plan 额度。同时支持邀请奖励，邀请好友购买最高可获得 20% 返佣，邀请越多，奖励越高。\n      </td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://bloome.im/app?ref=MjgMzmCY&utm_medium=github&utm_source=looplj-axonhub-ivor-202606\" target=\"_blank\">\n          <img src=\"docs/sponsors/bloome.png\" alt=\"Bloome\" height=\"90\"/>\n          <br/>\n          <strong>Bloome</strong>\n        </a>\n      </td>\n      <td valign=\"middle\">\n        想试用 AxonHub，但不想在本地配置环境？可以在 Bloome 上运行：\n        <a href=\"https://bloome.im/app?ref=MjgMzmCY&utm_medium=github&utm_source=looplj-axonhub-ivor-202606\" target=\"_blank\">快速使用</a>，\n        通过浏览器或手机一键启动，也可以轻松分享给你的团队。\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n---\n\n---\n\n## 📖 项目介绍\n\n### All-in-one AI 开发平台\n\n**AxonHub 是 AI 网关，让你无需改动一行代码即可切换模型供应商。**\n\n无论你使用的是 OpenAI SDK、Anthropic SDK 还是任何 AI SDK，AxonHub 都会透明地将你的请求转换为与任何支持的模型供应商兼容的格式。无需重构，无需更换 SDK——只需更改配置即可。\n\n**它解决了什么问题：**\n- 🔒 **供应商锁定** - 从 GPT-4 瞬间切换到 Claude 或 Gemini\n- 🔧 **集成复杂性** - 一个 API 格式对接 10+ 供应商\n- 📊 **可观测性缺口** - 开箱即用的完整请求追踪\n- 💸 **成本控制** - 实时用量追踪和预算管理\n\n<div align=\"center\">\n  <img src=\"docs/axonhub-architecture-light.svg\" alt=\"AxonHub Architecture\" width=\"700\"/>\n</div>\n\n---\n\n### 核心特性 Core Features\n\n| 特性 | 你能获得什么 |\n|------|-------------|\n| 🔄 [**任意 SDK → 任意模型**](docs/zh/api-reference/openai-api.md) | 用 OpenAI SDK 调用 Claude，或用 Anthropic SDK 调用 GPT。零代码改动。 |\n| 🔍 [**完整请求追踪**](docs/zh/guides/tracing.md) | 线程级可观测性的完整请求时间线。更快定位问题。 |\n| 🔐 [**企业级 RBAC**](docs/zh/guides/permissions.md) | 细粒度访问控制、用量配额和数据隔离。 |\n| ⚡ [**智能负载均衡**](docs/zh/guides/load-balance.md) | <100ms 自动故障转移。始终路由到最健康的渠道。 |\n| 💰 [**实时成本追踪**](docs/zh/guides/cost-tracking.md) | 每次请求的成本明细。输入、输出、缓存 Token——全部追踪。 |\n\n---\n\n## 📚 文档 | Documentation\n\n### 文档索引 | Documentation Index\n\n- 📑 **[完整文档索引](docs/zh/index.md)** - 所有文档导航和快速查找\n\n### DeepWiki\n详细的技术文档、API 参考、架构设计等内容，可以访问\n- [![DeepWiki](https://img.shields.io/badge/DeepWiki-looplj%2Faxonhub-blue.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAyCAYAAAAnWDnqAAAAAXNSR0IArs4c6QAAA05JREFUaEPtmUtyEzEQhtWTQyQLHNak2AB7ZnyXZMEjXMGeK/AIi+QuHrMnbChYY7MIh8g01fJoopFb0uhhEqqcbWTp06/uv1saEDv4O3n3dV60RfP947Mm9/SQc0ICFQgzfc4CYZoTPAswgSJCCUJUnAAoRHOAUOcATwbmVLWdGoH//PB8mnKqScAhsD0kYP3j/Yt5LPQe2KvcXmGvRHcDnpxfL2zOYJ1mFwrryWTz0advv1Ut4CJgf5uhDuDj5eUcAUoahrdY/56ebRWeraTjMt/00Sh3UDtjgHtQNHwcRGOC98BJEAEymycmYcWwOprTgcB6VZ5JK5TAJ+fXGLBm3FDAmn6oPPjR4rKCAoJCal2eAiQp2x0vxTPB3ALO2CRkwmDy5WohzBDwSEFKRwPbknEggCPB/imwrycgxX2NzoMCHhPkDwqYMr9tRcP5qNrMZHkVnOjRMWwLCcr8ohBVb1OMjxLwGCvjTikrsBOiA6fNyCrm8V1rP93iVPpwaE+gO0SsWmPiXB+jikdf6SizrT5qKasx5j8ABbHpFTx+vFXp9EnYQmLx02h1QTTrl6eDqxLnGjporxl3NL3agEvXdT0WmEost648sQOYAeJS9Q7bfUVoMGnjo4AZdUMQku50McDcMWcBPvr0SzbTAFDfvJqwLzgxwATnCgnp4wDl6Aa+Ax283gghmj+vj7feE2KBBRMW3FzOpLOADl0Isb5587h/U4gGvkt5v60Z1VLG8BhYjbzRwyQZemwAd6cCR5/XFWLYZRIMpX39AR0tjaGGiGzLVyhse5C9RKC6ai42ppWPKiBagOvaYk8lO7DajerabOZP46Lby5wKjw1HCRx7p9sVMOWGzb/vA1hwiWc6jm3MvQDTogQkiqIhJV0nBQBTU+3okKCFDy9WwferkHjtxib7t3xIUQtHxnIwtx4mpg26/HfwVNVDb4oI9RHmx5WGelRVlrtiw43zboCLaxv46AZeB3IlTkwouebTr1y2NjSpHz68WNFjHvupy3q8TFn3Hos2IAk4Ju5dCo8B3wP7VPr/FGaKiG+T+v+TQqIrOqMTL1VdWV1DdmcbO8KXBz6esmYWYKPwDL5b5FA1a0hwapHiom0r/cKaoqr+27/XcrS5UwSMbQAAAABJRU5ErkJggg==)](https://deepwiki.com/looplj/axonhub)\n- [![zread](https://img.shields.io/badge/Ask_Zread-_.svg?style=flat&color=00b0aa&labelColor=000000&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQuOTYxNTYgMS42MDAxSDIuMjQxNTZDMS44ODgxIDEuNjAwMSAxLjYwMTU2IDEuODg2NjQgMS42MDE1NiAyLjI0MDFWNC45NjAxQzEuNjAxNTYgNS4zMTM1NiAxLjg4ODEgNS42MDAxIDIuMjQxNTYgNS42MDAxSDQuOTYxNTZDNS4zMTUwMiA1LjYwMDEgNS42MDE1NiA1LjMxMzU2IDUuNjAxNTYgNC45NjAxVjIuMjQwMUM1LjYwMTU2IDEuODg2NjQgNS4zMTUwMiAxLjYwMDEgNC45NjE1NiAxLjYwMDFaIiBmaWxsPSIjZmZmIi8%2BCjxwYXRoIGQ9Ik00Ljk2MTU2IDEwLjM5OTlIMi4yNDE1NkMxLjg4ODEgMTAuMzk5OSAxLjYwMTU2IDEwLjY4NjQgMS42MDE1NiAxMS4wMzk5VjEzLjc1OTlDMS42MDE1NiAxNC4xMTM0IDEuODg4MSAxNC4zOTk5IDIuMjQxNTYgMTQuMzk5OUg0Ljk2MTU2QzUuMzE1MDIgMTQuMzk5OSA1LjYwMTU2IDE0LjExMzQgNS42MDE1NiAxMy43NTk5VjExLjAzOTlDNS42MDE1NiAxMC42ODY0IDUuMzE1MDIgMTAuMzk5OSA0Ljk2MTU2IDEwLjM5OTlaIiBmaWxsPSIjZmZmIi8%2BCjxwYXRoIGQ9Ik0xMy43NTg0IDEuNjAwMUgxMS4wMzg0QzEwLjY4NSAxLjYwMDEgMTAuMzk4NCAxLjg4NjY0IDEwLjM5ODQgMi4yNDAxVjQuOTYwMUMxMC4zOTg0IDUuMzEzNTYgMTAuNjg1IDUuNjAwMSAxMS4wMzg0IDUuNjAwMUgxMy43NTg0QzE0LjExMTkgNS42MDAxIDE0LjM5ODQgNS4zMTM1NiAxNC4zOTg0IDQuOTYwMVYyLjI0MDFDMTQuMzk4NCAxLjg4NjY0IDE0LjExMTkgMS42MDAxIDEzLjc1ODQgMS42MDAxWiIgZmlsbD0iI2ZmZiIvPgo8cGF0aCBkPSJNNCAxMkwxMiA0TDQgMTJaIiBmaWxsPSIjZmZmIi8%2BCjxwYXRoIGQ9Ik00IDEyTDEyIDQiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4K&logoColor=ffffff)](https://zread.ai/looplj/axonhub)\n\n\n---\n\n## 🎯 演示 | Demo\n\n在我们的 [演示实例](https://axonhub.onrender.com) 上体验 AxonHub！\n\n**注意**：演示网站目前配置了 Zhipu 和 OpenRouter 的免费模型。\n\n### 演示账号 | Demo Account\n- **邮箱 Email**: demo@example.com\n- **密码 Password**: 12345678\n\n---\n\n## ⭐ 特性 | Features\n\n### 📸 截图 | Screenshots\n\n以下是 AxonHub 的实际运行截图：\n\n<table>\n  <tr>\n    <td align=\"center\">\n      <a href=\"docs/screenshots/axonhub-dashboard.png\">\n        <img src=\"docs/screenshots/axonhub-dashboard.png\" alt=\"系统仪表板\" width=\"250\"/>\n      </a>\n      <br/>\n      系统仪表板\n    </td>\n    <td align=\"center\">\n      <a href=\"docs/screenshots/axonhub-channels.png\">\n        <img src=\"docs/screenshots/axonhub-channels.png\" alt=\"渠道管理\" width=\"250\"/>\n      </a>\n      <br/>\n      渠道管理\n    </td>\n    <td align=\"center\">\n      <a href=\"docs/screenshots/axonhub-model-price.png\">\n        <img src=\"docs/screenshots/axonhub-model-price.png\" alt=\"模型价格\" width=\"250\"/>\n      </a>\n      <br/>\n      模型价格\n    </td>\n  </tr>\n  <tr>\n   <td align=\"center\">\n      <a href=\"docs/screenshots/axonhub-models.png\">\n        <img src=\"docs/screenshots/axonhub-models.png\" alt=\"模型\" width=\"250\"/>\n      </a>\n      <br/>\n      模型\n    </td>\n    <td align=\"center\">\n      <a href=\"docs/screenshots/axonhub-trace.png\">\n        <img src=\"docs/screenshots/axonhub-trace.png\" alt=\"追踪查看\" width=\"250\"/>\n      </a>\n      <br/>\n      追踪查看\n    </td>\n    <td align=\"center\">\n      <a href=\"docs/screenshots/axonhub-requests.png\">\n        <img src=\"docs/screenshots/axonhub-requests.png\" alt=\"请求监控\" width=\"250\"/>\n      </a>\n      <br/>\n      请求监控\n    </td>\n\n  </tr>\n</table>\n\n---\n\n### 🚀 API 类型 | API Types\n\n| API 类型 | 状态 | 描述 | 文档 |\n|---------|--------|-------------|--------|\n| **文本生成（Text Generation）** | ✅ Done | 对话交互接口 | [OpenAI API](docs/zh/api-reference/openai-api.md)、[Anthropic API](docs/zh/api-reference/anthropic-api.md)、[Gemini API](docs/zh/api-reference/gemini-api.md) |\n| **图片生成（Image Generation）** | ✅ Done | 图片生成 | [Image Generation](docs/zh/api-reference/image-generation.md","default_branch":"unstable","files":2412,"tree":[".agent/rules/biz-services.md",".agent/rules/cache-compat.md",".agent/rules/docs.md",".agent/rules/e2e.md",".agent/rules/ent-graphql.md",".agent/rules/frontend-general.md",".agent/rules/frontend-i18n.md",".agent/rules/frontend-ui.md",".agent/rules/go-general.md",".agent/rules/workflows/add-channel.md",".air.toml",".dockerignore",".github/ISSUE_TEMPLATE/bug_report.yml",".github/ISSUE_TEMPLATE/feature_request.yml",".github/ISSUE_TEMPLATE/optimization.yml",".github/ISSUE_TEMPLATE/questions.yml",".github/workflows/build.yml",".github/workflows/docker-publish.yml",".github/workflows/docker-unstable.yml",".github/workflows/helm-chart.yml",".github/workflows/lint.yml",".github/workflows/release.yml",".github/workflows/stale.yml",".github/workflows/sync-model-developers.yml",".github/workflows/test.yml",".gitignore",".golangci.yml",".goreleaser.yml",".mockery.yml",".pre-commit-config.yaml",".trae/rules/all.md",".windsurf/rules/all.md","AGENTS.md","CHANGELOG.md","CLAUDE.md","Dockerfile","LICENSE","Makefile","PERMISSION_UI_PLAN.md","README.en-US.md","README.ja-JP.md","README.md","SECURITY.md","cmd/axonhub/config_reload_unix.go","cmd/axonhub/config_reload_unix_test.go","cmd/axonhub/config_reload_windows.go","cmd/axonhub/main.go","cmd/axonhub/reload_unix.go","cmd/axonhub/reload_windows.go","cmd/schema/go.mod","cmd/schema/go.sum","cmd/schema/main.go","conf/conf.go","conf/conf_test.go","conf/module.go","config.example.yml","deploy/axonhub.service","deploy/helm/.helmignore","deploy/helm/Chart.yaml","deploy/helm/README.md","deploy/helm/install.bat","deploy/helm/install.sh","deploy/helm/templates/NOTES.txt","deploy/helm/templates/_helpers.tpl","deploy/helm/templates/data-pvc.yaml","deploy/helm/templates/deployment.yaml","deploy/helm/templates/hpa.yaml","deploy/helm/templates/ingress.yaml","deploy/helm/templates/postgresql-service.yaml","deploy/helm/templates/postgresql-statefulset.yaml","deploy/helm/templates/service.yaml","deploy/helm/templates/serviceaccount.yaml","deploy/helm/templates/tests/test-connection.yaml","deploy/helm/values-production.yaml","deploy/helm/values.yaml","deploy/install.bat","deploy/install.ps1","deploy/install.sh","deploy/nginx.conf","deploy/restart.bat","deploy/restart.ps1","deploy/restart.sh","deploy/setup.bat","deploy/setup.ps1","deploy/setup.sh","deploy/start.bat","deploy/start.ps1","deploy/start.sh","deploy/stop.bat","deploy/stop.ps1","deploy/stop.sh","deploy/upgrade.bat","deploy/upgrade.ps1","deploy/upgrade.sh","docker-compose.yml","docs/axonhub-architecture-light.svg","docs/axonhub-architecture.svg","docs/en/api-reference/anthropic-api.md","docs/en/api-reference/embedding-api.md","docs/en/api-reference/gemini-api.md","docs/en/api-reference/image-generation.md","docs/en/api-reference/openai-api.md","docs/en/api-reference/rerank-api.md","docs/en/deployment/configuration.md","docs/en/deployment/docker.md","docs/en/development/authz-coding-guidelines.md","docs/en/development/development.md","docs/en/development/ent-privacy-governance-plan.md","docs/en/development/erd.md","docs/en/development/git-workflow.md","docs/en/development/transformation-flow.md","docs/en/faq/faq.md","docs/en/getting-started/quick-start.md","docs/en/getting-started/request-processing.md","docs/en/guides/antigravity.md","docs/en/guides/api-key-profiles.md","docs/en/guides/channel-management.md","docs/en/guides/claude-code-integration.md","docs/en/guides/codex-integration.md","docs/en/guides/cost-tracking.md","docs/en/guides/load-balance.md","docs/en/guides/model-management.md","docs/en/guides/oidc.md","docs/en/guides/opencode-integration.md","docs/en/guides/permissions.md","docs/en/guides/prompt-protection-rules.md","docs/en/guides/request-override.md","docs/en/guides/security.md","docs/en/guides/tracing.md","docs/en/index.md","docs/screenshots/axonhub-channels.png","docs/screenshots/axonhub-dashboard.png","docs/screenshots/axonhub-model-price.png","docs/screenshots/axonhub-models.png","docs/screenshots/axonhub-profiles.png","docs/screenshots/axonhub-requests.png","docs/screenshots/axonhub-system.png","docs/screenshots/axonhub-trace.png","docs/screenshots/axonhub-usage-logs.png","docs/screenshots/axonhub-users.png","docs/solutions/s3-storage-refactor.md","docs/solutions/video-generation.md","docs/sponsors/atlas-cloud-logo-black.svg","docs/sponsors/atlas-cloud-logo-white.svg","docs/sponsors/atlas-cloud-logomark-black.svg","docs/sponsors/atlas-cloud-logomark-white.svg","docs/sponsors/bloome.png","docs/transformation-flow.svg","docs/zh/api-reference/anthropic-api.md","docs/zh/api-reference/embedding-api.md","docs/zh/api-reference/gemini-api.md","docs/zh/api-reference/image-generation.md","docs/zh/api-reference/openai-api.md","docs/zh/api-reference/rerank-api.md","docs/zh/deployment/configuration.md","docs/zh/deployment/docker.md","docs/zh/development/authz-coding-guidelines.md","docs/zh/development/development.md","docs/zh/development/ent-privacy-governance-plan.md","docs/zh/development/erd.md","docs/zh/development/git-workflow.md","docs/zh/development/transformation-flow.md","docs/zh/faq/faq.md","docs/zh/getting-started/quick-start.md","docs/zh/getting-started/request-processing.md","docs/zh/guides/api-key-profiles.md","docs/zh/guides/channel-management.md","docs/zh/guides/claude-code-integration.md","docs/zh/guides/codex-integration.md","docs/zh/guides/cost-tracking.md","docs/zh/guides/load-balance.md","docs/zh/guides/model-management.md","docs/zh/guides/oidc.md","docs/zh/guides/opencode-integration.md","docs/zh/guides/permissions.md","docs/zh/guides/prompt-protection-rules.md","docs/zh/guides/request-override.md","docs/zh/guides/security.md","docs/zh/guides/tracing.md","docs/zh/index.md","examples/openapi/README.md","examples/openapi/go.mod","examples/openapi/go.sum","examples/openapi/graphql/api_key.graphql","examples/openapi/graphql/generated.go","examples/openapi/graphql/genqlient.yaml","examples/openapi/graphql/openapi.graphql","examples/openapi/main.go","frontend/.env.development","frontend/.env.example","frontend/.gitignore","frontend/.prettierignore","frontend/.prettierrc","frontend/NOTICE","frontend/components.json","frontend/cz.yaml","frontend/eslint.config.js","frontend/index.html","frontend/knip.config.ts","frontend/package.json","frontend/playwright.config.ts","frontend/pnpm-lock.yaml","frontend/pnpm-workspace.yaml","frontend/public/favicon.ico","frontend/public/logo.jpg","frontend/src/app/(authenticated)/roles/page.tsx","frontend/src/assets/clerk-full-logo.tsx","frontend/src/assets/clerk-logo.tsx","frontend/src/assets/fenno-icon.webp","frontend/src/assets/vite.svg","frontend/src/authenticated-layout.tsx","frontend/src/components/ai-elements/actions.tsx","frontend/src/components/ai-elements/artifact.tsx","frontend/src/components/ai-elements/branch.tsx","frontend/src/components/ai-elements/canvas.tsx","frontend/src/components/ai-elements/chain-of-thought.tsx","frontend/src/components/ai-elements/checkpoint.tsx","frontend/src/components/ai-elements/code-block.tsx","frontend/src/components/ai-elements/confirmation.tsx","frontend/src/components/ai-elements/connection.tsx","frontend/src/components/ai-elements/context.tsx","frontend/src/components/ai-elements/controls.tsx","frontend/src/components/ai-elements/conversation.tsx","frontend/src/components/ai-elements/edge.tsx","frontend/src/components/ai-elements/image.tsx","frontend/src/components/ai-elements/inline-citation.tsx","frontend/src/components/ai-elements/loader.tsx","frontend/src/components/ai-elements/masked-code-block.tsx","frontend/src/components/ai-elements/message.tsx","frontend/src/components/ai-elements/model-selector.tsx","frontend/src/components/ai-elements/node.tsx","frontend/src/components/ai-elements/open-in-chat.tsx","frontend/src/components/ai-elements/panel.tsx","frontend/src/components/ai-elements/plan.tsx","frontend/src/components/ai-elements/prompt-input.tsx","frontend/src/components/ai-elements/queue.tsx","frontend/src/components/ai-elements/reasoning.tsx","frontend/src/components/ai-elements/response.tsx","frontend/src/components/ai-elements/shimmer.tsx","frontend/src/components/ai-elements/sources.tsx","frontend/src/components/ai-elements/suggestion.tsx","frontend/src/components/ai-elements/task.tsx","frontend/src/components/ai-elements/tool.tsx","frontend/src/components/ai-elements/toolbar.tsx","frontend/src/components/ai-elements/web-preview.tsx","frontend/src/components/auth-guard.tsx","frontend/src/components/auto-complete-select.tsx","frontend/src/components/auto-complete.tsx","frontend/src/components/auto-refresh-control.tsx","frontend/src/components/coming-soon.tsx","frontend/src/components/command-menu.tsx","frontend/src/components/confirm-dialog.tsx","frontend/src/components/data-table-column-header.tsx","frontend/src/components/data-table-column-order-dialog.tsx","frontend/src/components/data-table-faceted-filter.tsx","frontend/src/components/data-table-pagination.tsx","frontend/src/components/date-range-picker/date-time-range-picker.tsx","frontend/src/components/date-range-picker/day-picker-config.tsx","frontend/src/components/date-range-picker/index.tsx","frontend/src/components/date-range-picker/time-dropdown.tsx","frontend/src/components/date-range-picker/time-field.tsx","frontend/src/components/date-range-picker/utils.ts","frontend/src/components/filter-builder.tsx","frontend/src/components/i18n.ts","frontend/src/components/initialization-guard.tsx","frontend/src/components/json-tree-view.tsx","frontend/src/components/language-provider.tsx","frontend/src/components/language-switch.tsx","frontend/src/components/layout/app-header.tsx","frontend/src/components/layout/app-sidebar.tsx","frontend/src/components/layout/header.tsx","frontend/src/components/layout/main.tsx","frontend/src/components/layout/mobile-header-controls.tsx","frontend/src/components/layout/nav-group.tsx","frontend/src/components/layout/nav-user.tsx","frontend/src/components/layout/project-switcher.tsx","frontend/src/components/layout/team-switcher.tsx","frontend/src/components/layout/top-nav.tsx","frontend/src/components/layout/types.ts","frontend/src/components/learn-more.tsx","frontend/src/components/long-text.tsx","frontend/src/components/model-price-editor.tsx","frontend/src/components/navigation-progress.tsx","frontend/src/components/password-input.tsx","frontend/src/components/permission-guard.tsx","frontend/src/components/price-schedule-editor.tsx","frontend/src/components/project-guard.tsx","frontend/src/components/quota-badges.test.mjs","frontend/src/components/quota-badges.tsx","frontend/src/components/route-guard.tsx","frontend/src/components/scopes-select.tsx","frontend/src/components/search.tsx","frontend/src/components/select-dropdown.tsx","frontend/src/components/server-side-pagination.tsx","frontend/src/components/skip-to-main.tsx","frontend/src/components/spinner.tsx","frontend/src/components/theme-switch.tsx","frontend/src/components/time-period-selector.tsx","frontend/src/components/truncated-text.tsx","frontend/src/components/ui/alert-dialog.tsx","frontend/src/components/ui/alert.tsx","frontend/src/components/ui/avatar.tsx","frontend/src/components/ui/badge.tsx","frontend/src/components/ui/button-group.tsx","frontend/src/components/ui/button.tsx","frontend/src/components/ui/calendar.tsx","frontend/src/components/ui/card.tsx","frontend/src/components/ui/carousel.tsx","frontend/src/components/ui/checkbox.tsx","frontend/src/components/ui/collapsible.tsx","frontend/src/components/ui/command.tsx","frontend/src/components/ui/copy-button.tsx","frontend/src/components/ui/dialog.tsx","frontend/src/components/ui/dropdown-menu.tsx","frontend/src/components/ui/file-preview.tsx","frontend/src/components/ui/form.tsx","frontend/src/components/ui/hover-card.tsx","frontend/src/components/ui/input-group.tsx","frontend/src/components/ui/input.tsx","frontend/src/components/ui/interrupt-prompt.tsx","frontend/src/components/ui/label.tsx","frontend/src/components/ui/popover.tsx","frontend/src/components/ui/progress.tsx","frontend/src/components/ui/prompt-suggestions.tsx","frontend/src/components/ui/radio-group.tsx","frontend/src/components/ui/scroll-area.tsx","frontend/src/components/ui/select.tsx","frontend/src/components/ui/separator.tsx","frontend/src/components/ui/sheet.tsx","frontend/src/components/ui/sidebar.tsx","frontend/src/components/ui/skeleton.tsx","frontend/src/components/ui/sonner.tsx","frontend/src/components/ui/switch.tsx","frontend/src/components/ui/table-skeleton.tsx","frontend/src/components/ui/table.tsx","frontend/src/components/ui/tabs.tsx","frontend/src/components/ui/tags-autocomplete-input.tsx","frontend/src/components/ui/tags-input.tsx","frontend/src/components/ui/textarea.tsx","frontend/src/components/ui/tooltip.tsx","frontend/src/components/ui/typing-indicator.tsx","frontend/src/config/fonts.ts","frontend/src/config/route-permission.ts","frontend/src/context/font-context.tsx","frontend/src/context/search-context.tsx","frontend/src/context/theme-context.tsx","frontend/src/features/analytics/components/analytics-faceted-filter.tsx","frontend/src/features/analytics/components/analytics-filter-bar.tsx","frontend/src/features/analytics/components/combined-trend-chart.tsx","frontend/src/features/analytics/components/dimension-detail-table.tsx","frontend/src/features/analytics/components/dimension-pie-charts.tsx","frontend/src/features/analytics/components/overview-cards.tsx","frontend/src/features/analytics/data/analytics.ts","frontend/src/features/analytics/index.tsx","frontend/src/features/analytics/utils/format-currency.ts","frontend/src/features/apikeys/components/api-key-token-chart-dialog.tsx","frontend/src/features/apikeys/components/apikeys-archive-dialog.tsx","frontend/src/features/apikeys/components/apikeys-bulk-archive-dialog.tsx","frontend/src/features/apikeys/components/apikeys-bulk-disable-dialog.tsx","frontend/src/features/apikeys/components/apikeys-bulk-enable-dialog.tsx","frontend/src/features/apikeys/components/apikeys-columns.tsx","frontend/src/features/apikeys/components/apikeys-create-dialog.tsx","frontend/src/features/apikeys/components/apikeys-create-template-dialog.tsx","frontend/src/features/apikeys/components/apikeys-dialogs.tsx","frontend/src/features/apikeys/components/apikeys-edit-dialog.tsx","frontend/src/features/apikeys/components/apikeys-edit-template-dialog.tsx","frontend/src/features/apikeys/components/apikeys-load-template-popover.tsx","frontend/src/features/apikeys/components/apikeys-primary-buttons.tsx","frontend/src/features/apikeys/components/apikeys-profile-templates-dialog.tsx","frontend/src/features/apikeys/components/apikeys-profiles-dialog.tsx","frontend/src/features/apikeys/components/apikeys-rotate-dialog.tsx","frontend/src/features/apikeys/components/apikeys-save-template-dialog.tsx","frontend/src/features/apikeys/components/apikeys-status-dialog.tsx","frontend/src/features/apikeys/components/apikeys-table.tsx","frontend/src/features/apikeys/components/apikeys-template-transfer-dialog.tsx","frontend/src/features/apikeys/components/apikeys-view-dialog.tsx","frontend/src/features/apikeys/components/data-table-pagination.tsx","frontend/src/features/apikeys/components/data-table-row-actions.tsx","frontend/src/features/apikeys/components/data-table-toolbar.tsx","frontend/src/features/apikeys/components/data-table-view-options.tsx","frontend/src/features/apikeys/context/apikeys-context.tsx","frontend/src/features/apikeys/data/apikeys.ts","frontend/src/features/apikeys/data/index.ts","frontend/src/features/apikeys/data/schema.ts","frontend/src/features/apikeys/data/template-form-schema.ts","frontend/src/features/apikeys/index.tsx","frontend/src/features/auth/auth-layout.tsx","frontend/src/features/auth/components/two-column-auth.tsx","frontend/src/features/auth/data/auth.ts","frontend/src/features/auth/data/initialization.ts","frontend/src/features/auth/forgot-password/components/forgot-password-form.tsx","frontend/src/features/auth/forgot-password/index.tsx","frontend/src/features/auth/initialization/components/initialization-form.tsx","frontend/src/features/auth/initialization/index.tsx","frontend/src/features/auth/sign-in/components/animated-line-background.engine.ts","frontend/src/features/auth/sign-in/components/animated-line-background.tsx","frontend/src/features/auth/sign-in/components/auto-router-diagram.tsx","frontend/src/features/auth/sign-in/components/geometric-background.tsx","frontend/src/features/auth/sign-in/components/user-auth-form.tsx","frontend/src/features/auth/sign-in/index.tsx"],"storefront":"/r/looplj","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/looplj/axonhub/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}