Floom Docs

Save once. Sync everywhere.

Everything you need to know about Floom skills, packs, the MCP, and the CLI — in one place. Five sections, ten minutes.

What is a skill?

A Floom skill is a folder. One markdown file (SKILL.md) plus optional examples, scripts, and reference assets. Versioned, portable, native to every supported agent.

The folder is the contract. Drop it into your agent's skills directory and the agent picks it up — no plugin install, no config, no rebuild. When you publish that folder to Floom, every other machine you've connected gets the same folder, automatically.

Why a folder, not a config file?

Skills carry context. A great PR-review skill might include three example diffs, a glossary of the team's conventions, and a script that runs the static analyzer. None of that fits in a single config field. The folder lets a skill grow without changing its interface.

How Floom organizes.

A library is a top-level container — one per project, usually. Inside it, folders group skills by category. Inside each folder, skills are self-contained packages with their own files.

LIBRARY FOLDER SKILL FILES Personal marketing brand-voice SKILL.md voice-samples/ tone-guide.md code pr-review

You can have multiple libraries — one per project is the typical pattern. Toggle each one active or inactive per machine. The MCP only exposes skills from active libraries to your agents. Inactive libraries are preserved but hidden from agents until you re-activate them.

Quick reference

  • Library — top-level container. One per project (Personal, Floom Team, Acme…). Active/inactive is per machine.
  • Folder — groups skills by category inside a library (marketing, code, research…).
  • Skill — a folder package: SKILL.md + optional assets. The unit of publishing and syncing.
  • Files — everything inside the skill folder: SKILL.md, references/, examples/, scripts/.

CLI: npx floom library list · npx floom library activate <name> · npx floom library deactivate <name>

SKILL.md anatomy.

Every skill has a SKILL.md at its root. Frontmatter declares what the skill needs; the body is the prompt the agent loads.

---
name: pr-review
description: Adversarial PR review with safety, performance, and pattern-sweep
version: 1.2.0
agents: [claude-code, codex, cursor]
connections: []
---

## When to invoke
Run on any non-trivial diff before merging. Two failure modes: missed
SQL injection in dynamic queries, and silent-import of new env vars
without updating .env.example.

## Process
1. Read the full diff with `git diff origin/main...HEAD`.
2. Grep for new `process.env.X` against .env.example.
3. ...

The body is plain markdown, no special syntax. The agent loads it as a system prompt when the skill is invoked.

Manifest fields.

Frontmatter at the top of SKILL.md. Only name and description are required.

FieldWhat it does
nameSlug used in URLs and CLI commands. Lowercase, dash-separated.
descriptionOne-line summary. Shown in library, /explore, and search.
versionSemver. Floom uses this to detect changes during sync.
agentsList of agents the skill supports. Empty = all.
connectionsOAuth integrations the skill needs (gmail, github, linear). Floom prompts to connect on first use.
tagsFree-form labels for filtering and discovery.
visibilityprivate (default), unlisted, or public.

The Floom MCP.

A lightweight MCP server that connects your library to any MCP-aware agent. Search, list, and load skills mid-conversation — no preload required.

Lightweight by design

The Floom MCP is a single Node binary. It talks to the Floom API over HTTPS, caches your library locally, and exposes a small set of tools to the host agent. Boots in under 200ms, idles at less than 30MB.

Tools the MCP exposes

  • search_skills(query) — semantic search across your library and the public registry. Returns matches with descriptions.
  • get_skill(slug) — load a skill's full SKILL.md into the conversation. Used when an agent decides mid-task to invoke a specific skill.
  • list_skills(filter?) — list all skills currently synced to this machine.
  • add_skill(url) — install a new skill from a Floom URL into the local library.

That's the whole surface. The agent decides when to search, when to load, when to invoke. You don't preload skills into the system prompt — the agent finds them as needed.

How sync works.

Your Floom library is the source of truth. Every machine you connect runs the MCP, which pulls the current state of your library on each cold start.

The flow

  • You run npx floom add <url> or click "Save to my floom" in the browser. The skill enters your library.
  • On every machine where you've authed, the MCP detects the new skill on next agent boot and writes it to the local skills directory.
  • When you publish a new version of a skill, every connected machine gets the new version on the next sync (within seconds).

Zero switching cost across agents

Use Cursor today. Switch to Claude Code tomorrow. Open Codex CLI on a different machine next week. Your library is the same — the agent just loads the skills it supports. There is nothing to re-setup.

CLI reference.

Three commands cover the full loop. No global install — always npx floom.

# Scaffold a new skill folder in ./skills/<name>/
$ npx floom init <name>

# Publish a local skill folder to your Floom library
# Returns a share URL like floom.dev/s/abc123
$ npx floom publish ./skills/pr-review

# Install a skill from any Floom URL
$ npx floom add floom.dev/s/abc123

# Force a sync from your library to this machine
$ npx floom sync

# Check what's installed
$ npx floom list

The CLI is for publishers and power users. Receivers can install skills entirely through the browser — visit a /s/ URL, click "Save to my floom", done.

Packs & sharing.

A pack is a curated bundle of skills with a single install URL. Eight skills, one command.

Packs solve the "where do I start" problem. Instead of telling someone "install pr-review, then ship, then qa-loop," you send one URL: floom.dev/p/gstack. Click. Eight skills synced.

Anyone can publish

Pick the skills you use together. Run npx floom pack create. Get a share URL. Drop it in Slack, post it to HN, tweet it. The pack carries its own narrative — your name, your tagline, your curation.

Supported agents.

Floom is native on Claude Code and Codex CLI. Every other agent that speaks MCP is supported via the Floom MCP server.

AgentIntegration
Claude CodeNative. Skills land in ~/.claude/skills/.
Codex CLINative. Skills land in ~/.codex/skills/.
CursorVia Floom MCP. Add the server to .cursor/mcp.json.
KimiVia Floom MCP.
GeminiVia Floom MCP.
OpenCodeVia Floom MCP.

New agents are added as their MCP support lands. If your agent speaks MCP, Floom works.