fatline

Claude Code Skill

AI-powered assistance for working with fatline in Claude Code

fatline provides a Claude Code skill that gives Claude expert knowledge of the library's APIs, patterns, and best practices.

What is a Claude Skill?

Claude Code skills are modular packages that extend Claude's capabilities with specialized knowledge. The fatline skill teaches Claude:

  • All fatline APIs (serialize, deserialize, createCodec from fatline/codec, etc.)
  • Framework integration patterns (tRPC, oRPC, Hono)
  • Custom type registration
  • Wire format internals for debugging
  • Streaming with NDJSON
  • Error handling patterns

Installation

Download the skill and add it to your Claude Code skills directory:

# Download to Claude Code skills directory
curl -L https://fatline.space/fatline.skill -o ~/.claude/skills/fatline.skill

# Or download manually and move it

mv ~/Downloads/fatline.skill ~/.claude/skills/
# Download to Claude Code skills directory
Invoke-WebRequest -Uri "https://fatline.space/fatline.skill" -OutFile "$env:USERPROFILE\.claude\skills\fatline.skill"

Download fatline.skill

Usage

Once installed, Claude will automatically use the skill when you're working with fatline. You can also explicitly invoke it:

Hey Claude, help me set up fatline with tRPC
How do I register a custom type for Decimal.js?
Why is my Date being serialized as a number instead of ISO string?

What's Included

The skill contains:

FilePurpose
SKILL.mdCore patterns and quick reference
references/api.mdComplete API documentation
references/frameworks.mdtRPC, oRPC, Hono integration
references/wire-format.mdWire format internals

Skill Contents Preview

Here's what the skill teaches Claude:

Core Patterns

import { serialize, deserialize } from "fatline";
import { createCodec } from "fatline/codec";
import { z } from "zod";

// Basic serialization
const json = serialize({ date: new Date(), set: new Set([1, 2]) });
const data = deserialize(json);

// Schema-aware codec
const UserCodec = createCodec(
  z.object({
    id: z.string(),
    createdAt: z.date(),
  })
);

Custom Types

import { registerType } from "fatline";
import Decimal from "decimal.js";

registerType({
  name: "Decimal",
  test: (v): v is Decimal => v instanceof Decimal,
  encode: (v) => v.toString(),
  decode: (v) => new Decimal(v),
});

Framework Integration

// tRPC
import { transformer } from "fatline/trpc";
const t = initTRPC.create({ transformer });

// Hono
import { fatlineMiddleware } from "fatline/hono";
app.use("*", fatlineMiddleware());

Next Steps

On this page