Docs

What phatstacks is, how logging in works, and the words it uses.

Getting started

What phatstacks is

The tools a builder ships with, as a page you can share and a command your coding agent can run.

A stack is a named bundle of tools: the framework, database, hosting and auth, plus the agent tooling, like skills and MCP servers. Each tool has a one-line note on why it's there.

Anyone can read a stack and use it without an account. Creating, saving and forking ask you to log in.

Logging in

Log in with GitHub or X. The first time makes your account and a handle, which is your profile's address, like /colin. You can change it in Settings.

Using a stack

One command sets up a project from any stack. It writes AGENTS.md, which Codex, Cursor, Copilot and most coding agents read, and a short CLAUDE.md that points Claude Code at it, then lists the setup commands in order. Files that already exist are kept; --force replaces them.

$ npx phatstacks@0 use @colin/saas-starter

No saved stack? Name the tools instead, and nothing has to be saved or named. The files say where to save them as a stack later.

$ npx phatstacks@0 use nextjs supabase stripe

Building one on Create? Copy there keeps all of it, your notes, add-ons, house rules and skills, as a temporary stack at a ref like @draft/x7k2m9, with no log-in and nothing to publish. It's unlisted, anyone with the command can read it, and it's gone after 30 days. Publish gives the stack a page, your handle and versions.

Add --install and it runs the setup commands too, in order, after you say yes, stopping at the first that fails; a command that makes a project folder is followed into it. An agent passes --yes once you've said yes to it, since it has no terminal to answer on. Commands that change things outside the project, a global install or an MCP server added to Claude Code, are listed for you to run; --allow-global runs them too.

A stack whose tools don't go together (two frameworks, say) is refused, one line per issue. npx phatstacks@0 init reads a folder and says which tools it's built with, as a use command and a link to save them as a stack.

Add-ons

A tool's extras, picked per stack, so a new project doesn't mean setting up the same CLIs again by hand.

Some tools come with add-ons on top of their own install, like Vercel's CLI, linking the project to Vercel, or Vercel's MCP server. The author ticks the ones they want when they make the stack, and use lists them with the rest of the setup. Each lands in one of three places.

Lands onWhat it isExample
Your machineA CLI, installed once for the whole machine and skipped when it's already there (its --version works)npm install --global vercel
This projectA step done in every project, some asking you questions the first timevercel link
Your agentAn MCP server added to your coding agent, or the vendor's skills for it to readclaude mcp add --transport http vercel https://mcp.vercel.com

Only the catalog's commands run. An author picks add-ons and never writes a command, so a stack can't carry one of its own. Every add-on's command was checked against the tool's own docs, and a script looks again each month for packages and servers that have gone.

use --install runs this project's steps on your first yes, then asks again before anything that reaches outside the project, like a CLI for the whole machine or an MCP server for your agent. A step that asks you questions runs only in a terminal; without one it's listed for you to run yourself.

Skills

Skills from your own GitHub, so whoever uses your stack gets them for their coding agent.

In Create, Skills, at the end of the catalog, adds skills from a public repo of yours. Log in with GitHub, or connect it in Settings if you log in with X, then pick the repo. We read its SKILL.md files and nothing else, and you tick the skills that come with the stack. A stack takes skills from three repos at most.

Only your own repos are offered, under the GitHub login on your account, and the database checks that again when you publish. Each publish reads the repo afresh. A fork keeps the original author's skills, credited to them, and you can untick them but not add more of theirs.

use lists them with the agent's steps as npx skills add owner/repo --skill name -y, installing the repo as it is now. They aren't from the phatstacks catalog and nobody here reviews them, so AGENTS.md says so and use --install asks before running them.

Connecting your agent

One command, and your coding agent can search, read and use stacks by itself.

$ npx phatstacks@0 connect

Run it in a project and it writes two things: a skill for Claude Code (.claude/skills/phatstacks/SKILL.md) and a short section in AGENTS.md, which Codex, Cursor, Copilot and most other agents read. Both say what phatstacks is and the three commands below, so you can ask your agent for a stack in plain words and it searches, reads one back to you and sets the project up. --global writes the skill under ~/.claude instead, for every project.

CommandWhat it does
phatstacks search <words>Finds stacks: what it's for ("mobile app with payments"), tool names ("nextjs supabase"), or both. --json for the data.
phatstacks show <ref>Reads one in full: every tool by layer with the author's note, the setup, the house rules. --json prints its stack.json.
phatstacks use <ref>Sets the project up from it, as above.

An agent that calls tools rather than running commands can use the MCP server instead; it has the same reads.

Reference

The MCP server

The same search and read as the command line, as tools an agent calls.

The server is at https://phatstacks.dev/mcp. It needs no account: it only reads public stacks. Two tools: search_stacks (plain words, tool slugs, a purpose or a category; each stack's ref, what it's for, its tools and counts) and get_stack (one stack in full by ref or URL; format adds the setup commands, returns the AGENTS.md that use would write, or its stack.json).

$ claude mcp add --transport http phatstacks https://phatstacks.dev/mcp --scope user

That's Claude Code. For Cursor, add {"mcpServers":{"phatstacks":{"url":"https://phatstacks.dev/mcp"}}} to ~/.cursor/mcp.json; other apps take the URL as a custom connector. Forking and publishing from an agent come later, with a log in.

Words

WordWhat it means
stackA named, forkable bundle of tools, at /handle/slug
toolOne catalog entry: a product, library, skill or rules file
integrationWhat connects an agent to a tool: its MCP server, skill, rules file, CLI or plugin
useSet up a project from a stack
forkCopy a stack to your account to change it; the original is credited
publishMake your changes live