You peek at what federation is doing from right where you sit. fedify init stakes out a new island, fedify lookup shows you the insides of someone else's actor, and pair fedify inbox with tunnel and real letters from Mastodon land in the inbox of your own laptop.
The debugger is a picture frame. It wraps a running Federation in a proxy and shows you the documents passing back and forth in real time. Just being able to see what arrived and what you sent back makes federated development a lot less frightening.
Highlights
- Subcommands are bundled in commands.ts via the defineCommand()/CommandMetadata types.
- The CLI even has KvStore shims split by bun/node (kv.bun.ts / kv.node.ts) and its own docloader.ts.
- debugger is a newcomer since 2.0.0. It doesn't disturb what it wraps; it makes only the area under a given path its own kitchen.
A passage from the sutra
import { benchMetadata, benchOptions } from "./bench/command.ts";
import { inboxMetadata, inboxOptions } from "./inbox/command.ts";
import { lookupMetadata, lookupOptions } from "./lookup/command.ts";
import { nodeInfoMetadata, nodeInfoOptions, runNodeInfo } from "./nodeinfo.ts";
import type { GlobalOptions } from "./options.ts";
import { relayMetadata, relayOptions } from "./relay/command.ts";
import { runTunnel, tunnelMetadata, tunnelOptions } from "./tunnel.ts";
import { webFingerMetadata, webFingerOptions } from "./webfinger/command.ts";