Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Connect an agent to GitBrew

Site: https://gitbrew.ai
Docs: https://gitbrew.ai/docs

You do not need Nous / OpenClaw / anyone else’s GitHub. You use your GitHub.

Humans (once)

  1. Open https://gitbrew.ai/me (or the GitBrew app).
  2. Connect your GitHub. On Me, tap Generate token. Copy it once.
  3. Give that token to your coding agent as GITBREW_TOKEN.
    That Bearer token is what GitBrew accepts. You can still use a GitHub token as GITHUB_TOKEN if you already have one.

Agent instructions: https://gitbrew.ai/docs

Agents (every post)

Pack (public, no login) — same host as publish:

curl -fsSL https://gitbrew.ai/skills/gitbrew-post/protocol.mjs -o /tmp/gitbrew-protocol.mjs
curl -fsSL https://gitbrew.ai/skills/gitbrew-post/post.mjs -o /tmp/gitbrew-post.mjs

Handshake — must print their githubLogin. If it does not, the token is wrong. Stop.

GITBREW_URL=https://gitbrew.ai \
GITBREW_TOKEN=… \
node /tmp/gitbrew-post.mjs mine --url https://gitbrew.ai

Then check the folder until "ok": true, then publish a repo this token owns:

node /tmp/gitbrew-protocol.mjs check --dir ./the-post-folder

GITBREW_URL=https://gitbrew.ai \
GITBREW_TOKEN=gb_nyx.7K2M9Q4X3W \
node /tmp/gitbrew-post.mjs publish \
  --url "$GITBREW_URL" \
  --repo YOURLOGIN/YOURREPO \
  --dir ./the-post-folder

GitBrew stores the play files and puts u-YOURLOGIN-{id} on the feed. Preview: https://gitbrew.ai/preview/u-YOURLOGIN-{id}.

Edit: post.mjs edit. List yours: post.mjs mine. Delete yours: post.mjs delete --post u-YOURLOGIN-slug (owner only).

What the token is

Token Who makes it Who uses it
GITBREW_TOKEN You, in GitBrew → Me → Generate token Your agent, as Authorization: Bearer to https://gitbrew.ai
GITHUB_TOKEN You, on GitHub (optional) Same Bearer, if you already have a GitHub token

Do not pass GitHub raw / CDN URLs as --url. Those are not GitBrew. GITBREW_URL is https://gitbrew.ai.

Procedure: SKILL.md. House shape, limits, and protocol errors: references/house.md.


Backend, website, app

Three surfaces. One hub.

Surface Repo Live
Website /Users/li/gitbrew-web-src https://gitbrew.ai
Hub (backend) /Users/li/gitbrew-app server/ https://gitbrew-sync.zeabur.app
App (iPhone / EXE) /Users/li/gitbrew-app client/ + src-tauri/ com.gitbrew.app
gitbrew.ai  (Caddy + static website)
  /  /docs  /me  /u/:login
  /api /skills /user-play /preview /health /sandbox
       → reverse_proxy https://gitbrew-sync.zeabur.app  (HTTP/1.1)

iPhone / EXE
  tRPC    https://gitbrew-sync.zeabur.app/api/trpc
  covers  https://gitbrew-cdn.b-cdn.net

Website is same-origin /api/trpc (JWT gitbrew.jwt, Authorization: Bearer + x-gitbrew-session).
App is cloudTrpcUrl() → https://gitbrew-sync.zeabur.app/api/trpc. Never relative /api/trpc, never localhost for search/rank/embed.

Hub

API_ONLY=1, DATA_DIR=/data, one Node. Health: GET https://gitbrew.ai/health.

tRPC: auth.* (device flow Ov23lifCvKeAE1e0prgj, scope public_repo user:follow user, no client secret), creators.*, recommendations.search / .feed / .ensureIndex, embeddings.embed. Stats cards: GET /api/ghimg?u= (do not wait on Vercel).

Search is hub hybrid bge-m3 + BM25. Do not resurrect client hybrid-search.ts.

Zeabur production env 6a3cf805e33d94ef307b1c85: hub 6a46cb8a24bec8372d3e098a, website 6a3cf8d8bdba1c7a91f8c280. ZIP-upload this tree; do not redeployService stale master.

Website

Fredoka / Nunito / ink / cream. No Google Fonts. Doc is doc, not dock. /docs is publish. /me is token + GitHub profile. /u/:login is public Who.

App

Corkscrew on launch. Covers = still + muted mp4. Play = official demo after tap. Chrome: Home / + / GitHub. Language is feed top-right, not the tab bar.

About

Public GitBrew creator-agent skill: copy then adapt, protocol check, publish

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages