#339 by GitHub stars
glitternetwork/pinme
Deploy Your Frontend in a Single Command. Claude Code Skills supported.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/pinme/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
7822b0501607 → 7822b0501607
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 7822b0501607
No earlier version was observed for comparison.
skills/pinme-auth/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
7822b0501607 → 7822b0501607
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 7822b0501607
No earlier version was observed for comparison.
skills/pinme-email/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
7822b0501607 → 7822b0501607
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 7822b0501607
No earlier version was observed for comparison.
skills/pinme-llm/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
7822b0501607 → 7822b0501607
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 7822b0501607
No earlier version was observed for comparison.
skills/pinme-r2/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
7822b0501607 → 7822b0501607
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 7822b0501607
No earlier version was observed for comparison.
skills/pinme-share/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Network or broad shell
7822b0501607 → 7822b0501607
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 7822b0501607
No earlier version was observed for comparison.
skills/pinme-uniwebpay/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
7822b0501607 → 7822b0501607
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 7822b0501607
No earlier version was observed for comparison.
Verified commit 7822b0501607786958ecb458f3bd02a061933efa
git clone --filter=blob:none --no-checkout https://github.com/glitternetwork/pinme.git .hotskills/glitternetwork-pinme && git -C .hotskills/glitternetwork-pinme checkout --detach 7822b0501607786958ecb458f3bd02a061933efa
# Copy each selected skill directory from .hotskills/glitternetwork-pinme into .claude/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/glitternetwork/pinme.git .hotskills/glitternetwork-pinme && git -C .hotskills/glitternetwork-pinme checkout --detach 7822b0501607786958ecb458f3bd02a061933efa
# Copy each selected skill directory from .hotskills/glitternetwork-pinme into .agents/skills/<skill-name>/Heat
1.9- Star growth, last 7 daysAhead of 35% of tracked repositories
- Star growth, last 24 hoursAhead of 3% of tracked repositories
- Rank movement, last 7 daysAhead of 28% of tracked repositories
- Commits, last 30 daysAhead of 0% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- pinme
skills/pinme - pinme-auth
skills/pinme-auth - pinme-email
skills/pinme-email - pinme-llm
skills/pinme-llm - pinme-r2
skills/pinme-r2 - pinme-share
skills/pinme-share - pinme-uniwebpay
skills/pinme-uniwebpay
How it works
pinme
When your agent uses it
Use this skill when the user mentions "pinme", or needs to upload files, store to IPFS, create/publish/deploy websites or full-stack services (including frontend pages, backend APIs, database storage, email sending, etc.), or any feature requiring backend database/server support.
What it loads into context
Frontmatter
64 tokensAlways available to the agent
SKILL.md
3,794 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Path 1: Upload Files / Static Sites
- Path 2: Full-Stack Project
- Worker Code Patterns (`backend/src/worker.ts`)
- Frontend API Utility (frontend/src/utils/api.ts)
- D1 Database Operations
- Template Architecture Suggestions
- Important Notes
- Common Errors
- Other Commands
Files
SKILL.mdcore15,400 bytesSKILL.mdcore15,400 bytesSKILL.mdcore15,400 bytesSKILL.mdcore15,400 bytesSKILL.mdcore15,400 bytesSKILL.mdcore15,400 bytesSKILL.mdcore15,400 bytesSKILL.mdcore15,400 bytesSKILL.mdcore15,400 bytesSKILL.mdcore15,400 bytes
Read SKILL.md
# PinMe
Zero-config deployment tool: upload static files to IPFS, or create and deploy full-stack web projects (React+Vite + Cloudflare Worker + D1 database). Workers also support sending emails via the PinMe platform API.
## When to Use
```dot
digraph pinme_decision {
"User Request" [shape=doublecircle];
"Needs backend API or database?" [shape=diamond];
"Upload Files (Path 1)" [shape=box];
"Full-Stack Project (Path 2)" [shape=box];
"User Request" -> "Needs backend API or database?";View the complete source on GitHubpinme-auth
When your agent uses it
Use when a PinMe project (Worker TypeScript) needs to integrate user authentication — creating email/password users, verifying id_tokens, querying user info, or listing users via Identity Platform auth proxy APIs.
What it loads into context
Frontmatter
48 tokensAlways available to the agent
SKILL.md
3,177 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Environment Variables
- 认证方式(所有接口通用)
- 通用错误
- 通用 TypeScript 类型
- API 1: 创建用户
- API 2: 校验 id_token
- API 3: 查询单个用户
- API 4: 列出用户(分页)
- 前端集成(Firebase Auth)
- 典型调用链路
- 易错点
Files
SKILL.mdcore11,865 bytes
Read SKILL.md
# PinMe Worker Auth API Integration
Guides how to call PinMe platform's Identity Platform auth proxy APIs in a PinMe Worker (TypeScript).
## Environment Variables
```typescript
// backend/src/worker.ts
export interface Env {
DB: D1Database;
[Credential-related source omitted]
PROJECT_NAME: string; // 项目名 — 所有 auth 接口必须同时传递
BASE_URL?: string; // 可选,默认 https://pinme.cloud
}View the complete source on GitHubpinme-email
When your agent uses it
Use this skill when a PinMe project (Worker TypeScript) needs to integrate email sending (send_email). Guides AI to generate correct Worker TS code.
What it loads into context
Frontmatter
39 tokensAlways available to the agent
SKILL.md
1,253 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Environment Variables
- Send Email API
- Error Handling Pattern
Files
SKILL.mdcore4,831 bytes
Read SKILL.md
# PinMe Worker Email API Integration
Guides how to call PinMe platform's email sending API in a PinMe Worker (TypeScript).
## Environment Variables
The following environment variables are automatically injected when the Worker is created — no manual configuration needed:
```typescript
// backend/src/worker.ts
export interface Env {
DB: D1Database;
[Credential-related source omitted]
BASE_URL?: string; // Optional override for PinMe API base URL, defaults to https://pinme.cloudView the complete source on GitHubpinme-llm
When your agent uses it
Use this skill when a PinMe project (Worker TypeScript) needs to call OpenRouter-backed LLM APIs, including models, chat/completions, streaming, or OpenRouter web search. Guides AI to generate correct Worker TS code.
What it loads into context
Frontmatter
58 tokensAlways available to the agent
SKILL.md
2,842 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Environment Variables
- Models API
- Chat Completions API
- Error Handling Pattern
Files
SKILL.mdcore11,265 bytes
Read SKILL.md
# PinMe Worker OpenRouter API Integration
Guides how to call PinMe platform's OpenRouter proxy APIs in a PinMe Worker (TypeScript). Workers use the PinMe project API key; they never hold the real OpenRouter API key.
## Environment Variables
The following environment variables are automatically injected when the Worker is created — no manual configuration needed:
```typescript
// backend/src/worker.ts
export interface Env {
DB: D1Database;
[Credential-related source omitted]
PROJECT_NAME: string; // Actual project_name from create_worker; must match API_KEYView the complete source on GitHubpinme-r2
When your agent uses it
Use when a PinMe Cloudflare Worker needs R2 object storage, including secure file or image upload, streaming download, metadata lookup, deletion, listing, Range requests, or R2+D1 coordination. Guides AI to use PinMe's automatically injected env.R2 binding without R2 credentials or manual Wrangler configuration.
What it loads into context
Frontmatter
72 tokensAlways available to the agent
SKILL.md
3,462 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Runtime Contract
- Choose R2 or D1
- Required Security Workflow
- Shared Helpers
- Stream an Upload
- Stream a Download
- Read Metadata with HEAD
- Delete an Object
- List an Owner's Objects
- Route and Error Semantics
- Coordinate R2 with D1
- Large Files
- Local Development
- Anti-Patterns
Files
SKILL.mdcore14,419 bytesagents/openai.yamlasset206 bytes
Read SKILL.md
# PinMe Worker R2 Storage
Use the project-scoped R2 bucket that PinMe binds to every deployed Worker as `env.R2`. Do not create credentials, choose a bucket name, or edit generated Wrangler configuration.
## Runtime Contract
PinMe rebuilds trusted Worker metadata on create, save, and update. Client metadata cannot replace the R2 binding.
| Binding | TypeScript type | Availability |
| --- | --- | --- |
| `DB` | `D1Database` | Always injected |
| `R2` | `R2Bucket` | Always injected; current project's bucket |
| `API_KEY` | `string` | Always injected |
| `LLM_API_KEY` | `string` | Always injected |View the complete source on GitHubpinme-share
When your agent uses it
Use this skill when the user wants to share, publish, or upload a static result through PinMe, especially by generating a static HTML share page for a PinMe project link, deployed full-stack app, Codex conversation summary, report, file, demo, or any 分享/发布/上传分享页 request that should end with `pinme upload`.
What it loads into context
Frontmatter
81 tokensAlways available to the agent
SKILL.md
1,023 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Core Workflow
- Share Page Content
- HTML Guidelines
- PinMe Upload Checklist
- Final Response
Files
SKILL.mdcore4,679 bytesSKILL.mdcore4,679 bytesSKILL.mdcore4,679 bytesSKILL.mdcore4,679 bytesSKILL.mdcore4,679 bytesSKILL.mdcore4,679 bytes
Read SKILL.md
# PinMe Share
Create a polished static share artifact, upload it with `pinme upload`, and return the final URL.
## When to Use
Use this skill when the user asks to:
- Share or publish a result using PinMe.
- Create a static page that wraps a deployed project link, demo, report, or artifact.
- Summarize a Codex conversation/session and share it as a page.
- Turn a project handoff into a public landing or summary page.
- Upload an existing static file or folder for lightweight distribution.
View the complete source on GitHubpinme-uniwebpay
When your agent uses it
Use when generating, modifying, or reviewing PinMe Worker (Cloudflare Worker TypeScript) code that accepts payments through UniwebPay — payment links, products/prices, checkout sessions, payment status reads, refunds, subscriptions, or handling UniwebPay webhooks with @uniwebpay/sdk in a PinMe project.
What it loads into context
Frontmatter
75 tokensAlways available to the agent
SKILL.md
6,900 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Environment Binding Contract
- SDK Client
- Choosing an Integration Path
- Payment Methods and Currency Rules
- SDK Surface Quick Reference
- Webhook Integration
- Security Rules
- Persistence Guidance (D1)
- Worker Reference Implementation
- Common Mistakes
- Finish Checklist
Files
SKILL.mdcore29,067 bytesSKILL.mdcore29,067 bytesSKILL.mdcore29,067 bytes
Read SKILL.md
# PinMe UniwebPay Payment Integration
Guides writing payment services in a PinMe Worker (Cloudflare Worker TypeScript) that call UniwebPay directly through `@uniwebpay/sdk`.
Core model: PinMe provisions the UniwebPay wallet and keys per **PinMe user** (not per project) and injects `UNIWEB_*` environment bindings at Worker deploy time; Worker code calls UniwebPay **directly with the SDK** — it does not go through PinMe payment proxy routes, and it must not call the legacy VibeCash APIs.
## Environment Binding Contract
```typescript
export interface Env {
[Credential-related source omitted]
UNIWEB_WEBHOOK_SECRET?: string; // wallet-level whsec_, used to verify webhook signatures
UNIWEB_API_URL?: string; // UniwebPay API endpoint override (default https://apiskill.uniwebpay.com)
UNIWEB_PAY_URL?: string; // UniwebPay checkout host override (default https://skill.uniwebpay.com)View the complete source on GitHubSkills included
- pinme
- pinme-auth
- pinme-email
- pinme-llm
- pinme-r2
- pinme-share
- pinme-uniwebpay
Repository facts
- License
- MIT
- Created
- Apr 13, 2025
- Last pushed
- Sep 12, 2026
- Forks
- 276
- Open issues
- 7
- Project activity
- Active
Rank over the last 12 weeks
Now #339 · best #240 · down 56 in 30 days
- #327 on Nov 1
- #331 on Nov 2
- #333 on Nov 3
- #334 on Nov 4
- #335 on Nov 5
- #339 since Nov 6
49 earlier periods
- #233 on Aug 2
- #235 on Aug 3
- #235 on Aug 8
- #241 on Aug 10
- #236 on Aug 12
- #239 on Aug 13
- #241 on Aug 14
- #240 on Aug 15
- #248 on Aug 18
- #249 on Aug 23
- #254 on Aug 27
- #251 on Aug 28
- #253 on Aug 29
- #255 on Aug 31
- #255 on Sep 2
- #255 on Sep 6
- #260 on Sep 7
- #259 on Sep 8
- #260 on Sep 9
- #262 on Sep 10
- #263 on Sep 12
- #268 on Sep 14
- #267 from Sep 15 to Sep 16
- #270 on Sep 18
- #273 on Sep 20
- #270 on Sep 25
- #274 on Sep 27
- #278 on Sep 28
- #279 on Sep 30
- #283 on Oct 2
- #277 on Oct 3
- #283 from Oct 5 to Oct 6
- #286 on Oct 8
- #289 on Oct 9
- #286 on Oct 10
- #287 on Oct 11
- #292 on Oct 12
- #291 on Oct 14
- #291 on Oct 16
- #293 on Oct 17
- #294 on Oct 18
- #299 on Oct 20
- #307 on Oct 22
- #305 on Oct 23
- #314 on Oct 25
- #318 on Oct 28
- #321 on Oct 29
- #327 on Oct 30
- #328 on Oct 31
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 2, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 16 notes
skills/pinme/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/pinme/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/pinme/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/pinme/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/pinme/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/pinme/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/pinme/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/pinme/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/pinme/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/pinme-share/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/pinme-share/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/pinme-share/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/pinme-share/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/pinme-share/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/pinme-uniwebpay/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/pinme-uniwebpay/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 1 dangerous shell commandin 1 file: pinme/SKILL.md:391
- 67 network referencesin 5 files: pinme-llm/SKILL.md:18 pinme-auth/SKILL.md:16 pinme-email/SKILL.md:17 and 2 more
- No hidden or obfuscated text
- No instruction overrides
- No executable scripts
- 48 references to secretsin 6 files: pinme-auth/SKILL.md:16 pinme-uniwebpay/SKILL.md:30 pinme-llm/SKILL.md:18 and 3 more
- No requests to vote in Hot
Show all 116 signals by file
skills/pinme-auth/SKILL.md
- Network accessline 16
[Credential-related source omitted] - Access to secretsline 16
[Credential-related source omitted] - Network accessline 17
PROJECT_NAME: string; // 项目名 — 所有 auth 接口必须同时传递 BASE_URL?: string; // 可选,默认 https://pinme.cloud } - Network accessline 18
BASE_URL?: string; // 可选,默认 https://pinme.cloud - Access to secretsline 22
[Credential-related source omitted] - Network accessline 104
[Credential-related source omitted] - Network accessline 105
): Promise<{ user?: UserInfo; error?: string }> { const baseUrl = env.BASE_URL ?? 'https://pinme.cloud'; const resp = await fetch( - Network accessline 106
const baseUrl = env.BASE_URL ?? 'https://pinme.cloud'; const resp = await fetch( `${baseUrl}/api/v1/auth/create_user?project_name=${encodeURIComponent(env.PROJECT_NAME)}`, - Network accessline 107
const resp = await fetch( - Access to secretsline 111
[Credential-related source omitted] - Network accessline 163
idToken: string ): Promise<{ uid?: string; email?: string; error?: string; emailNotVerified?: boolean }> { const baseUrl = env.BASE_URL ?? 'https://pinme.cloud'; - Network accessline 164
): Promise<{ uid?: string; email?: string; error?: string; emailNotVerified?: boolean }> { const baseUrl = env.BASE_URL ?? 'https://pinme.cloud'; const resp = await fetch( - Network accessline 165
const baseUrl = env.BASE_URL ?? 'https://pinme.cloud'; const resp = await fetch( `${baseUrl}/api/v1/auth/verify_token?project_name=${encodeURIComponent(env.PROJECT_NAME)}`, - Network accessline 166
const resp = await fetch( - Access to secretsline 170
[Credential-related source omitted] - Network accessline 201
async function getAuthUser(env: Env, uid: string): Promise<{ user?: UserInfo; error?: string }> { const baseUrl = env.BASE_URL ?? 'https://pinme.cloud'; const resp = await fetch( - Network accessline 202
const baseUrl = env.BASE_URL ?? 'https://pinme.cloud'; const resp = await fetch( `${baseUrl}/api/v1/auth/user?project_name=${encodeURIComponent(env.PROJECT_NAME)}&uid=${encodeURIComponent(uid)}`, - Network accessline 203
const resp = await fetch( - Access to secretsline 205
[Credential-related source omitted] - Network accessline 236
options: { pageToken?: string; maxResults?: number } = {} ): Promise<{ users?: UserInfo[]; nextPageToken?: string; error?: string }> { const baseUrl = env.BASE_URL ?? 'https://pinme.cloud'; - Network accessline 237
): Promise<{ users?: UserInfo[]; nextPageToken?: string; error?: string }> { const baseUrl = env.BASE_URL ?? 'https://pinme.cloud'; const url = new URL('/api/v1/auth/list_users', baseUrl); - Network accessline 238
const baseUrl = env.BASE_URL ?? 'https://pinme.cloud'; - Network accessline 244
[Credential-related source omitted] - Access to secretsline 244
[Credential-related source omitted] - Access to secretsline 271
[Credential-related source omitted] - Access to secretsline 275
[Credential-related source omitted] - Access to secretsline 276
[Credential-related source omitted] - Access to secretsline 282
[Credential-related source omitted] - Access to secretsline 301
[Credential-related source omitted] - Access to secretsline 308
[Credential-related source omitted] - Access to secretsline 338
[Credential-related source omitted]
skills/pinme-email/SKILL.md
- Network accessline 17
[Credential-related source omitted] - Network accessline 18
[Credential-related source omitted] - Access to secretsline 18
[Credential-related source omitted] - Network accessline 19
BASE_URL?: string; // Optional override for PinMe API base URL, defaults to https://pinme.cloud - Network accessline 23
[Credential-related source omitted] - Access to secretsline 23
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Network accessline 67
async function sendEmail(env: Env, to: string, subject: string, html: string): Promise<{ ok: boolean; error?: string }> { const baseUrl = env.BASE_URL ?? 'https://pinme.cloud'; const resp = await fetch(`${baseUrl}/api/v4/send_email`, { - Network accessline 68
const baseUrl = env.BASE_URL ?? 'https://pinme.cloud'; const resp = await fetch(`${baseUrl}/api/v4/send_email`, { method: 'POST', - Network accessline 69
const resp = await fetch(`${baseUrl}/api/v4/send_email`, { - Access to secretsline 73
[Credential-related source omitted] - Network accessline 119
let resp: Response; try { resp = await fetch(url, { - Network accessline 120
try { resp = await fetch(url, { method: 'POST', - Network accessline 121
resp = await fetch(url, { - Network accessline 154
const baseUrl = env.BASE_URL ?? 'https://pinme.cloud'; - Access to secretsline 158
[Credential-related source omitted]
skills/pinme-llm/SKILL.md
- Network accessline 18
[Credential-related source omitted] - Access to secretsline 18
[Credential-related source omitted] - Network accessline 19
[Credential-related source omitted] - Access to secretsline 19
[Credential-related source omitted] - Network accessline 20
BASE_URL?: string; // Optional override for PinMe API base URL, defaults to https://pinme.cloud - Network accessline 24
[Credential-related source omitted] - Access to secretsline 24
[Credential-related source omitted] - Access to secretsline 31
[Credential-related source omitted] - Network accessline 37
async function listModels(env: Env): Promise<unknown> { const baseUrl = env.BASE_URL ?? 'https://pinme.cloud'; const resp = await fetch(`${baseUrl}/api/v1/models`, { - Network accessline 38
[Credential-related source omitted] - Network accessline 39
const resp = await fetch(`${baseUrl}/api/v1/models`, { - Access to secretsline 40
[Credential-related source omitted] - Access to secretsline 56
[Credential-related source omitted] - Network accessline 83
async function searchWithLLM(env: Env, query: string): Promise<string> { const baseUrl = env.BASE_URL ?? 'https://pinme.cloud'; const resp = await fetch( - Network accessline 84
const baseUrl = env.BASE_URL ?? 'https://pinme.cloud'; const resp = await fetch( `${baseUrl}/api/v1/chat/completions?project_name=${encodeURIComponent(env.PROJECT_NAME)}`, - Network accessline 85
const resp = await fetch( - Access to secretsline 91
[Credential-related source omitted] - Network accessline 158
model = 'openai/gpt-4o-mini', ): Promise<{ content: string; error?: string }> { const baseUrl = env.BASE_URL ?? 'https://pinme.cloud'; - Network accessline 159
): Promise<{ content: string; error?: string }> { const baseUrl = env.BASE_URL ?? 'https://pinme.cloud'; const resp = await fetch( - Network accessline 160
const baseUrl = env.BASE_URL ?? 'https://pinme.cloud'; const resp = await fetch( `${baseUrl}/api/v1/chat/completions?project_name=${encodeURIComponent(env.PROJECT_NAME)}`, - Network accessline 161
const resp = await fetch( - Access to secretsline 167
[Credential-related source omitted] - Network accessline 200
async function handleChatStream(request: Request, env: Env): Promise<Response> { const body = await request.text(); const baseUrl = env.BASE_URL ?? 'https://pinme.cloud'; - Network accessline 202
const baseUrl = env.BASE_URL ?? 'https://pinme.cloud'; - Network accessline 208
const resp = await fetch( - Access to secretsline 214
[Credential-related source omitted] - Network accessline 240
async function streamChat(question: string, onChunk: (text: string) => void): Promise<void> { const resp = await fetch(getApiUrl('/api/chat/stream'), { - Network accessline 241
const resp = await fetch(getApiUrl('/api/chat/stream'), { - Network accessline 324
let resp: Response; try { resp = await fetch(url, { - Network accessline 325
try { resp = await fetch(url, { method: 'POST', - Network accessline 326
resp = await fetch(url, { - Network accessline 346
const baseUrl = env.BASE_URL ?? 'https://pinme.cloud'; - Access to secretsline 350
[Credential-related source omitted]
skills/pinme-r2/SKILL.md
skills/pinme-uniwebpay/SKILL.md
- Network accessline 16
[Credential-related source omitted] - Network accessline 17
UNIWEB_WEBHOOK_SECRET?: string; // wallet-level whsec_, used to verify webhook signatures UNIWEB_API_URL?: string; // UniwebPay API endpoint override (default https://apiskill.uniwebpay.com) UNIWEB_PAY_URL?: string; // - Network accessline 18
UNIWEB_API_URL?: string; // UniwebPay API endpoint override (default https://apiskill.uniwebpay.com) - Network accessline 19
UNIWEB_PAY_URL?: string; // UniwebPay checkout host override (default https://skill.uniwebpay.com) - Network accessline 20
UNIWEB_WALLET_ID?: string; // user-level wallet id (wal_), diagnostics/reconciliation only WORKER_URL?: string; // this project's public URL: https://{projectName}.{platform api domain} PROJECT_NAME?: string; - Network accessline 21
WORKER_URL?: string; // this project's public URL: https://{projectName}.{platform api domain} - Access to secretsline 30
[Credential-related source omitted] - Access to secretsline 43
[Credential-related source omitted] - Access to secretsline 213
[Credential-related source omitted] - Access to secretsline 236
[Credential-related source omitted] - Access to secretsline 246
[Credential-related source omitted] - Access to secretsline 313
[Credential-related source omitted] - Access to secretsline 483
[Credential-related source omitted] - Access to secretsline 493
[Credential-related source omitted] - Network accessline 532
export default { async fetch(request: Request, env: Env): Promise<Response> { - Network accessline 533
async fetch(request: Request, env: Env): Promise<Response> { - Access to secretsline 537
[Credential-related source omitted] - Access to secretsline 553
[Credential-related source omitted] - Access to secretsline 569
[Credential-related source omitted] - Access to secretsline 570
[Credential-related source omitted]
skills/pinme/SKILL.md
- Access to secretsline 154
[Credential-related source omitted] - Network accessline 185
pinme save # Single command deploys frontend + backend + database # Outputs preview URL: https://pinme.eth.limo/#/preview/{CID} - Network accessline 187
# Outputs preview URL: https://pinme.eth.limo/#/preview/{CID} - Network accessline 192
The backend Worker is deployed at `https://{name}.pinme.pro`. Frontend API requests are automatically configured to point to that address — no manual setup needed. - Access to secretsline 215
[Credential-related source omitted] - Network accessline 230
export default { async fetch(request: Request, env: Env): Promise<Response> { - Network accessline 231
async fetch(request: Request, env: Env): Promise<Response> { - Network accessline 261
When the backend needs email sending, use the PinMe platform API (`https://pinme.cloud/api/v4/send_email`). - Access to secretsline 263
[Credential-related source omitted] - Access to secretsline 270
[Credential-related source omitted] - Access to secretsline 278
[Credential-related source omitted] - Access to secretsline 280
[Credential-related source omitted] - Network accessline 298
const response = await fetch('https://pinme.cloud/api/v4/send_email', { - Dangerous shell operationline 391
pinme rm <hash> # Delete uploaded content
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 116 facts
- Network access in code of the SKILL.mdpinme-auth/SKILL.md:16High confidence
- Access to secrets in code of the SKILL.mdpinme-auth/SKILL.md:16High confidence
- Network access in code of the SKILL.mdpinme-auth/SKILL.md:17High confidence
- Network access in code of the SKILL.mdpinme-auth/SKILL.md:18High confidence
- Access to secrets in prose of the SKILL.mdpinme-auth/SKILL.md:22Low confidence
- Network access in code of the SKILL.mdpinme-auth/SKILL.md:104High confidence
- Network access in code of the SKILL.mdpinme-auth/SKILL.md:105High confidence
- Network access in code of the SKILL.mdpinme-auth/SKILL.md:106High confidence
- Network access in code of the SKILL.mdpinme-auth/SKILL.md:107High confidence
- Access to secrets in code of the SKILL.mdpinme-auth/SKILL.md:111High confidence
- Network access in code of the SKILL.mdpinme-auth/SKILL.md:163High confidence
- Network access in code of the SKILL.mdpinme-auth/SKILL.md:164High confidence
- Network access in code of the SKILL.mdpinme-auth/SKILL.md:165High confidence
- Network access in code of the SKILL.mdpinme-auth/SKILL.md:166High confidence
- Access to secrets in code of the SKILL.mdpinme-auth/SKILL.md:170High confidence
- Network access in code of the SKILL.mdpinme-auth/SKILL.md:201High confidence
- Network access in code of the SKILL.mdpinme-auth/SKILL.md:202High confidence
- Network access in code of the SKILL.mdpinme-auth/SKILL.md:203High confidence
- Access to secrets in code of the SKILL.mdpinme-auth/SKILL.md:205High confidence
- Network access in code of the SKILL.mdpinme-auth/SKILL.md:236High confidence
- Network access in code of the SKILL.mdpinme-auth/SKILL.md:237High confidence
- Network access in code of the SKILL.mdpinme-auth/SKILL.md:238High confidence
- Network access in code of the SKILL.mdpinme-auth/SKILL.md:244High confidence
- Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valuepinme-auth/SKILL.md:244Low confidence
- Access to secrets in prose of the SKILL.mdpinme-auth/SKILL.md:271Low confidence
- Access to secrets in prose of the SKILL.mdpinme-auth/SKILL.md:275Low confidence
- Access to secrets in prose of the SKILL.mdpinme-auth/SKILL.md:276Low confidence
- Access to secrets in prose of the SKILL.md: a variable, placeholder or call, not a stored valuepinme-auth/SKILL.md:282Low confidence
- Access to secrets in code of the SKILL.mdpinme-auth/SKILL.md:301High confidence
- Access to secrets in code of the SKILL.mdpinme-auth/SKILL.md:308High confidence
- Access to secrets in prose of the SKILL.mdpinme-auth/SKILL.md:338Low confidence
- Network access in code of the SKILL.mdpinme-email/SKILL.md:17High confidence
- Network access in code of the SKILL.mdpinme-email/SKILL.md:18High confidence
- Access to secrets in code of the SKILL.mdpinme-email/SKILL.md:18High confidence
- Network access in code of the SKILL.mdpinme-email/SKILL.md:19High confidence
- Network access in prose of the SKILL.mdpinme-email/SKILL.md:23Low confidence
- Access to secrets in prose of the SKILL.mdpinme-email/SKILL.md:23Low confidence
- Access to secrets in prose of the SKILL.md: a variable, placeholder or call, not a stored valuepinme-email/SKILL.md:30Low confidence
- Network access in code of the SKILL.mdpinme-email/SKILL.md:67High confidence
- Network access in code of the SKILL.mdpinme-email/SKILL.md:68High confidence
- Network access in code of the SKILL.mdpinme-email/SKILL.md:69High confidence
- Access to secrets in code of the SKILL.mdpinme-email/SKILL.md:73High confidence
- Network access in code of the SKILL.mdpinme-email/SKILL.md:119High confidence
- Network access in code of the SKILL.mdpinme-email/SKILL.md:120High confidence
- Network access in code of the SKILL.mdpinme-email/SKILL.md:121High confidence
- Network access in code of the SKILL.mdpinme-email/SKILL.md:154High confidence
- Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valuepinme-email/SKILL.md:158Low confidence
- Network access in code of the SKILL.mdpinme-llm/SKILL.md:18High confidence
- Access to secrets in code of the SKILL.mdpinme-llm/SKILL.md:18High confidence
- Network access in code of the SKILL.mdpinme-llm/SKILL.md:19High confidence
and 66 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Path CLAUDE.md | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/pinme/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/pinme/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/pinme/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/pinme/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/glitternetwork-pinme/)