pinme-share
**pinme-share** creates a polished static HTML share page and uploads it via PinMe to generate a public URL. Use this skill when the user requests sharing, publishing, or uploading a result such as a deployed project, Codex conversation summary, report, demo, or file. It handles sanitization of sensitive data, creates self-contained artifacts with inline CSS, and outputs the final shareable link from PinMe.
git clone --depth 1 https://github.com/glitternetwork/pinme /tmp/pinme-share && cp -r /tmp/pinme-share/skills/pinme-share ~/.claude/skills/pinme-shareSKILL.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. If the user needs a backend, database, auth, email, or LLM functionality, use the main `pinme` skill and any relevant PinMe integration skill first. Use `pinme-share` at the end to package and publish the result. ## Core Workflow 1. Identify what is being shared: - **PinMe/full-stack project**: deployed URL, short description, key features, tech stack, usage notes. - **Codex conversation**: goal, decisions, implementation summary, important outputs, next steps. - **Static file/report/demo**: title, purpose, file contents or preview, context for the recipient. 2. Create a static share artifact: - Prefer a single self-contained `index.html`. - Use `share/<slug>/index.html` in the current workspace unless the repo has an existing output/share convention. - Keep CSS inline for portability. - Do not require JavaScript unless interaction is valuable. 3. Sanitize before publishing: - Remove secrets, tokens, API keys, `.env` values, internal-only URLs, private user data, and unrelated logs. - For conversation summaries, summarize rather than dumping raw transcript unless the user explicitly asks for verbatim sharing. - Make links explicit and clickable. 4. Upload with PinMe: ```bash pinme upload share/<slug> ``` 5. Return the URL printed by PinMe. If PinMe outputs multiple URLs, prefer DNS domain, then PinMe subdomain, then short URL, then full preview URL. Never truncate hash fragments. ## Share Page Content For a project share page, include: - Project name and one-sentence description. - Primary launch/demo link as the first action. - What it does, who it is for, and why it matters. - Feature list focused on user-visible behavior. - Build/deploy details only when useful to the recipient. - Date and provenance such as "Created with Codex" only if appropriate. For a conversation share page, include: - Conversation title. - Initial goal or question. - Key context and constraints. - Decisions made. - Work completed or answer summary. - Files changed, commands run, links produced, or artifacts created when relevant. - Follow-up items. For a file/report share page, include: - Clear title and short abstract. - Download/open link to the uploaded artifact if there is a separate file. - Important excerpts or generated summary. - Source/context notes. ## HTML Guidelines - Build a real share page, not a generic placeholder. - Make the most important link visible in the first viewport. - Use clean, responsive HTML/CSS that works as a standalone static file. - Keep the design restrained and readable; avoid overdecorated marketing layouts for technical handoffs. - Use semantic sections, accessible contrast, descriptive link text, and sensible mobile spacing. - Escape user-provided text before inserting it into HTML. - If showing code or command output, wrap it in `<pre><code>` and keep it short. ## PinMe Upload Checklist Before upload: ```bash pinme --version ``` If PinMe is missing or stale, install or update it according to the main `pinme` skill. Authentication is required for upload: ```bash pinme login # or: pinme set-appkey <AppKey> ``` Upload examples: ```bash pinme upload share/my-project pinme upload share/conversation-summary pinme upload ./report.html pinme upload ./dist ``` Do not upload: - `.env`, `.git`, `node_modules`, source trees, private datasets, raw logs with credentials, or unrelated build cache. - Raw conversation transcripts that may include secrets or private context unless the user explicitly approves the exact content. ## Final Response Tell the user: - What share artifact was created. - The PinMe URL returned by upload. - Any important caveat, such as skipped upload because PinMe was not authenticated or unavailable. Keep the response short. The URL is the main deliverable.
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.
Use this skill when a PinMe project (Worker TypeScript) needs to integrate email sending (send_email). Guides AI to generate correct Worker TS code.
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.
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.
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.
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.