Skip to content

Commit bbf8aea

Browse files
committed
Merge remote-tracking branch 'origin/main' into worktree-web-i18n
2 parents 4266bfc + 25b8f32 commit bbf8aea

19 files changed

Lines changed: 321 additions & 73 deletions

File tree

.claude-plugin/marketplace.json

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,6 +396,81 @@
396396
"keywords": ["docus", "nuxt", "documentation", "markdown", "nuxt-content"],
397397
"tags": ["framework", "docs"],
398398
"source": "./plugins/docus"
399+
},
400+
{
401+
"name": "tosspayments",
402+
"description": "TossPayments payment integration guide - access official documentation for payment widget, checkout, and API integration",
403+
"category": "development",
404+
"keywords": ["tosspayments", "payment", "checkout", "korea"],
405+
"tags": ["mcp", "payment"],
406+
"source": "./plugins/tosspayments"
407+
},
408+
{
409+
"name": "stripe",
410+
"description": "Stripe development plugin for Claude",
411+
"category": "development",
412+
"keywords": ["stripe", "payments", "webhooks", "api", "security"],
413+
"tags": ["mcp", "payments"],
414+
"source": {
415+
"source": "git-subdir",
416+
"url": "stripe/ai",
417+
"path": "providers/claude/plugin",
418+
"ref": "main"
419+
},
420+
"homepage": "https://github.com/stripe/ai/tree/main/providers/claude/plugin"
421+
},
422+
{
423+
"name": "vercel",
424+
"description": "Vercel deployment platform integration. Manage deployments, check build status, access logs, configure domains, and control your frontend infrastructure directly from Claude Code.",
425+
"category": "deployment",
426+
"source": {
427+
"source": "url",
428+
"url": "https://github.com/vercel/vercel-plugin.git"
429+
},
430+
"homepage": "https://github.com/vercel/vercel-plugin"
431+
},
432+
{
433+
"name": "sentry",
434+
"description": "Sentry error monitoring integration. Access error reports, analyze stack traces, search issues by fingerprint, and debug production errors directly from your development environment.",
435+
"category": "monitoring",
436+
"source": {
437+
"source": "url",
438+
"url": "https://github.com/getsentry/sentry-for-claude.git"
439+
},
440+
"homepage": "https://github.com/getsentry/sentry-for-claude/tree/main"
441+
},
442+
{
443+
"name": "posthog",
444+
"description": "Access PostHog analytics, feature flags, experiments, error tracking, and insights directly from Claude Code.",
445+
"category": "monitoring",
446+
"source": {
447+
"source": "url",
448+
"url": "https://github.com/PostHog/ai-plugin.git",
449+
"sha": "f2f37954ecef9f1afce4fa81b6a612454a96c410"
450+
},
451+
"homepage": "https://posthog.com/docs/model-context-protocol"
452+
},
453+
{
454+
"name": "revenuecat",
455+
"description": "Configure RevenueCat projects, apps, products, entitlements, and offerings directly from Claude Code. Manage your in-app purchase backend without leaving your development workflow.",
456+
"category": "development",
457+
"source": {
458+
"source": "url",
459+
"url": "https://github.com/RevenueCat/rc-claude-code-plugin.git",
460+
"sha": "af7cb77996aee4e7e3c109c5afec81f716139032"
461+
},
462+
"homepage": "https://www.revenuecat.com"
463+
},
464+
{
465+
"name": "notion",
466+
"description": "Notion workspace integration. Search pages, create and update documents, manage databases, and access your team's knowledge base directly from Claude Code for seamless documentation workflows.",
467+
"category": "productivity",
468+
"keywords": ["notion", "productivity", "knowledge-base", "documentation", "database"],
469+
"tags": ["productivity", "mcp"],
470+
"source": {
471+
"source": "github",
472+
"repo": "makenotion/claude-code-notion-plugin"
473+
}
399474
}
400475
]
401476
}

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,6 @@
3737
[submodule "external-plugins/google-workspace"]
3838
path = external-plugins/google-workspace
3939
url = https://github.com/googleworkspace/cli
40+
[submodule "external-plugins/revenuecat"]
41+
path = external-plugins/revenuecat
42+
url = https://github.com/RevenueCat/rc-claude-code-plugin.git

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
".": "1.0.0",
3-
"apps/web": "1.3.0",
3+
"apps/web": "1.4.0",
44
"packages/eslint-config": "0.0.0",
55
"packages/typescript-config": "0.0.0",
66
"packages/vitest-config": "0.0.0",

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,11 @@ Token-efficient browser automation CLI for coding agents — navigate, interact,
6363

