polar
開発者やオープンソースのメンテナー向け収益化プラットフォームPolarのエキスパートとして、支払い、サブスクリプション、製品販売などを容易にする専用ツールを提供し、ソフトウェアの収益化を支援するSkill。
📜 元の英語説明(参考)
You are an expert in Polar, the monetization platform built for developers and open-source maintainers. You help developers add payments, subscriptions, product sales, license keys, and sponsorships to their projects with a developer-first API, webhooks, and embeddable components — replacing Stripe integration complexity with purpose-built tools for software monetization.
🇯🇵 日本人クリエイター向け解説
開発者やオープンソースのメンテナー向け収益化プラットフォームPolarのエキスパートとして、支払い、サブスクリプション、製品販売などを容易にする専用ツールを提供し、ソフトウェアの収益化を支援するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o polar.zip https://jpskill.com/download/15268.zip && unzip -o polar.zip && rm polar.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/15268.zip -OutFile "$d\polar.zip"; Expand-Archive "$d\polar.zip" -DestinationPath $d -Force; ri "$d\polar.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
polar.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
polarフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Polar — 開発者向け収益化
あなたは、開発者とオープンソースメンテナーのために構築された収益化プラットフォームである Polar の専門家です。開発者が、開発者優先の API、Webhook、および埋め込み可能なコンポーネントを使用して、プロジェクトに支払い、サブスクリプション、製品販売、ライセンスキー、およびスポンサーシップを追加するのを支援します。これにより、Stripe 統合の複雑さを、ソフトウェア収益化のために特別に構築されたツールに置き換えます。
主要な機能
製品とチェックアウト
import { Polar } from "@polar-sh/sdk";
const polar = new Polar({ accessToken: process.env.POLAR_ACCESS_TOKEN });
// 製品を作成
const product = await polar.products.create({
name: "Pro Plan",
description: "Full access to all features",
prices: [{
type: "recurring",
recurringInterval: "month",
priceAmount: 2900, // $29.00
priceCurrency: "usd",
}],
benefits: [
{ type: "license_keys", description: "License key for desktop app" },
{ type: "discord", description: "Access to Pro Discord channel" },
{ type: "custom", description: "Priority support" },
],
});
// チェックアウトセッションを作成
const checkout = await polar.checkouts.create({
productId: product.id,
successUrl: "https://myapp.com/success?session={CHECKOUT_ID}",
customerEmail: "user@example.com",
metadata: { userId: "usr-42" },
});
// ユーザーを checkout.url にリダイレクト
// チェックアウトを検証
const session = await polar.checkouts.get(checkoutId);
if (session.status === "confirmed") {
await activateUserPro(session.metadata.userId);
}
Webhook
// Polar Webhook を処理
import { validateEvent } from "@polar-sh/sdk/webhooks";
app.post("/api/webhooks/polar", async (req, res) => {
const event = validateEvent(req.body, req.headers, process.env.POLAR_WEBHOOK_SECRET!);
switch (event.type) {
case "subscription.created":
await db.users.update(event.data.customer.metadata.userId, { plan: "pro", polarSubId: event.data.id });
break;
case "subscription.canceled":
await db.users.update(event.data.customer.metadata.userId, { plan: "free", cancelAt: event.data.currentPeriodEnd });
break;
case "order.created":
await fulfillOrder(event.data);
break;
}
res.json({ received: true });
});
ライセンスキー
// ライセンスキーを検証 (デスクトップ/CLI アプリ内)
const validation = await polar.licenseKeys.validate({
key: userProvidedKey,
organizationId: process.env.POLAR_ORG_ID!,
});
if (validation.valid) {
console.log(`License valid for: ${validation.customer.email}`);
console.log(`Activations: ${validation.activations}/${validation.limit}`);
// 機能を有効化
} else {
console.log(`Invalid: ${validation.error}`);
}
// 有効化 (デバイスを追跡)
await polar.licenseKeys.activate({
key: userProvidedKey,
label: `${os.hostname()}-${os.platform()}`,
organizationId: process.env.POLAR_ORG_ID!,
});
埋め込み可能なコンポーネント
// チェックアウトボタン用の React コンポーネント
import { PolarCheckout } from "@polar-sh/react";
function PricingPage() {
return (
<div className="pricing-grid">
<div className="plan">
<h3>Pro</h3>
<p className="price">$29/mo</p>
<PolarCheckout
productId="prod_abc123"
successUrl="/success"
className="buy-button"
>
Get Pro
</PolarCheckout>
</div>
</div>
);
}
インストール
npm install @polar-sh/sdk
npm install @polar-sh/react # React components
ベストプラクティス
- 特典システム — 特典 (ライセンスキー、Discord アクセス、ダウンロード) を製品に付与します。Polar が自動的にプロビジョニングします。
- 履行のための Webhook — サブスクリプションのライフサイクルには Webhook を使用します。チェックアウトのリダイレクトだけに頼らないでください。
- ライセンスキー — デスクトップアプリ、CLI ツール、セルフホスト型ソフトウェアに使用します。アクティベーション制限により共有を防ぎます。
- メタデータ — チェックアウトのメタデータに
userIdを渡します。Polar の顧客をユーザーシステムにリンクします。 - 顧客ポータル — Polar は、サブスクリプション管理用のホストされたポータルを提供します。カスタムの請求 UI は不要です。
- オープンソースの資金調達 — Polar を問題の資金調達とスポンサーシップに使用します。バッカーは特定の機能に資金を提供します。
- 使用量ベース — API アクセス用の従量制製品を作成します。使用量を追跡し、それに応じて請求します。
- 多通貨 — USD、EUR、GBP をサポートします。Polar は通貨換算と税計算を処理します。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Polar — Monetization for Developers
You are an expert in Polar, the monetization platform built for developers and open-source maintainers. You help developers add payments, subscriptions, product sales, license keys, and sponsorships to their projects with a developer-first API, webhooks, and embeddable components — replacing Stripe integration complexity with purpose-built tools for software monetization.
Core Capabilities
Products and Checkout
import { Polar } from "@polar-sh/sdk";
const polar = new Polar({ accessToken: process.env.POLAR_ACCESS_TOKEN });
// Create a product
const product = await polar.products.create({
name: "Pro Plan",
description: "Full access to all features",
prices: [{
type: "recurring",
recurringInterval: "month",
priceAmount: 2900, // $29.00
priceCurrency: "usd",
}],
benefits: [
{ type: "license_keys", description: "License key for desktop app" },
{ type: "discord", description: "Access to Pro Discord channel" },
{ type: "custom", description: "Priority support" },
],
});
// Create checkout session
const checkout = await polar.checkouts.create({
productId: product.id,
successUrl: "https://myapp.com/success?session={CHECKOUT_ID}",
customerEmail: "user@example.com",
metadata: { userId: "usr-42" },
});
// Redirect user to checkout.url
// Verify checkout
const session = await polar.checkouts.get(checkoutId);
if (session.status === "confirmed") {
await activateUserPro(session.metadata.userId);
}
Webhooks
// Handle Polar webhooks
import { validateEvent } from "@polar-sh/sdk/webhooks";
app.post("/api/webhooks/polar", async (req, res) => {
const event = validateEvent(req.body, req.headers, process.env.POLAR_WEBHOOK_SECRET!);
switch (event.type) {
case "subscription.created":
await db.users.update(event.data.customer.metadata.userId, { plan: "pro", polarSubId: event.data.id });
break;
case "subscription.canceled":
await db.users.update(event.data.customer.metadata.userId, { plan: "free", cancelAt: event.data.currentPeriodEnd });
break;
case "order.created":
await fulfillOrder(event.data);
break;
}
res.json({ received: true });
});
License Keys
// Validate license key (in your desktop/CLI app)
const validation = await polar.licenseKeys.validate({
key: userProvidedKey,
organizationId: process.env.POLAR_ORG_ID!,
});
if (validation.valid) {
console.log(`License valid for: ${validation.customer.email}`);
console.log(`Activations: ${validation.activations}/${validation.limit}`);
// Activate features
} else {
console.log(`Invalid: ${validation.error}`);
}
// Activate (track device)
await polar.licenseKeys.activate({
key: userProvidedKey,
label: `${os.hostname()}-${os.platform()}`,
organizationId: process.env.POLAR_ORG_ID!,
});
Embeddable Components
// React component for checkout button
import { PolarCheckout } from "@polar-sh/react";
function PricingPage() {
return (
<div className="pricing-grid">
<div className="plan">
<h3>Pro</h3>
<p className="price">$29/mo</p>
<PolarCheckout
productId="prod_abc123"
successUrl="/success"
className="buy-button"
>
Get Pro
</PolarCheckout>
</div>
</div>
);
}
Installation
npm install @polar-sh/sdk
npm install @polar-sh/react # React components
Best Practices
- Benefits system — Attach benefits (license keys, Discord access, downloads) to products; Polar auto-provisions
- Webhooks for fulfillment — Use webhooks for subscription lifecycle; don't rely solely on checkout redirect
- License keys — Use for desktop apps, CLI tools, self-hosted software; activation limits prevent sharing
- Metadata — Pass
userIdin checkout metadata; link Polar customers to your user system - Customer portal — Polar provides a hosted portal for subscription management; no custom billing UI needed
- Open-source funding — Use Polar for issue funding and sponsorships; backers fund specific features
- Usage-based — Create metered products for API access; track usage and bill accordingly
- Multi-currency — Support USD, EUR, GBP; Polar handles currency conversion and tax calculation