
Pinme LLM
Use this skill when a PinMe project (Worker TypeScript) needs to call OpenRouter-backed...
Install
npx skills add glitternetwork/pinme --skill pinme-llm -g -a claude-code -y- Repository
- glitternetwork/pinme3.8k
- Category
- AI and agents
- Updated
- 2mo ago
- License
- MIT
- Context cost
- Mediumabout 2,751 tokens
- Runs scripts
- No, instructions only
What it does
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.
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:
// backend/src/worker.ts
export interface Env {
DB: D1Database;
API_KEY: string; // Project API Key from create_worker
PROJECT_NAME: string; // Actual project_name from create_worker; must match API_KEY
BASE_URL?: string; // Optional override for PinMe API base URL, defaults to https://pinme.cloud
}
API_KEYauthenticates the Worker to PinMe.PROJECT_NAMEis required forchat/completionsand must belong to the same project asAPI_KEY. WhenBASE_URLis not set, usehttps://pinme.cloud.
Models API
Endpoint: GET {BASE_URL}/api/v1/models
Authentication: X-API-Key header (using env.API_KEY)
Request Body: none
Use this when the Worker needs to list available OpenRouter models. The response body, status, and headers are passed through from OpenRouter /models.
async function listModels(env: Env): Promise<unknown> {
const baseUrl = env.BASE_URL ?? 'https://pinme.cloud';
const resp = await fetch(`${baseUrl}/api/v1/models`, {
headers: { 'X-API-Key': env.API_KEY },
});
if (!resp.ok) {
throw new Error(await extractPinmeOpenRouterError(resp));
}
return await resp.json();
}
Chat Completions API
Endpoint: POST {BASE_URL}/api/v1/chat/completions?project_name={project_name}
Authentication: X-API-Key header (using env.API_KEY)
Request Body: OpenRouter chat/completions format, passed through as-is after a 1MB size check
Streaming: Supports SSE (stream: true)
Web Search: Supports OpenRouter openrouter:web_search server tool via the tools array

