Skill file and llms.txt
Three files describe Galley to software rather than to people. Each answers a different question.
| File | Question it answers | Size |
|---|---|---|
skill.md | How do I use this product, end to end? | One page |
llms.txt | What is here and where do I go next? | A map |
openapi.json | What is the exact REST contract? | A full spec |
skill.md
Section titled “skill.md”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.mdhttps://galleyrender.com/skill.mdcurl -sS https://galleyrender.com/skill.md | head -40The frontmatter
Section titled “The frontmatter”---name: galley-renderdescription: 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.
Install it as a Claude skill
Section titled “Install it as a Claude skill”A skill is a directory with a SKILL.md in it. Drop the file in and restart.
mkdir -p .claude/skills/galley-rendercurl -sS https://mcp.galleyrender.com/skill.md -o .claude/skills/galley-render/SKILL.mdmkdir -p ~/.claude/skills/galley-rendercurl -sS https://mcp.galleyrender.com/skill.md -o ~/.claude/skills/galley-render/SKILL.mdThe 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.
Keeping it current
Section titled “Keeping it current”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.
llms.txt
Section titled “llms.txt”https://galleyrender.com/llms.txtllms.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.
# 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.
openapi.json
Section titled “openapi.json”https://api.galleyrender.com/openapi.jsonThe 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.
curl -sS https://api.galleyrender.com/openapi.json | jq -r '.paths | keys[]'npx openapi-typescript https://api.galleyrender.com/openapi.json -o src/galley.d.tsThe 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.
Which to reach for
Section titled “Which to reach for”| Situation | Use |
|---|---|
| An agent inside Claude Code, Cursor or an SDK, with MCP available | The MCP server, plus skill.md as a skill |
| An agent with no MCP support, but a tool that can make HTTP calls | skill.md in the system prompt, openapi.json for the exact shapes |
| Generating a client library | openapi.json |
| Pointing a crawler or research agent at the product | llms.txt |
| A person reading | These docs, starting at the quickstart |