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,createCodecfromfatline/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 tRPCHow 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:
| File | Purpose |
|---|---|
SKILL.md | Core patterns and quick reference |
references/api.md | Complete API documentation |
references/frameworks.md | tRPC, oRPC, Hono integration |
references/wire-format.md | Wire 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());