6464
**Install:** `/plugin install playwright-cli@pleaseai` | **Repository:** [pleaseai/playwright-cli](https://github.com/pleaseai/playwright-cli)
6565

66+
#### Vercel
67+
Vercel deployment platform integration. Manage deployments, check build status, access logs, configure domains, and control your frontend infrastructure directly from Claude Code.
68+
69+
**Install:** `/plugin install vercel@pleaseai` | **Repository:** [vercel/vercel-plugin](https://github.com/vercel/vercel-plugin)
70+
6671
---
6772

6873
### Built-in Plugins
@@ -250,6 +255,7 @@ Once the marketplace is added, install any plugin with:
250255
/plugin install grafana@pleaseai
251256
/plugin install chrome-devtools-mcp@pleaseai
252257
/plugin install playwright-cli@pleaseai
258+
/plugin install vercel@pleaseai
253259

254260
# Built-in plugins
255261
/plugin install plugin-dev@pleaseai

apps/web/CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Changelog
22

3+
## [1.4.0](https://github.com/pleaseai/claude-code-plugins/compare/web-v1.3.0...web-v1.4.0) (2026-03-26)
4+
5+
6+
### Features
7+
8+
* **marketplace:** add stripe plugin to marketplace ([#102](https://github.com/pleaseai/claude-code-plugins/issues/102)) ([22ae922](https://github.com/pleaseai/claude-code-plugins/commit/22ae9225e5b6911cf50a6e5b405aaaea48bd1557))
9+
310
## [1.3.0](https://github.com/pleaseai/claude-code-plugins/compare/web-v1.2.0...web-v1.3.0) (2026-03-04)
411

512

apps/web/app/components/PluginCard.vue

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,21 @@ import { useTimeoutFn } from '@vueuse/core'
33
44
const { t } = useI18n()
55
6-
interface PluginSource {
6+
interface PluginSourceGitHub {
77
source: 'github'
88
repo: string
99
}
1010
11+
interface PluginSourceGitSubdir {
12+
source: 'git-subdir'
13+
url: string
14+
path: string
15+
ref?: string
16+
sha?: string
17+
}
18+
19+
type PluginSource = PluginSourceGitHub | PluginSourceGitSubdir
20+
1121
interface Plugin {
1222
name: string
1323
description: string
@@ -52,6 +62,11 @@ async function fetchPluginMetadata() {
5262
return
5363
}
5464
65+
// Only GitHub source plugins support metadata fetch
66+
if (props.plugin.source.source !== 'github') {
67+
return
68+
}
69+
5570
// GitHub plugin - fetch from GitHub
5671
loading.value = true
5772
try {
@@ -94,7 +109,7 @@ async function fetchPluginMetadata() {
94109
// Network-level errors (connection failed, CORS, etc.)
95110
console.error('Network error fetching plugin metadata:', {
96111
plugin: props.plugin.name,
97-
repo: props.plugin.source.repo,
112+
repo: props.plugin.source.source === 'github' ? props.plugin.source.repo : props.plugin.source.url,
98113
error: err instanceof Error ? err.message : String(err),
99114
})
100115
}
@@ -171,6 +186,17 @@ const githubSourceUrl = computed(() => {
171186
172187
return url
173188
}
189+
// git-subdir plugin
190+
if (props.plugin.source.source === 'git-subdir') {
191+
const url = props.plugin.source.url
192+
const path = props.plugin.source.path
193+
const ref = props.plugin.source.ref || 'main'
194+
// Handle both full URLs and owner/repo shorthand
195+
if (url.startsWith('http')) {
196+
return `${url.replace(/\.git$/, '')}/tree/${ref}/${path}`
197+
}
198+
return `https://github.com/${url}/tree/${ref}/${path}`
199+
}
174200
// GitHub plugin
175201
return `https://github.com/${props.plugin.source.repo}`
176202
})
@@ -308,7 +334,7 @@ watch(() => props.autoOpenModal, (shouldOpen) => {
308334
</div>
309335
<div class="flex items-center gap-2 text-xs text-muted">
310336
<UIcon name="i-heroicons-code-bracket" class="shrink-0" />
311-
<span class="truncate">{{ typeof plugin.source === 'string' ? plugin.source : plugin.source.repo }}</span>
337+
<span class="truncate">{{ typeof plugin.source === 'string' ? plugin.source : plugin.source.source === 'github' ? plugin.source.repo : plugin.source.url }}</span>
312338
</div>
313339
</div>
314340
<div class="shrink-0">

apps/web/app/pages/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ function pluginMatchesSearch(plugin: Plugin, query: string): boolean {
7676
const searchFields = [
7777
plugin.name,
7878
plugin.description,
79-
typeof plugin.source === 'string' ? plugin.source : plugin.source.repo,
79+
typeof plugin.source === 'string' ? plugin.source : 'repo' in plugin.source ? plugin.source.repo : plugin.source.url,
8080
]
8181
8282
return searchFields.some(field =>

apps/web/app/types/marketplace.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,21 @@ export interface MarketplaceSource {
1111
priority: number
1212
}
1313

14-
export interface PluginSource {
14+
export interface PluginSourceGitHub {
1515
source: 'github'
1616
repo: string
1717
}
1818

19+
export interface PluginSourceGitSubdir {
20+
source: 'git-subdir'
21+
url: string
22+
path: string
23+
ref?: string
24+
sha?: string
25+
}
26+
27+
export type PluginSource = PluginSourceGitHub | PluginSourceGitSubdir
28+
1929
export interface Plugin {
2030
name: string
2131
description?: string

apps/web/content.config.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,13 @@ export default defineContentConfig({
3838
source: z.literal('github'),
3939
repo: z.string(),
4040
}),
41+
z.object({
42+
source: z.literal('git-subdir'),
43+
url: z.string(),
44+
path: z.string(),
45+
ref: z.string().optional(),
46+
sha: z.string().optional(),
47+
}),
4148
z.string(),
4249
]),
4350
}),

apps/web/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "web",
33
"type": "module",
4-
"version": "1.3.0",
4+
"version": "1.4.0",
55
"private": true,
66
"engines": {
77
"node": "22.x"

0 commit comments

Comments
 (0)