/ Directory / Playground / pinme
● Community glitternetwork ⚡ Instant

pinme

by glitternetwork · glitternetwork/pinme

Zero-config frontend deploys to IPFS via one CLI command — Claude runs pinme upload dist and hands back a preview URL.

PinMe is a CLI + Claude Skill that deploys static sites (dist/build/out/public) to IPFS in a single command, no accounts or servers. The skill contains an AI Execution Protocol so Claude knows exactly how to verify Node, install the CLI, detect the right build folder, and return the preview URL to the user.

Why use it

Key features

Live Demo

What it looks like in practice

pinme-skill.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "pinme-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/glitternetwork/pinme",
        "~/.claude/skills/pinme"
      ],
      "_inferred": true
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "pinme-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/glitternetwork/pinme",
        "~/.claude/skills/pinme"
      ],
      "_inferred": true
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "pinme-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/glitternetwork/pinme",
        "~/.claude/skills/pinme"
      ],
      "_inferred": true
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "pinme-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/glitternetwork/pinme",
        "~/.claude/skills/pinme"
      ],
      "_inferred": true
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "pinme-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/glitternetwork/pinme",
        "~/.claude/skills/pinme"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "pinme-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/glitternetwork/pinme",
          "~/.claude/skills/pinme"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add pinme-skill -- git clone https://github.com/glitternetwork/pinme ~/.claude/skills/pinme

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use pinme

Ship a preview link for a landing page in under a minute

👤 Developers iterating on a static site with Claude Code ⏱ ~3 min beginner

When to use: You want to share a preview without configuring Vercel/Netlify, just a raw link.

Prerequisites
  • Node.js installed — node >= 18 — the skill verifies this
  • A built static site — Run your framework's build (e.g. npm run build)
Flow
  1. Ask Claude to deploy
    Build this Astro site and deploy it with pinme.✓ Copied
    → Claude runs the build, detects dist/, installs pinme if missing, runs the upload
  2. Get the URL
    (no prompt — just wait)✓ Copied
    → Preview URL returned in the chat

Outcome: A shareable IPFS-hosted preview.

Pitfalls
  • Wrong folder detected (e.g. has both dist/ and build/) — Tell Claude explicitly: 'upload from build/'
  • IPFS gateway slow on first load — Expected — subsequent loads are cached
Combine with: filesystem

Run a review cycle where each iteration gets a fresh preview URL

👤 Designers reviewing Claude-generated UIs beginner

When to use: You're iterating on a prototype and want every version to be linkable.

Flow
  1. Build and deploy after each change
    Every time I say 'ship', rebuild and upload via pinme, then post the URL.✓ Copied
    → Claude develops a rhythm of build → deploy → URL

Outcome: A linkable preview history of your iterations.

Pitfalls
  • IPFS CIDs change on every deploy (expected) — Use ENS or DNSLink if you want a stable URL
Combine with: filesystem

Combinations

Pair with other MCPs for X10 leverage

pinme-skill + filesystem

Claude writes or edits the site, then deploys via pinme without leaving the session

Edit the hero copy, rebuild, then pinme upload dist — give me the new URL.✓ Copied
pinme-skill + github

Commit the change and ship a preview URL in one turn

Commit the change on a branch, deploy via pinme, and put the preview URL in the PR description.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
pinme upload <folder> folder path (dist/, build/, etc.) Deploy a static build Free tier available
Build-folder auto-detection current project directory Before the upload 0
Node version verification none Pre-flight check 0

Cost & Limits

What this costs to run

API quota
PinMe free tier with usage caps; check pinme.eth for current limits
Tokens per call
Trivial — the skill is small
Monetary
Free tier available; paid tiers for larger / more persistent pins
Tip
Let test previews expire; only pin the production URL long-term.

Security

Permissions, secrets, blast radius

Credential storage: No credentials required for anonymous uploads. Optional account key for pinning persistence.
Data egress: Uploaded bundle goes to IPFS — public by design. Never upload secrets, .env files, or non-public assets.

Troubleshooting

Common errors and fixes

pinme: command not found

The skill should install it; run npm i -g pinme manually if blocked.

Verify: pinme --version
Upload hangs

Check network; some corporate firewalls block IPFS bootstrap nodes.

Wrong folder uploaded

Pass an explicit path: pinme upload ./dist rather than relying on auto-detect.

Alternatives

pinme vs others

AlternativeWhen to use it insteadTradeoff
Vercel / NetlifyYou want custom domains, serverless functions, or CI integrationMore features, requires account and config
GitHub PagesYour code is on GitHub and you want a stable github.io URLCoupled to a repo; slower deploy loop

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills