Skip to content

Skill file and llms.txt

Three files describe Galley to software rather than to people. Each answers a different question.

FileQuestion it answersSize
skill.mdHow do I use this product, end to end?One page
llms.txtWhat is here and where do I go next?A map
openapi.jsonWhat is the exact REST contract?A full spec

The whole product on one page, written to be read by a model: the tool sequence, the render call and its response, formats and cost, the options list, how to write a template, the two extra Liquid filters, engines, versioning, the complete error table, how to get a key, and a set of rules of thumb. It is what you give an agent that is going to write templates, not just fill in an existing one.

It is served from both hosts, identically:

https://mcp.galleyrender.com/skill.md
https://galleyrender.com/skill.md
Terminal window
curl -sS https://galleyrender.com/skill.md | head -40
skill.md
---
name: galley-render
description: Render PDFs, PNGs and JPGs from a template plus a JSON payload, and get back a signed URL. Use when a task needs a real document or image file — an invoice, quote, receipt, certificate, report, shipping label, OG card, social card, ticket or badge — rather than text or HTML. Works with no API key for the first 50 renders.
license: Proprietary. See https://galleyrender.com/terms
---

The description is the part that matters at runtime: it is what a model reads when deciding whether this skill is relevant to the task in front of it. It names the artefact types on purpose — “invoice”, “certificate”, “shipping label”, “OG card” — because that is the vocabulary a request arrives in.

A skill is a directory with a SKILL.md in it. Drop the file in and restart.

This project only
mkdir -p .claude/skills/galley-render
curl -sS https://mcp.galleyrender.com/skill.md -o .claude/skills/galley-render/SKILL.md
Every project
mkdir -p ~/.claude/skills/galley-render
curl -sS https://mcp.galleyrender.com/skill.md -o ~/.claude/skills/galley-render/SKILL.md

The frontmatter is already in the shape a skill needs, so there is nothing to edit. Restart Claude Code and /skills lists galley-render.

The same file works anywhere a system prompt or a context file goes: AGENTS.md, a Cursor rule file, a custom GPT’s instructions, or a system block in your own agent. It is plain Markdown with no client-specific syntax.

The file is served from the running MCP deployment, so it tracks what is actually live. If you have vendored a copy into a repository, re-fetch it when you next touch that code — curl to the same path overwrites in place.

https://galleyrender.com/llms.txt

llms.txt is a convention: a short Markdown file at a known path that tells a model what a site contains and where to go, so it does not have to crawl and guess. Galley’s is a map, not a manual.

llms.txt, abridged
# Galley Render
> Documents for agents. JSON in, PDF out. A template plus a JSON payload becomes a PDF, PNG or
> JPG behind a signed URL. …
## Start here
- [MCP endpoint](https://mcp.galleyrender.com/mcp): streamable HTTP. Ten tools: …
- [Skill file](https://mcp.galleyrender.com/skill.md): the whole product in one page, written
for an agent. Start here if you are reading this to decide how to use Galley.
- [OpenAPI](https://api.galleyrender.com/openapi.json): the REST surface.
- [Quickstart](https://galleyrender.com/docs/quickstart): curl, Node and Python in under a minute.

It goes on to list the API endpoints, the template pages, the error types, and the optional material — pricing, caching, webhooks, SDKs, security. Every entry is one line: a link and what you get by following it.

Use it as the entry point when you are pointing a research agent, a crawler or a documentation tool at Galley. Use skill.md when you are pointing an agent that has a job to do.

https://api.galleyrender.com/openapi.json

The REST surface as a machine-readable spec: every path, every request and response schema, every error body. Use it to generate a typed client, to drive an HTTP-tool agent that does not speak MCP, or to check a field name without reading prose.

What endpoints exist
curl -sS https://api.galleyrender.com/openapi.json | jq -r '.paths | keys[]'
Generate a typed TypeScript client
npx openapi-typescript https://api.galleyrender.com/openapi.json -o src/galley.d.ts

The MCP tool schemas and the OpenAPI document describe the same operations with the same field names — template, data, format, options, webhook_url — so a payload assembled against one is valid against the other.

SituationUse
An agent inside Claude Code, Cursor or an SDK, with MCP availableThe MCP server, plus skill.md as a skill
An agent with no MCP support, but a tool that can make HTTP callsskill.md in the system prompt, openapi.json for the exact shapes
Generating a client libraryopenapi.json
Pointing a crawler or research agent at the productllms.txt
A person readingThese docs, starting at the quickstart