Skip to content

feat: add byok-relay to Development Tools - #153

Open
alokit-bot wants to merge 2 commits into
reorx:masterfrom
alokit-bot:add-byok-relay
Open

feat: add byok-relay to Development Tools#153
alokit-bot wants to merge 2 commits into
reorx:masterfrom
alokit-bot:add-byok-relay

Conversation

@alokit-bot

Copy link
Copy Markdown

byok-relay — BYOK relay for frontend apps

byok-relay is a self-hosted (or managed) relay that lets frontend apps use user-supplied AI API keys — exactly the pattern this list curates.

Fits this list's criteria:

  • Lets users configure their own API keys (Anthropic, OpenAI, Google, Groq, OpenRouter, Mistral, any OpenAI-compatible endpoint)
  • Free on-demand usage of their own quota — zero inference cost for the developer
  • Users bring their own key once; relay stores it encrypted (AES-256-GCM) and proxies all requests server-side

Why it's different from a simple proxy: Users own their key — it never leaves the relay in plaintext, and the frontend only ever holds a short-lived relay token (not the real API key). This solves the trust problem of BYOK for browser-only apps.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds the byok-relay project to the README, describing it as a self-hosted relay for user-supplied AI API keys. The review feedback recommends removing an extra blank line for consistency, changing the term 'register' to 'configure' for clarity, and ensuring the Chinese version of the README is also updated.

Comment thread README.md Outdated
Comment on lines +509 to +510

- [byok-relay](https://github.com/avikalpg/byok-relay)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

There is an extra blank line introduced before the new entry. Removing it will maintain consistency with the spacing used for other items in this section.

Suggested change
- [byok-relay](https://github.com/avikalpg/byok-relay)
- [byok-relay](https://github.com/avikalpg/byok-relay)

Comment thread README.md Outdated

- [byok-relay](https://github.com/avikalpg/byok-relay)

A self-hosted (or managed) relay that lets frontend apps use user-supplied AI API keys — no CORS issues, no exposed keys, no inference bill for the developer. Users register their own Anthropic, OpenAI, Google, Groq, OpenRouter, or Mistral key once; the relay stores it encrypted (AES-256-GCM) and proxies all subsequent requests server-side with SSE streaming support.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This repository is bilingual. Please add the corresponding entry to README.cn.md to keep both versions in sync. A suggested translation is provided below. Additionally, 'configure' is more appropriate than 'register' for API keys in this context.

Chinese Translation:

  • byok-relay

    一个自托管(或托管)的中继,允许前端应用使用用户提供的 AI API 密钥 —— 无 CORS 问题,无密钥泄露,开发者无需承担推理费用。用户只需配置一次其 Anthropic、OpenAI、Google、Groq、OpenRouter 或 Mistral 密钥;中继将其加密存储 (AES-256-GCM),并支持 SSE 流式传输,在服务端代理所有后续请求。

Suggested change
A self-hosted (or managed) relay that lets frontend apps use user-supplied AI API keys — no CORS issues, no exposed keys, no inference bill for the developer. Users register their own Anthropic, OpenAI, Google, Groq, OpenRouter, or Mistral key once; the relay stores it encrypted (AES-256-GCM) and proxies all subsequent requests server-side with SSE streaming support.
A self-hosted (or managed) relay that lets frontend apps use user-supplied AI API keys — no CORS issues, no exposed keys, no inference bill for the developer. Users configure their own Anthropic, OpenAI, Google, Groq, OpenRouter, or Mistral key once; the relay stores it encrypted (AES-256-GCM) and proxies all subsequent requests server-side with SSE streaming support.

alokit-bot added a commit to avikalpg/byok-relay that referenced this pull request Jul 24, 2026
* growth(day-5): submit to awesome-llm and awesome-self-hosted lists

Opened PRs:
- tensorchord/Awesome-LLMOps#491 (LLMOps section)
- reorx/awesome-chatgpt-api#153 (Development Tools)

Updated README 'Find us on' section to track pending listings.
awesome-selfhosted submission prepared separately (eligible 2026-08-14).

* feat: Add ClawHub CI/CD pipeline for skill publishing

Implements automated skill publishing workflow that:

**Automatic Publishing:**
- Auto-increments patch version on every skill update to main
- Publishes to ClawHub registry (https://clawhub.ai)
- Triggers website rebuild to sync /skill endpoint
- Creates git tags for version tracking (skill-vX.Y.Z)

**Manual Controls:**
- Supports major/minor/patch version bumps via workflow_dispatch
- Custom changelog entries for release notes
- Fallback manual publishing instructions

**Version Management:**
- Tracks version in skills/byok-relay/VERSION (semver)
- Auto-generates changelog from commit messages
- Commits version bump back to repo

**Website Sync:**
- Triggers Vercel Deploy Hook to rebuild byok-relay-website
- Website prebuild script curls latest SKILL.md from GitHub
- /skill endpoint always serves latest published version

**Required Secrets:**
- CLAWHUB_API_TOKEN: for ClawHub authentication
- VERCEL_DEPLOY_HOOK_URL: to trigger website rebuild

**Files Added:**
- .github/workflows/publish-skill.yml: CI/CD workflow
- skills/byok-relay/VERSION: version tracker (starting at 1.0.0)
- docs/SKILL_PUBLISHING.md: comprehensive docs + troubleshooting

Resolves: Multi-registry skill distribution
Enables: One-command skill updates across ClawHub + website + GitHub

* security: fix code injection and secrets context in publish-skill workflow

- PR #17 CodeRabbit fixes:
  1. CRITICAL: Fix shell injection - use env var USER_CHANGELOG instead of
     direct ${{ github.event.inputs.changelog }} interpolation in bash
  2. Filter git describe to skill-specific tags with --match 'skill-v*'
     to avoid picking up unrelated repo tags
  3. CRITICAL: Fix invalid 'secrets' context in step 'if' condition -
     replace 'if: secrets.VERCEL_DEPLOY_HOOK_URL != ""' with env var
     check inside the run step (env: VERCEL_DEPLOY_HOOK_URL + bash guard)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant