Vibefed kb-misskey

install
source · Clone the upstream repo
git clone https://github.com/reiver/vibefed
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/reiver/vibefed "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/kb-misskey" ~/.claude/skills/reiver-vibefed-kb-misskey && rm -rf "$T"
manifest: skills/kb-misskey/SKILL.md
source content

Misskey — Complete Reference

Overview

Misskey is a free, open-source, decentralized microblogging platform — a feature-rich Japanese-origin Fediverse platform that predates many others. Created by syuilo (Eiji Shinoda) in 2014 as a BBS-style forum, it adopted ActivityPub in 2018. The name comes from the song "Brain Diver" by the band May'n. Licensed AGPL-3.0.

Misskey is explicitly not a Mastodon fork — it is "a project completely different from Mastodon or other alike projects." Its cultural DNA reflects Japanese social media preferences: emoji reactions as the primary engagement mechanism (not simple likes), rich visual formatting (MFM), integrated file management (Drive), and playful features like

isCat
mode and the mascot Ai (藍). Community members are called "Misskists."

As of late 2024: ~918,550 registered accounts, ~25,782 active users, 1,096+ instances. The flagship instance misskey.io is reportedly the second largest instance in the entire Fediverse. MisskeyHQ exists as a company entity, funded by donations and software licensing.


1. Technology Stack

ComponentTechnology
BackendNode.js with TypeScript
FrameworkNestJS (dependency injection)
DatabasePostgreSQL (TypeORM)
Cache / QueueRedis (ioredis) / BullMQ
FrontendVue.js 3 (Composition API, TypeScript)
Build toolVite
LicenseAGPL-3.0

Resource Footprint

Small instances: ~848 MB RAM with CPU bursts. A $10/month VPS suffices for small communities; $20/month for 15–50 users.

Repository

https://github.com/misskey-dev/misskey


2. ActivityPub Extensions

Misskey uses the JSON-LD namespace

https://misskey-hub.net/ns#
(prefix
misskey
). This is the most extensive set of custom ActivityPub extensions in the Fediverse ecosystem.

Extension Reference

PropertyOnDescription
_misskey_content
NoteDeprecated. MFM source text (equivalent to
source
property)
_misskey_summary
ActorActor summary in MFM format
_misskey_quote
NoteID of quoted note. Compatible with
fedibird:quoteUri
and
as:quoteUrl
_misskey_reaction
LikeEmoji reaction type. Unicode emoji or
:name:
custom emoji string
_misskey_votes
Question optionVote count (equivalent to
replies.totalItems
)
_misskey_talk
NoteBoolean
true
marks note as a chat message
isCat
ActorBoolean — actor identifies as a cat (triggers visual effects)
_misskey_followedMessage
ActorCustom message on follow notification (since 2024.9.0-alpha.11)
_misskey_requireSigninToViewContents
ActorForbids display to non-signed-in viewers
_misskey_makeNotesFollowersOnlyBefore
ActorRestricts past notes to followers only. Value: Unix epoch ms (negative = relative)
_misskey_makeNotesHiddenBefore
ActorHides past notes from all except author. Same value format
_misskey_license
EmojiLicense metadata. Properties:
freeText
(string or null)

Emoji Reactions Wire Format

Misskey's emoji reactions are the most significant interoperability concern. When a user reacts with an emoji, Misskey sends a

Like
activity with
_misskey_reaction
set to the emoji:

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://w3id.org/security/v1",
    {
      "misskey": "https://misskey-hub.net/ns#",
      "_misskey_reaction": "misskey:_misskey_reaction"
    }
  ],
  "type": "Like",
  "id": "https://misskey.example/likes/abc123",
  "actor": "https://misskey.example/users/alice",
  "object": "https://remote.example/notes/xyz",
  "_misskey_reaction": "👍",
  "content": "👍"
}

For custom emoji reactions:

{
  "type": "Like",
  "_misskey_reaction": ":blobcat:",
  "content": ":blobcat:",
  "tag": [
    {
      "type": "Emoji",
      "id": "https://misskey.example/emojis/blobcat",
      "name": ":blobcat:",
      "icon": {
        "type": "Image",
        "url": "https://misskey.example/files/blobcat.png"
      }
    }
  ]
}

Interoperability: Platforms that do not understand

_misskey_reaction
will treat these as standard
Like
activities (favourites). Custom emoji reactions are only visible to other Misskey-family software. The
content
field is also set to the reaction value as a fallback.

Quote Posts Wire Format

{
  "type": "Note",
  "id": "https://misskey.example/notes/abc123",
  "content": "<p>My thoughts on this</p>",
  "_misskey_quote": "https://remote.example/notes/original",
  "quoteUrl": "https://remote.example/notes/original"
}

Both

_misskey_quote
and
quoteUrl
are set for compatibility. Also recognized:
https://fedibird.com/ns#quoteUri
.


3. MFM (Misskey Flavored Markdown)

Proprietary markup language usable in notes, content warnings, usernames, and bios. General syntax:

$[name.attribute1,attribute2=value content]

Text Formatting

  • Bold:
    **text**
  • Small:
    <small>text</small>
  • Center:
    <center>text</center>
  • Quotes:
    > text
  • Ruby:
    $[ruby text reading]
  • Links:
    [label](url)
  • Code: backticks (inline), triple backticks with language (blocks, 200+ languages via Shiki)

Visual Effects

SyntaxEffect
$[flip text]
Horizontal/vertical flip
$[font.serif text]
Font change (serif, monospace, cursive, fantasy)
$[blur text]
Blur until hover
$[fg.color=hex text]
Foreground color
$[bg.color=hex text]
Background color
$[border.style=solid,width=4 text]
Border (solid, dotted, dashed, double, groove, ridge, inset, outset)
$[position.x=0.8,y=0.5 text]
Position shifting
$[rotate.deg=30 text]
Rotation
$[scale.x=4,y=2 text]
Scaling (also
$[x2]
,
$[x3]
,
$[x4]
)

Animations

SyntaxEffect
$[jelly text]
Jiggles
$[tada text]
Celebration
$[jump text]
Bouncing
$[bounce text]
Elasticity
$[spin text]
Rotation (modifiers:
.left
,
.alternate
,
.x
,
.y
)
$[shake text]
Vibration
$[twitch text]
Random twitching
$[rainbow text]
Color cycling
$[sparkle text]
Shimmer

All animations support

.speed=5s
for timing control.

Federation note: MFM is rendered as HTML when federating via ActivityPub. The

_misskey_content
(deprecated) and
source
properties carry the original MFM source. Non-Misskey platforms see plain HTML with animations and effects stripped.


4. Note System

Visibility Levels

LevelDescription
public
Visible to everyone, appears on all timelines
home
Visible to everyone but only appears on home timeline
followers
Only visible to followers
specified
Only visible to specified users (direct message)

Features

  • Content Warning (CW):
    summary
    field hides content behind a toggle
  • Renote: Boost/reblog (Announce activity)
  • Quote Renote: Boost with added commentary (
    _misskey_quote
    )
  • Polls:
    Question
    activity type with
    _misskey_votes
    for counts
  • Reactions: Full emoji reactions (see Section 2)
  • Mentions: @-mentions across the Fediverse
  • Hashtags: Standard
    Hashtag
    tag type

Timelines

TimelineContent
HomeNotes from followed users
LocalAll public notes from the instance
Social (Hybrid)Home + Local combined
GlobalAll known public notes including remote

5. Unique Features

Drive

Cloud storage system for managing uploaded files. Files can be organized into folders and reused across multiple notes without re-uploading. Each file retains metadata (type, size, hash). Drive capacity is configurable per-user by instance administrators via role policies.

Antennas

Customizable filtered feeds that collect notes matching set conditions (keywords, users, file attachments) in real time. Essentially continuous background searches. Antennas exclude the user's own posts.

Deck UI

Multi-column layout with side-by-side views for an information-dense interface. Users can arrange timeline columns, notification panels, and other widgets freely.

Channels

Topic-based note collections within an instance. Similar to forums or discussion threads organized by subject.

Pages

Static page creation system using MFM and custom emoji, enabling users to build content beyond notes.

Other Features

  • Clips — public/private categorized bookmarks
  • Plugins — extend web client functionality via AiScript
  • Themes — full client appearance customization
  • Widgets — small interactive dashboard displays
  • Webhooks — external service integration
  • Word mute / Thread mute — content filtering
  • Charts — server data visualization
  • Online status — activity indicators on profile icons
  • Share form — at
    /share
    path for social sharing buttons
  • Safe mode — disables custom CSS, plugins, themes
  • Embeds — embed notes and timelines on external websites
  • isCat
    mode
    — users identify as cats with visual effects in supporting clients

6. API

REST API

All endpoints use HTTP POST (not GET for reads):

POST /api/notes/create
POST /api/notes/show
POST /api/users/show
POST /api/following/create

Authentication via access tokens. SDK:

misskey-js
(TypeScript).

Streaming API

WebSocket-based with channel multiplexing:

{
  "type": "connect",
  "body": {
    "channel": "homeTimeline",
    "id": "arbitrary-unique-id"
  }
}

Available channels:

globalTimeline
,
homeTimeline
,
hybridTimeline
,
localTimeline
,
main
.

Multiple channels can be multiplexed on a single WebSocket connection using different IDs.


7. Fork Ecosystem

Misskey has the most extensive fork tree in the Fediverse. All forks federate with each other and the broader Fediverse.

Active Forks

ForkTypeKey Differentiators
SharkeySoft fork (tracks upstream)Federated note editing with history, Mastodon-compatible API + OAuth2, multi-platform import (Mastodon/Pleroma/Firefish/Twitter/Instagram/Facebook), GDPR data export, "Bubble" timeline, Argon2 hashing, multiple translation services
CherrypickSoft forkCompatible with Misskey client ecosystem
Meiskeyv11 forkBased on older Misskey v11

Discontinued / EOL Forks

ForkStatusNotes
Firefish (was Calckey)Discontinued 2024Added recommended timeline, account migration, mobile-optimized UI. Lead developer became absent
IceshrimpTransitioningJS version: security patches only. Iceshrimp.NET: complete C# rewrite (beta), Mastodon API support
FoundKeyEnd of LifeHard fork of v12, goal was removing bloat
CatodonDiscontinued Nov 2025Community-driven fork of Iceshrimp, created in reaction to Firefish governance failures

Fork Relationship

Misskey (syuilo, 2014–)
├── Sharkey (soft fork, ACTIVE)
├── Cherrypick (soft fork, ACTIVE)
├── Meiskey (v11 fork, ACTIVE)
├── FoundKey (v12 hard fork, EOL)
└── Calckey (2022) → Firefish (2023, DISCONTINUED)
    ├── Iceshrimp → Iceshrimp.NET (C# rewrite)
    └── Catodon (DISCONTINUED)

Pattern: Forks emerge from (a) feature gaps upstream won't fill, (b) governance/communication issues, or (c) architectural changes (Iceshrimp.NET's language rewrite).


8. Misskey vs Mastodon

AspectMisskeyMastodon
OriginJapan (2014)Germany (2016)
Character limitConfigurable per instance500 default
ReactionsFull emoji reactions (custom + Unicode)Favourites only
File managementBuilt-in DriveNo persistent storage
MarkupMFM (animations, colors, effects)Limited Markdown
ChannelsTopic-based communitiesNo
AntennasCustom filtered feedsNo equivalent
Resource usageLighter than MastodonHeavier
Mobile appsLimited (PWA, third-party)Official iOS/Android + many third-party
Post editingNot in core (Sharkey has it)Supported
User base~918k (mostly Japanese)~7.6M total

9. Interoperability Notes for Implementers

  1. Emoji reactions arrive as

    Like
    activities — check for
    _misskey_reaction
    to distinguish a specific emoji reaction from a generic favourite. If absent, treat as a standard Like. The
    content
    field also contains the reaction value.

  2. Custom emoji in reactions — when

    _misskey_reaction
    contains a
    :name:
    string, the
    tag
    array includes an
    Emoji
    object with the image URL. Display the custom emoji image if available, fall back to treating it as a Like.

  3. Quote posts — Misskey sends

    _misskey_quote
    and
    quoteUrl
    on Note objects. Also check for
    fedibird:quoteUri
    (Fedibird/Mastodon compatibility). Display as an embedded quote if your platform supports it.

  4. MFM content — notes from Misskey contain HTML in

    content
    (with MFM effects stripped) and optionally MFM source in the
    source
    property. Use the HTML for display; the MFM source is only useful if you want to re-render with a MFM parser (library:
    mfm-js
    ).

  5. isCat
    property on actors — a boolean extension. Misskey-family clients show cat ears and modify text display for cat-mode users. Safe to ignore but do not strip when forwarding actor documents.

  6. Chat messages — notes with

    _misskey_talk: true
    are Misskey chat messages. They federate as normal Notes to non-Misskey platforms. Display as regular posts if your platform has no chat feature.

  7. All API endpoints use POST — unlike Mastodon's REST conventions, Misskey uses POST for everything including reads. If implementing a Misskey-compatible API, every endpoint must accept POST.

  8. Visibility level "home" — Misskey has a fourth visibility level (

    home
    ) where notes are visible to everyone but excluded from the local and global timelines. This maps to ActivityPub
    to: followers, cc: Public
    (the inverse of Mastodon's "unlisted"). Handle carefully when federating.

  9. Poll vote counts — Misskey includes

    _misskey_votes
    on poll options. This is equivalent to
    replies.totalItems
    but may be more reliably present. Prefer
    _misskey_votes
    when available.

  10. Note content restrictions — the

    _misskey_makeNotesFollowersOnlyBefore
    and
    _misskey_makeNotesHiddenBefore
    properties on actors signal that historical content has access restrictions. Respect these when fetching older notes from Misskey actors.


10. Known Considerations

  • No post editing in core Misskey — users must delete and redraft. The Sharkey fork adds federated note editing with version history.
  • Cannot follow hashtags — use Antennas (keyword-filtered feeds) instead.
  • No official mobile apps — third-party options include SocialHub (iOS) and Milktea (Android). The web client supports PWA.
  • Antennas exclude personal posts from their results.
  • Mute functionality gaps regarding mentions.
  • No MRF equivalent for regex-based content filtering (unlike Pleroma/Akkoma).
  • November 2025 announcement about potentially replacing ActivityPub with "Misskey's own low-overhead federation system" — details unclear, impact on interoperability unknown.
  • Geographic registration restrictions on misskey.io — initially blocked Europeans (GDPR concerns), later restricted to Japanese users, Korea allowed since February 2026.
  • Recent security fixes — CVE-2026-28431, CVE-2026-28432, CVE-2026-28433 patched in version 2026.3.1.