linuxdo-idea-ui
linuxdo-idea-ui linux.do용 유저스크립트 테마 모음
오픈소스 Shopify AI 챗봇으로 카탈로그 기반 쇼핑객 문의와 주문 확인을 제공하며, 무료 플랜이 있고 베타 버전이다
An open-source Shopify AI chatbot that answers shoppers from your catalogue and checks orders; Free plan available. The Shopify app is in beta.
플러그인TypeScript · JavaScriptGitHub @serebano온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기The Busymate AI Shopify app, open source: your mate on a Shopify storefront with catalogue and policy answers, signed-in order help and hand-off to a person, one workspace per store. Shopify CLI 3, React Router 7, Polaris, App Bridge, theme app extension.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
The official Busymate AI app for Shopify — and an open reference for connecting any
platform to Busymate AI. Fork it, extend it, ship your own.
Installing this app turns any Shopify store into one Busymate AI
white-label tenant — an AI support assistant (your mate): answers only from the store's
own products, policies and content, with sources, and says when it is not sure ·
signed-in shoppers get order status, tracking and confirm-gated order actions ·
replies in the shopper's language (RTL included) · confidence-gated human handoff.README 전문 보기 ↗The official Busymate AI app for Shopify — and an open reference for connecting any platform to Busymate AI. Fork it, extend it, ship your own.
Installing this app turns any Shopify store into one Busymate AI white-label tenant — an AI support assistant (your mate): answers only from the store's own products, policies and content, with sources, and says when it is not sure · signed-in shoppers get order status, tracking and confirm-gated order actions · replies in the shopper's language (RTL included) · confidence-gated human handoff.
Two things at once. This repository is both the real production app running at
shopify.busymate.aiand a MIT-licensed, open reference implementation. If you run a SaaS, a marketplace, a CMS, or any platform with an "account", the same six-step pattern below connects it to Busymate AI — Shopify is just the worked example. Start with docs/EXTENDING.md to adapt it to Stripe, WordPress, BigCommerce, or your own product.
Busymate AI is a universal, multi-tenant, white-label AI. A platform integrates with it entirely through official contracts — an MCP tool surface and a connector protocol — and never through a backdoor database write. Any integration is these six steps; everything platform-specific is isolated behind them:
| # | Step | What it does | The contract |
|---|---|---|---|
| a | Provision a tenant | Create one Busymate AI tenant per platform account, gated by proof-of-origin (no shared operator secret) | provision_partner_tenant (MCP) |
| b | Brand + serve + publish | Set the tenant's branding, allow the storefront origins to embed it, and publish the runtime projection so it goes live at <slug>.busymate.ai | set_tenant_branding, add_tenant_embed_origin, publish_tenant_runtime (MCP) |
| c | Register a support connector | Expose your platform's own tools (orders, refunds, returns…) so your mate can act, gated by tier + confirm + spend cap | upsert_tenant_support_connector (MCP) + your /mcp endpoint |
| d | Embed the chat widget | Drop the white-label widget onto your surface (iframe, allow=microphone) — no core template edit | <script src=".../embed/v1.js" data-assistant="<slug>"> |
| e | Identified launch | Prove who the visitor is (a signed ES256 JWT) so your mate scopes answers/actions to that account | /.well-known/jwks.json + a launch JWT registered as the tenant's visitor IdP |
| f | Compliance seams | Data export / erase / teardown on the platform's lifecycle + privacy events | export_tenant_customer_data, redact_tenant_customer, suspend_tenant, delete_tenant (MCP) |
The single hard invariant: all-ops-via-MCP. One module (app/bmai.server.ts) is the
only place that talks to Busymate AI. If an operation has no MCP tool, the fix is to add
the tool to the platform — not to reach around the contract.
Porting to another platform means replacing only the left column. The right column is the reusable Busymate AI pattern and barely changes.
| Shopify-specific (swap it) | The Busymate AI pattern (keep it) |
|---|---|
Managed OAuth install + offline token (@shopify/shopify-app-react-router) | Provision-on-account-connect lifecycle (app/lib/provision.ts) |
Polaris + App Bridge embedded admin (app/routes/app*.tsx) | Your own settings UI calling the same MCP seam |
Theme app extension injecting the widget (extensions/) | The embed <script> contract |
App Proxy HMAC → logged-in customer (app/lib/storefrontIdentity.ts) | Identified-launch ES256 JWT + JWKS (app/lib/identity.ts) |
Shopify Admin GraphQL tools (app/mcp/tools/*) | The /mcp connector transport + tiered/confirm gates (app/mcp/*) |
Shopify Billing usage charges (app/lib/usageBilling.ts) | Your platform's billing (or none) |
Shopify GDPR webhooks (app/routes/webhooks.compliance.tsx) | The compliance MCP effects (export/redact/teardown) |
Full porting guide: docs/EXTENDING.md.
flowchart TB
subgraph SH["Your platform (Shopify, here)"]
OAUTH["Account connect → access token"]
THEME["Widget embed (theme app extension)"]
STORE["Logged-in customer"]
ADMINAPI["Platform API (Shopify Admin GraphQL)"]
BILL["Billing (capped)"]
end
subgraph APP["This app — the integration layer"]
INSTALL["Connect callback → MCP provision lifecycle"]
INGEST["Auto-train (catalog + policies + pages → knowledge_sources)"]
CONN["Support MCP connector (/mcp · signed actor token)"]
IDENT["/identity → ES256 launch JWT + JWKS"]
METER["Resolution meter → usage charge"]
end
subgraph BMAI["Busymate AI (multi-tenant platform — reuse)"]
TEN["tenant + embed-origin allowlist"]
PUB["publish_tenant_runtime → projection"]
ASSIST["your mate (resolves tenant by host)"]
EMBED["/embed/v1.js @ slug.busymate.ai"]
USAGE["usage ledger (internal)"]
end
OAUTH --> INSTALL --> TEN
INSTALL -->|MCP only| PUB
INGEST --> PUB
INSTALL -->|register connector| CONN
THEME --> EMBED --> ASSIST
STORE --> IDENT
ASSIST -->|order tools| CONN --> ADMINAPI
ASSIST -->|resolved| METER --> BILL
METER --> USAGE
See docs/ARCHITECTURE.md · docs/PROVISIONING.md · docs/EXTENDING.md · docs/LISTING.md. Canonical Busymate AI docs live at busymate.ai/docs.
Shopify CLI 3 · React Router 7 (@shopify/shopify-app-react-router — Remix merged
into RR7; the Remix package is maintenance-only) · Polaris + App Bridge · Prisma +
Postgres (the app's own DB — an independent failure domain, never the Busymate AI
control plane) · theme app extension · Shopify Billing API · api_version 2026-07.
cp .env.example .env # fill in the values documented in each comment
npm install
npx prisma migrate dev # sets up the app's own local Postgres/SQLite schema
npm run dev # shopify app dev (needs a Shopify Partner login)
npm test # vitest — provisioning seam, tool gating, connector contract
npm run typecheck && npm run lint && npm run build
npm test, npm run typecheck, and npm run build run credential-free — they
exercise every code path without a Partner app or a Busymate AI credential. npm run dev
needs a Shopify Partner app; see below.
npm run config:link — the CLI writes your client_id into shopify.app.toml. Set
your own name / handle / application_url / redirect_urls there too..env from .env.example — every variable documents where it comes from.npm run build && npm start behind TLS, with the app's own Postgres.
The official app is hosted on k8s from git main (see SETUP.md §3b).Nothing in this repo is a secret: .env is gitignored, and .env.example +
shopify.app.toml ship placeholders only.
Contributions are welcome — bug fixes, new platform tools, docs, and especially new platform ports built on the pattern above. Please read:
Every change ships a test (test/**, npm test), and merchant-facing copy must say
"Busymate AI" / "your mate", never the retired codenames "bro"/"eve"/"bmai" —
enforced by test/naming.test.ts.
This is a real, working application, not a toy. It is also not a turnkey deploy: going live requires resources only an owner can create — a Shopify Partner app, a Busymate AI provisioning credential, an app host + DNS + TLS, an ES256 launch key, a billing plan, and the App Store listing assets. The exact steps are in SETUP.md; Built-for-Shopify compliance status is in CHECKLIST.md.
MIT — fork it, adapt it, ship your own.