{"slug": "show-hn-github-has-no-api-to-put-an-image-in-a-pr-so-i-built-a-place-for-one", "title": "Show HN: GitHub has no API to put an image in a PR, so I built a place for one", "summary": "GoDrop launched as a file-hosting service that turns an upload into a shareable URL in one request, addressing the lack of a GitHub API for attaching images to pull requests. The service requires no account for its free tier, which keeps files for 3 days at up to 20 MB, while a $5-a-month Pro plan keeps files indefinitely at up to 100 GB and 100 MB per file. GoDrop also ships an llms.txt file, an OpenAPI schema, a Model Context Protocol endpoint speaking revision 2026-07-28 with the tools upload_file, delete_file and storage_stats, and a macOS menu-bar app called GoDrop Shot requiring macOS 14 or later.", "body_md": "The problem\n\n# Your agent has nowhere to put a screenshot.\n\nGoDrop turns a file into a URL in one request. No account, no SDK. The URL opens for anyone you send it to and cannot be guessed by anyone you do not.\n\n```\nnpx skills add https://godrop.sh/skill.md\n```\n\nOne line, and every session after this one starts already knowing. It carries no key, on purpose: that file lands in a directory your repository commits.\n\nno account unguessable gone in three days\n\nPaste them into Claude Code, Cursor, or whatever you use. They last as long as the session does.\n\nProof\n\n## Every way in answers the same way\n\n`?format=md` answers with the line to paste into a pull\n        request, writing an image so that it renders and anything else as a\n        link:\n      \n\n```\ncurl -sS -F \"file=@after.png\" \"https://godrop.sh/upload?format=md\"\n![after.png](https://godrop.sh/f/20260817-132258-336ba87c.../after.png)\n```\n\n        Leave the parameter off and the answer is JSON instead, with the URL\n        at `.files[0].url` and the size and expiry beside it. Send\n        several parts named `file` and they come back one to a\n        line.\n      \n\n### Or just drop one here\n\n          or drop one here.\n\nCopied a screenshot? Just paste it.\n\nLimits\n\n|  | Without an account | With an account | Pro | \n|---|---|---|---|\n| Costs | nothing | nothing | **$5 a month** | \n| Kept for | 3 days | 30 days | as long as you keep it | \n| Largest file | 20 MB | 50 MB | 100 MB | \n| Storage | no quota | 5 GB | 100 GB | \n| Files per request | 20 | 20 | 20 | \n| Downloads | public and unlimited on every plan |  |  | \n| Delete a file | no | yes | yes | \n| See what you uploaded | no | yes | yes | \n\nOn a Mac\n\n## GoDrop Shot beta\n\n[Download for Mac](https://godrop.sh/download/GoDrop-Shot.zip)\n\n        GoDrop Shot lives in the menu bar. Press `⌘``⇧`` U`\n        and whatever is on your clipboard becomes a link, or right click a file in\n        Finder and choose Upload to GoDrop. No account needed; macOS 14 or later,\n        and it updates itself.\n      \n\nThe rest\n\n## Every other door\n\nThe service describes itself, so an agent that knows nothing but the hostname can work out the rest:\n\n```\ncurl https://godrop.sh/llms.txt      # the whole API in plain text\ncurl https://godrop.sh/openapi.yaml  # machine-readable schema\n```\n\n        There is a Model Context Protocol endpoint too, speaking revision\n        `2026-07-28`, with three tools: `upload_file`,\n        `delete_file` and `storage_stats`. It is for an\n        agent with no shell, because the bytes travel inside the call and are\n        spent out of its context:\n      \n\n```\nclaude mcp add --transport http godrop https://godrop.sh/mcp\n```\n\nA file can be told to go sooner than the default, which is worth doing for anything an agent produces on the way to something else:\n\n```\ncurl -F \"file=@build.log\" \"https://godrop.sh/upload?expires=30m\"\n```\n\n        Or as a header, `X-Expires-In: 30m`. Minutes, hours and days:\n        `45m`, `2h`, `7d`.", "url": "https://wpnews.pro/news/show-hn-github-has-no-api-to-put-an-image-in-a-pr-so-i-built-a-place-for-one", "canonical_source": "https://godrop.sh/", "published_at": "2026-09-29 13:32:50+00:00", "updated_at": "2026-09-29 13:48:03.470912+00:00", "lang": "en", "topics": ["ai-agents", "agent-protocols", "developer-tools", "ai-tools"], "entities": ["GoDrop", "GoDrop Shot", "GitHub", "Model Context Protocol", "Claude Code", "Cursor", "macOS 14"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/show-hn-github-has-no-api-to-put-an-image-in-a-pr-so-i-built-a-place-for-one", "markdown": "https://wpnews.pro/news/show-hn-github-has-no-api-to-put-an-image-in-a-pr-so-i-built-a-place-for-one.md", "text": "https://wpnews.pro/news/show-hn-github-has-no-api-to-put-an-image-in-a-pr-so-i-built-a-place-for-one.txt", "jsonld": "https://wpnews.pro/news/show-hn-github-has-no-api-to-put-an-image-in-a-pr-so-i-built-a-place-for-one.jsonld"}}