ActivityPub Viewer

A small tool to view real-world ActivityPub objects as JSON! Enter a URL or username from Mastodon or a similar service below, and we'll send a request with the right Accept header to the server to view the underlying object.

Open in browser →
{ "@context": [ "https://www.w3.org/ns/activitystreams", { "ostatus": "http://ostatus.org#", "atomUri": "ostatus:atomUri", "inReplyToAtomUri": "ostatus:inReplyToAtomUri", "conversation": "ostatus:conversation", "sensitive": "as:sensitive", "toot": "http://joinmastodon.org/ns#", "votersCount": "toot:votersCount", "blurhash": "toot:blurhash", "focalPoint": { "@container": "@list", "@id": "toot:focalPoint" }, "Hashtag": "as:Hashtag" } ], "id": "https://mastodon.bsd.cafe/users/zirias/statuses/114383112910490053", "type": "Note", "summary": null, "inReplyTo": null, "published": "2025-04-22T18:49:52Z", "url": "https://mastodon.bsd.cafe/@zirias/114383112910490053", "attributedTo": "https://mastodon.bsd.cafe/users/zirias", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://mastodon.bsd.cafe/users/zirias/followers" ], "sensitive": false, "atomUri": "https://mastodon.bsd.cafe/users/zirias/statuses/114383112910490053", "inReplyToAtomUri": null, "conversation": "tag:bsd.cafe,2025-04-22:objectId=16068469:objectType=Conversation", "content": "<p>I figured <a href=\"https://mastodon.bsd.cafe/tags/swad\" class=\"mention hashtag\" rel=\"tag\">#<span>swad</span></a>&#39;s password file management tool (swadpw) should really *ensure* that when reading a password from the <a href=\"https://mastodon.bsd.cafe/tags/terminal\" class=\"mention hashtag\" rel=\"tag\">#<span>terminal</span></a>, prompts are printed to exactly that terminal.</p><p>Well, I already check whether standard input *is* a terminal. In that case, I assume it *should* be writable. It certainly *is* writable on <a href=\"https://mastodon.bsd.cafe/tags/FreeBSD\" class=\"mention hashtag\" rel=\"tag\">#<span>FreeBSD</span></a> and <a href=\"https://mastodon.bsd.cafe/tags/Linux\" class=\"mention hashtag\" rel=\"tag\">#<span>Linux</span></a>. But I can&#39;t find any guarantee looking at <a href=\"https://mastodon.bsd.cafe/tags/POSIX\" class=\"mention hashtag\" rel=\"tag\">#<span>POSIX</span></a> specs 🤔.</p><p>Ok, so I wrote a weirdo function to provide fallbacks. 🤪 Is this taking it too far? And how would I ever test these fallbacks? 🙈 </p><p><a href=\"https://mastodon.bsd.cafe/tags/C\" class=\"mention hashtag\" rel=\"tag\">#<span>C</span></a> <a href=\"https://mastodon.bsd.cafe/tags/coding\" class=\"mention hashtag\" rel=\"tag\">#<span>coding</span></a></p>", "contentMap": { "en": "<p>I figured <a href=\"https://mastodon.bsd.cafe/tags/swad\" class=\"mention hashtag\" rel=\"tag\">#<span>swad</span></a>&#39;s password file management tool (swadpw) should really *ensure* that when reading a password from the <a href=\"https://mastodon.bsd.cafe/tags/terminal\" class=\"mention hashtag\" rel=\"tag\">#<span>terminal</span></a>, prompts are printed to exactly that terminal.</p><p>Well, I already check whether standard input *is* a terminal. In that case, I assume it *should* be writable. It certainly *is* writable on <a href=\"https://mastodon.bsd.cafe/tags/FreeBSD\" class=\"mention hashtag\" rel=\"tag\">#<span>FreeBSD</span></a> and <a href=\"https://mastodon.bsd.cafe/tags/Linux\" class=\"mention hashtag\" rel=\"tag\">#<span>Linux</span></a>. But I can&#39;t find any guarantee looking at <a href=\"https://mastodon.bsd.cafe/tags/POSIX\" class=\"mention hashtag\" rel=\"tag\">#<span>POSIX</span></a> specs 🤔.</p><p>Ok, so I wrote a weirdo function to provide fallbacks. 🤪 Is this taking it too far? And how would I ever test these fallbacks? 🙈 </p><p><a href=\"https://mastodon.bsd.cafe/tags/C\" class=\"mention hashtag\" rel=\"tag\">#<span>C</span></a> <a href=\"https://mastodon.bsd.cafe/tags/coding\" class=\"mention hashtag\" rel=\"tag\">#<span>coding</span></a></p>" }, "attachment": [ { "type": "Document", "mediaType": "image/png", "url": "https://media.bsd.cafe/bsdmmedia01/media_attachments/files/114/383/108/476/568/491/original/62e19cb9a1722e86.png", "name": "A function to write a prompt to a terminal connected to stdin, first trying stdin directly, then a new fd opened from the ttyname stdin points to and finally stderr IF this is a terminal as well ...", "blurhash": "U02Yw??IVqRN%NxvV@RPniadozt8n~V@fltR", "focalPoint": [ 0, 0 ], "width": 522, "height": 568 } ], "tag": [ { "type": "Hashtag", "href": "https://mastodon.bsd.cafe/tags/swad", "name": "#swad" }, { "type": "Hashtag", "href": "https://mastodon.bsd.cafe/tags/terminal", "name": "#terminal" }, { "type": "Hashtag", "href": "https://mastodon.bsd.cafe/tags/freebsd", "name": "#freebsd" }, { "type": "Hashtag", "href": "https://mastodon.bsd.cafe/tags/linux", "name": "#linux" }, { "type": "Hashtag", "href": "https://mastodon.bsd.cafe/tags/posix", "name": "#posix" }, { "type": "Hashtag", "href": "https://mastodon.bsd.cafe/tags/c", "name": "#c" }, { "type": "Hashtag", "href": "https://mastodon.bsd.cafe/tags/coding", "name": "#coding" } ], "replies": { "id": "https://mastodon.bsd.cafe/users/zirias/statuses/114383112910490053/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://mastodon.bsd.cafe/users/zirias/statuses/114383112910490053/replies?only_other_accounts=true&page=true", "partOf": "https://mastodon.bsd.cafe/users/zirias/statuses/114383112910490053/replies", "items": [] } }, "likes": { "id": "https://mastodon.bsd.cafe/users/zirias/statuses/114383112910490053/likes", "type": "Collection", "totalItems": 1 }, "shares": { "id": "https://mastodon.bsd.cafe/users/zirias/statuses/114383112910490053/shares", "type": "Collection", "totalItems": 2 } }