{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"github-glitternetwork--pinme","slug":"glitternetwork--pinme","name":"pinme","type":"cli","url":"https://pinme.eth.limo","page_url":"https://unfragile.ai/glitternetwork--pinme","categories":["automation","deployment-infra"],"tags":["ai-tools","claude-code-skill","claude-skills","deployment","deployment-tools","frontend","frontend-deployment","hosting","serverless","skills","static-site","static-site-deploy","static-site-hosting","web-hosting","zero-configuration"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"github-glitternetwork--pinme__cap_0","uri":"capability://automation.workflow.zero.configuration.ipfs.file.upload.with.content.addressing","name":"zero-configuration ipfs file upload with content addressing","description":"Uploads static files and directories to IPFS via the Glitter Protocol gateway, generating immutable content identifiers (CIDs) without requiring server management or account setup. Uses a dual-path architecture: simple single-file uploads via uploadToIpfs() for files under 200MB, and chunked directory uploads via uploadToIpfsSplit() for directories up to 1GB with session-based state management to handle interruptions and resume capability.","intents":["Deploy a static website without managing servers or infrastructure","Get an immutable, content-addressed URL for frontend assets","Upload large directories with automatic chunking and resumable sessions","Verify content integrity using cryptographic hashing"],"best_for":["Solo developers deploying personal projects or portfolios","Teams building static sites (Hugo blogs, documentation, JAMstack apps)","Developers wanting decentralized, censorship-resistant hosting"],"limitations":["Single file size capped at 200MB; directory uploads capped at 1GB total","No built-in CDN acceleration — IPFS retrieval speed depends on peer availability and geographic distribution","Requires network connectivity; no offline-first capability for uploads","CID-based URLs are content-addressed but not human-readable without domain binding"],"requires":["Node.js 14+ (inferred from package.json)","Network access to Glitter Protocol IPFS gateway","Static files or directory structure (no server-side rendering)"],"input_types":["file paths (single files or directories)","directory trees with arbitrary file types"],"output_types":["IPFS CID (Content Identifier hash)","preview URL (https://pinme.eth.limo/#/preview/*)","upload metadata (CID, timestamp, file size)"],"categories":["automation-workflow","deployment-infra"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-glitternetwork--pinme__cap_1","uri":"capability://memory.knowledge.persistent.upload.history.tracking.with.local.state.management","name":"persistent upload history tracking with local state management","description":"Maintains a local JSON-based history file (~/.pinme/history.json) that records all upload metadata including CIDs, timestamps, file paths, and domain bindings. Implements addHistory() and getHistory() functions to provide users with queryable records of past deployments without requiring external databases or cloud state storage, enabling reproducibility and audit trails.","intents":["View all previous deployments and their associated CIDs","Retrieve the CID of a past upload without re-uploading","Track which domains are bound to which content versions","Audit deployment history for compliance or debugging"],"best_for":["Individual developers managing multiple project versions","Teams needing deployment audit trails without external infrastructure","CI/CD pipelines that need to reference past deployment CIDs"],"limitations":["History stored only locally on the machine running pinme CLI — not synced across team members or devices","No built-in cleanup or archival; history file grows unbounded over time","JSON format not optimized for large-scale queries (linear scan for filtering)","No encryption of history file — sensitive metadata (domain names, CIDs) stored in plaintext"],"requires":["Write access to ~/.pinme/ directory","Persistent filesystem (not suitable for ephemeral containers without volume mounts)"],"input_types":["upload metadata (CID, file path, timestamp, domain binding)"],"output_types":["JSON array of upload records","filtered history results (by date, domain, or CID)"],"categories":["memory-knowledge","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-glitternetwork--pinme__cap_10","uri":"capability://automation.workflow.preview.url.generation.with.encrypted.cid.embedding","name":"preview url generation with encrypted cid embedding","description":"Generates temporary preview URLs at https://pinme.eth.limo/#/preview/* that embed encrypted or obfuscated CIDs, allowing users to share deployments before binding to permanent domains. Preview URLs provide time-limited or access-controlled viewing without requiring domain setup, using URL fragment-based routing to avoid exposing raw CIDs in server logs.","intents":["Share a deployment preview with team members before domain binding","Generate shareable links for client review without permanent domain","Access content via human-friendly URLs while CID is still being resolved","Provide temporary access without requiring authentication"],"best_for":["Teams doing client reviews before production deployment","Developers testing deployments before domain binding","Sharing work-in-progress sites with stakeholders"],"limitations":["Preview URLs are not permanent — may expire or become inaccessible","CID embedding in URL fragment may expose content to browser history and referrer logs","No built-in access control or authentication for preview URLs","Preview URLs depend on pinme.eth.limo availability; no fallback if service is down"],"requires":["CID from successful upload","Network access to pinme.eth.limo"],"input_types":["CID (content identifier)"],"output_types":["preview URL (https://pinme.eth.limo/#/preview/*)"],"categories":["automation-workflow","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-glitternetwork--pinme__cap_11","uri":"capability://tool.use.integration.ipfs.api.integration.via.glitter.protocol.gateway.abstraction","name":"ipfs api integration via glitter protocol gateway abstraction","description":"Abstracts IPFS network interaction through Glitter Protocol gateway, eliminating need for users to run local IPFS nodes or manage provider credentials. Implements uploadToIpfs() and uploadToIpfsSplit() functions that communicate with gateway's HTTP API, handling content upload, chunking, and CID generation without exposing IPFS complexity to CLI users.","intents":["Upload content to IPFS without running a local node","Avoid managing IPFS provider accounts or API keys","Use IPFS as transparent backend without learning IPFS protocol details","Leverage Glitter Protocol's optimized gateway infrastructure"],"best_for":["Developers wanting IPFS benefits without infrastructure management","Teams avoiding IPFS node operational overhead","Users in regions with limited IPFS peer availability"],"limitations":["Dependency on Glitter Protocol gateway availability — no fallback if gateway is down","Gateway adds latency compared to local IPFS node uploads","No control over IPFS node configuration (replication factor, pinning strategy)","Gateway rate limiting may apply to high-volume uploads"],"requires":["Network access to Glitter Protocol gateway","No local IPFS node required (but compatible if user runs one)"],"input_types":["file content (binary or text)","directory structure"],"output_types":["IPFS CID","gateway URL for content retrieval"],"categories":["tool-use-integration","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-glitternetwork--pinme__cap_2","uri":"capability://automation.workflow.domain.binding.with.dns.and.pinme.subdomain.management","name":"domain binding with dns and pinme subdomain management","description":"Binds IPFS content (identified by CID) to human-readable domains via two mechanisms: automatic Pinme subdomains (*.pinit.eth.limo) for free users, and custom DNS domains (CNAME/TXT records) for VIP users. Implements domain binding logic in PinmeApi class with HTTP methods that communicate with Pinme backend to register domain-to-CID mappings, enabling users to access immutable content via familiar URLs.","intents":["Bind a deployed site to a memorable subdomain without managing DNS","Use custom domain names for production deployments","Update domain bindings to point to new CID versions without changing URLs","Verify domain ownership via CNAME or TXT record validation"],"best_for":["Developers wanting branded URLs for IPFS-hosted content","Teams deploying multiple versions and needing stable domain endpoints","VIP users with custom domain requirements"],"limitations":["Free tier limited to Pinme subdomains (*.pinit.eth.limo); custom domains require VIP authentication","DNS propagation delays (typically 24-48 hours) before custom domains resolve","Requires AppKey authentication for VIP features; no anonymous custom domain binding","Backend dependency — domain binding fails if Pinme API is unavailable"],"requires":["AppKey for VIP custom domain binding (format: <ethereum_address>-<jwt_token>)","For custom domains: ability to modify DNS records (CNAME or TXT) at domain registrar","Network access to Pinme backend API"],"input_types":["CID (content identifier)","domain name (string)","AppKey (optional, for VIP features)"],"output_types":["bound domain URL","domain binding confirmation","DNS record requirements (CNAME/TXT values)"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-glitternetwork--pinme__cap_3","uri":"capability://data.processing.analysis.car.file.import.export.for.content.migration.and.portability","name":"car file import/export for content migration and portability","description":"Enables users to export IPFS content as Content Addressable aRchive (CAR) files for backup, migration, or sharing, and import CAR files to restore content. Implements bidirectional CAR file handling through PinmeApi integration, allowing users to migrate deployments between IPFS providers or create portable archives of their sites without relying on live IPFS network availability.","intents":["Export a deployed site as a portable CAR file for backup","Migrate content from one IPFS provider to another","Share a complete site snapshot with team members or archivists","Restore a site from a CAR file without re-uploading original files"],"best_for":["Teams requiring content portability across IPFS providers","Developers building archival or backup workflows","Organizations needing to migrate from centralized to decentralized hosting"],"limitations":["CAR file size equals or exceeds original content size (no compression built-in)","Import requires re-pinning content on target IPFS provider; CID may differ if content structure changes","No built-in verification that imported CAR file matches original content integrity","CAR format is IPFS-specific; not compatible with other distributed storage systems"],"requires":["Sufficient disk space to store CAR files locally","Network access to Pinme backend for CAR export/import operations","AppKey authentication for CAR operations (inferred from architecture)"],"input_types":["CID (for export)","CAR file path (for import)"],"output_types":["CAR file (binary archive)","CID of imported content","import confirmation with file count and size"],"categories":["data-processing-analysis","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-glitternetwork--pinme__cap_4","uri":"capability://safety.moderation.appkey.based.authentication.and.authorization.for.vip.features","name":"appkey-based authentication and authorization for vip features","description":"Implements JWT-based authentication using AppKey format (<ethereum_address>-<jwt_token>) to gate premium features including custom domain binding, CAR file operations, and VIP status checks. Validates AppKey credentials against Pinme backend via PinmeApi class, enabling role-based access control without requiring OAuth or external identity providers.","intents":["Authenticate CLI user for accessing VIP features","Verify user eligibility for custom domain binding","Track API usage and rate limits per authenticated user","Enable team-based access control via shared AppKeys"],"best_for":["VIP users needing custom domain and premium features","Teams managing multiple deployments with shared credentials","Developers integrating pinme into CI/CD pipelines with authentication"],"limitations":["AppKey is a long-lived credential; no built-in token rotation or expiration management","Storing AppKey in environment variables or config files poses security risk if exposed","No multi-factor authentication or rate limiting per AppKey","Backend dependency — authentication fails if Pinme API is unavailable"],"requires":["Valid AppKey (obtained from Pinme account dashboard, format: <ethereum_address>-<jwt_token>)","Network access to Pinme backend for credential validation","Secure storage mechanism for AppKey (environment variable or encrypted config)"],"input_types":["AppKey string","feature request (domain binding, CAR export, VIP check)"],"output_types":["authentication success/failure","VIP status confirmation","feature access grant/denial"],"categories":["safety-moderation","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-glitternetwork--pinme__cap_5","uri":"capability://tool.use.integration.claude.ai.skill.integration.for.automated.deployment.workflows","name":"claude ai skill integration for automated deployment workflows","description":"Exposes pinme CLI commands as a Claude Code Skill, enabling Claude AI to invoke deployment operations directly within code generation workflows. Implements LLM execution protocol that allows Claude to call upload, domain binding, and history commands with natural language instructions, automating multi-step deployment tasks without manual CLI invocation.","intents":["Let Claude automatically deploy generated code to IPFS","Enable AI-assisted deployment workflows in Claude Code","Automate domain binding and site configuration via natural language","Create end-to-end AI-driven development-to-deployment pipelines"],"best_for":["Developers using Claude Code for full-stack development","Teams automating deployment workflows with AI assistance","Rapid prototyping scenarios where deployment should be automatic"],"limitations":["Claude skill integration requires Claude Code environment; not available in standard Claude chat","AI-driven deployments lack human review step — potential for unintended deployments","No built-in rollback mechanism if Claude deploys incorrect content","Skill execution depends on Claude's understanding of deployment context; may fail with ambiguous instructions"],"requires":["Claude Code environment with skill support enabled","AppKey for authenticated deployments (if using VIP features)","Project files in Claude's working directory"],"input_types":["natural language instructions to Claude","project files and directory structure"],"output_types":["deployed site URL","domain binding confirmation","deployment status and CID"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-glitternetwork--pinme__cap_6","uri":"capability://automation.workflow.chunked.directory.upload.with.resumable.session.management","name":"chunked directory upload with resumable session management","description":"Implements uploadToIpfsSplit() function to handle large directory uploads (up to 1GB) by breaking content into chunks and managing upload sessions with state persistence. Tracks upload progress and session metadata locally, enabling users to resume interrupted uploads without losing progress or re-uploading completed chunks. Uses session-based architecture to coordinate multi-part uploads across network interruptions.","intents":["Upload large directories without timeout or connection failures","Resume interrupted uploads from last successful chunk","Monitor upload progress for large deployments","Handle network instability gracefully during long uploads"],"best_for":["Developers deploying large static sites (>100MB)","Teams with unreliable network connections","CI/CD pipelines uploading comprehensive documentation or media archives"],"limitations":["Directory upload capped at 1GB total; no support for larger deployments","Session state stored locally; resuming from different machine requires manual CID lookup","Chunking overhead adds latency compared to single-file uploads","No progress callback or streaming output — users see batch completion only"],"requires":["Directory structure with total size under 1GB","Persistent local filesystem for session state","Network connectivity (resumable but requires same network session)"],"input_types":["directory path","optional session ID for resuming"],"output_types":["directory CID","chunk upload status","session metadata (for resumption)"],"categories":["automation-workflow","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-glitternetwork--pinme__cap_7","uri":"capability://automation.workflow.content.removal.and.cid.unpinning.from.ipfs.network","name":"content removal and cid unpinning from ipfs network","description":"Provides remove command to unpin content from IPFS via Pinme backend, removing user's copy of content from the distributed network. Integrates with PinmeApi to coordinate unpinning across Pinme's IPFS infrastructure, enabling users to delete deployments and free storage resources without manual IPFS node management.","intents":["Delete a deployed site from IPFS","Remove old versions to free storage quota","Unpin content that should no longer be publicly accessible","Clean up test deployments and temporary uploads"],"best_for":["Users managing storage quotas on Pinme","Teams removing deprecated or sensitive deployments","Developers cleaning up test uploads"],"limitations":["Removal only affects Pinme's pinned copy; content may persist on other IPFS nodes if previously cached","No recovery mechanism after removal — deletion is permanent","Requires AppKey authentication; anonymous users cannot remove content","Removal latency depends on Pinme backend processing time"],"requires":["CID of content to remove","AppKey authentication","Network access to Pinme backend"],"input_types":["CID (content identifier)"],"output_types":["removal confirmation","storage freed (if tracked)"],"categories":["automation-workflow","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-glitternetwork--pinme__cap_8","uri":"capability://tool.use.integration.commander.js.based.cli.routing.and.command.parsing","name":"commander.js-based cli routing and command parsing","description":"Implements bin/index.ts entry point using Commander.js framework to parse command-line arguments, route user input to appropriate command handlers, and manage help/version output. Provides structured command registration with options, arguments, and descriptions, enabling users to discover and invoke pinme commands via standard CLI patterns (pinme upload, pinme bind, etc.).","intents":["Parse and validate CLI arguments for pinme commands","Route user input to correct command handler function","Display contextual help and usage information","Manage command options and flags (--domain, --appkey, etc.)"],"best_for":["CLI users familiar with standard command-line tools","Developers integrating pinme into shell scripts","CI/CD pipelines invoking pinme commands"],"limitations":["Commander.js adds ~50-100ms startup latency for each invocation","Complex nested commands may be difficult to discover without --help","No built-in shell completion (bash/zsh) — users must manually type commands","Error messages depend on Commander.js defaults; limited customization"],"requires":["Node.js 14+ (Commander.js compatibility)","pinme installed globally or via npx"],"input_types":["command name (string)","arguments (file paths, domains, CIDs)","flags/options (--domain, --appkey, --help)"],"output_types":["command execution result","help text","error messages"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-glitternetwork--pinme__cap_9","uri":"capability://automation.workflow.build.system.integration.with.package.json.configuration","name":"build system integration with package.json configuration","description":"Defines build pipeline and distribution configuration in package.json, specifying bin entry point (bin/index.ts), main export, and TypeScript compilation targets. Enables npm/yarn to install pinme as global CLI tool with automatic shebang handling and executable permissions, making deployment as simple as npm install -g pinme.","intents":["Install pinme as a global CLI command","Distribute pinme via npm registry","Configure TypeScript compilation for CLI distribution","Manage dependencies and peer dependencies"],"best_for":["npm/yarn users installing pinme globally","Package maintainers distributing CLI tools","Teams using pinme in CI/CD via npm install"],"limitations":["npm installation adds ~2-5 seconds to first-time setup","TypeScript compilation required at install time (no pre-compiled binaries)","Global installation can cause version conflicts if multiple projects need different pinme versions","Requires npm/yarn; no standalone binary distribution"],"requires":["npm 6+ or yarn 1.22+","Node.js 14+","Internet access to npm registry"],"input_types":["package.json configuration"],"output_types":["installed pinme CLI executable","node_modules dependencies"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":45,"verified":false,"data_access_risk":"high","permissions":["Node.js 14+ (inferred from package.json)","Network access to Glitter Protocol IPFS gateway","Static files or directory structure (no server-side rendering)","Write access to ~/.pinme/ directory","Persistent filesystem (not suitable for ephemeral containers without volume mounts)","CID from successful upload","Network access to pinme.eth.limo","Network access to Glitter Protocol gateway","No local IPFS node required (but compatible if user runs one)","AppKey for VIP custom domain binding (format: <ethereum_address>-<jwt_token>)"],"failure_modes":["Single file size capped at 200MB; directory uploads capped at 1GB total","No built-in CDN acceleration — IPFS retrieval speed depends on peer availability and geographic distribution","Requires network connectivity; no offline-first capability for uploads","CID-based URLs are content-addressed but not human-readable without domain binding","History stored only locally on the machine running pinme CLI — not synced across team members or devices","No built-in cleanup or archival; history file grows unbounded over time","JSON format not optimized for large-scale queries (linear scan for filtering)","No encryption of history file — sensitive metadata (domain names, CIDs) stored in plaintext","Preview URLs are not permanent — may expire or become inaccessible","CID embedding in URL fragment may expose content to browser history and referrer logs","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.531994630289177,"quality":0.34,"ecosystem":0.7000000000000001,"match_graph":0.25,"freshness":0.75,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.1,"match_graph":0.28,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:21.550Z","last_scraped_at":"2026-05-03T13:57:16.561Z","last_commit":"2026-05-01T07:31:11Z"},"community":{"stars":3187,"forks":229,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=glitternetwork--pinme","compare_url":"https://unfragile.ai/compare?artifact=glitternetwork--pinme"}},"signature":"U2Xs16BBh/budjbcP9BPxr+qsbhfLN9IJGWD/WlfaYnGTPo1hPD5R6crClx2/JQfH1J2m86eyQUp51qr94GgCA==","signedAt":"2026-06-20T02:23:15.209Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/glitternetwork--pinme","artifact":"https://unfragile.ai/glitternetwork--pinme","verify":"https://unfragile.ai/api/v1/verify?slug=glitternetwork--pinme","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}