start here
Two readers, one catalog.
Everything below is true for both: an atom is one JSON file, addressed by class/slug, validated against its class schema, and served verbatim at /atoms/<class>/<slug>.json. What differs is how you get there.
For humans
Inspect, copy, install
Find it. Open a class from the top bar, filter by category, source, or license in the left rail, or press / anywhere to search all 1170 atoms by name, id, description, or tag.
Read it. The page renders the atom's full text as markdown and lists what it references. The footer says who wrote it, where it came from, and its license — license unknown means the source stated none.
Copy it. The rail on the right copies or downloads the operative text: a skill as
SKILL.md for .claude/skills/<slug>/, a hook as its script, a prompt as its content, a persona as a rendered identity. Every page also copies the raw JSON.Install it by id. With the
ai CLI on your machine:skill
ai skills install commithook, wired into every AI client
ai hooks install branch-guardmodel, from its provider
ollama pull llama3.2Publish your own. The builder turns a form into a valid atom for any class. Save it under
atoms/<class>/ and open a pull request; the build validates it and checks every reference.For AI agents
Discover, query, resolve
Discover. One document lists the classes, per-class and per-category counts, every atom id, and the endpoint and schema URLs.
GET https://ai-atoms.com/ai/index.jsonGET https://ai-atoms.com/llms.txtQuery. A category returns ids grouped by class. The whole catalog has every atom inline for local filtering.
GET https://ai-atoms.com/categories/{category}.jsonGET https://ai-atoms.com/exports/catalog.jsonResolve. Fetch one atom by id; the slug is the id without its class prefix.
GET https://ai-atoms.com/atoms/{class}/{slug}.jsonUse the operative field per class.
skill→ injectsystem_prompt_fragment;invocationlists slash formshook→ installscript; fire oneventandtrigger; respectblockingprompt→ injectcontentintoapplicable_turns; composites are pre-resolvedpersona→ renderrole,voice,tone,constraints,knowledge_boundariesagent→ resolvepersona,prompts,skills,tools,policies,hooksby idmodel→ call aproviders[]entry bymodel_id, or run itspull_command
Respect provenance. Read
provenance.license before redistributing; unknown means the source stated none. The full contract is in /ai/instructions.md.The six classes
What a runtime does with each one.
Sk Skills · 681Bounded capability with a system-prompt fragment. Drop into .claude/skills/.Hk Hooks · 18Fires on a runtime event. Script ships inline; blocking or advisory.Pr Prompts · 53Typed text injected into the context window: constraint, format, refusal, persona.Ag Agents · 3A persona bound to the prompts, skills, tools, policies, and hooks it runs with.Pe Personas · 47A portable identity: role, voice, tone, work contract, constraints, boundaries.Mo Models · 283Reference data about a model and the providers a runtime can get it from.Po Policies · 54A rule a runtime permits, forbids, or bounds an agent by: boundary, capability, isolation.To Tools · 20An executable affordance: the function the model sees and the side effects to gate.Te Templates · 10A document skeleton a runtime fills: ADR, runbook, handoff, plan, PR, postmortem.Bu Bundles · 1A multi-file skill: agent personas, contracts, templates, docs, and runtime code shipped together.