Browse docs
Setup

Open It in Claude Code

Point your coding agent at the repo once, so every request after this one starts with it already knowing where endpoints go.

Updated Aug 2026
On this page

Every page after this one hands you a prompt instead of code to type. This is the one-time setup that makes those prompts land.

Why this repo behaves differently

Claude Code reads a file called CLAUDE.md from the project root before it answers anything, and this repo ships 673 lines of it. The file says what it is in its own opening lines:

This file is the architectural contract for the codebase. It is also loaded as Claude Code's project context, so AI assistants read it on every session.

Underneath that: a 6-step recipe for adding an endpoint, five worked endpoints to copy from, an 11-row table naming the exact module that answers each common question, and a boundary map marking the fourteen framework apps your agent must not edit.

That last one matters more here than in most projects. This codebase holds a credit ledger, hashed API keys, and OAuth tokens. An agent left to its own judgement will happily "improve" the billing code; this file tells it, before it writes anything, that billing is not its to touch.

1. Install Claude Code

Windows (PowerShell):

irm https://claude.ai/install.ps1 | iex

macOS / Linux / WSL:

curl -fsSL https://claude.ai/install.sh | bash

Homebrew and WinGet work too, and signing in is covered in Anthropic's quickstart. You need a Claude subscription or a Console account.

2. Open the repo

From the folder you cloned in Get the Code:

cd my-api
claude

There is nothing to configure. CLAUDE.md is in the root, so it is already loaded.

On your computer, not inside Docker

Your agent edits files on your machine. The Docker stack you started on the last page builds its image from those files, so nothing you change reaches the running app until you reload it. Every page from here says when to reload.

3. Make it prove it read the file

Do not start with a feature. Start with a question whose answer you can check.

Claude CodeStart with this

Read CLAUDE.md and tell me in your own words: exactly where a new endpoint's files go and what each file is called, which single line registers it, how an endpoint charges credits, and which folders in this repo you are not allowed to edit. Do not write any code yet.

A good answer puts a new endpoint in apps/app_endpoints/<slug>/ as four files (__init__.py, apps.py, endpoints.py, tests.py), registers it with one dotted path in config/settings/base.py, says credits are charged by passing credits_cost=N to the @endpoint(...) decorator rather than by writing billing code inside run(), and names framework apps such as apps/core/, apps/billing/ and apps/api_keys/ as off-limits.

A bad answer reaches for @mcp.tool() and a FastMCP() server object, offers you a views.py and a urls.py, or proposes editing apps/billing/ to handle the charging. That is the generic Python-and-MCP answer out of its training data, and it is the exact shape this repo exists to replace. Left uncorrected it will build you a second MCP server next to the one you already own.

Claude CodeIf you got the bad answer

That is the generic FastMCP pattern, not this repo's. Open CLAUDE.md in the project root, read the endpoint authoring recipe and the framework boundary section, and answer again using only what is written there.

Thirty seconds spent here is what stops the next ten endpoints drifting.

One line in CLAUDE.md is stale, and your agent will repeat it faithfully

Step 3 of the endpoint recipe says to add your endpoint to a list called LOCAL_APPS. In config/settings/base.py that list is actually called INSTALLED_APPS, with the example endpoints sitting in it just below "apps.docs". The manage.py new_endpoint scaffolder prints the same old name in its closing hint.

So if your agent says LOCAL_APPS, it read the file correctly and the file is out of date. Add your line to INSTALLED_APPS and carry on. It is worth knowing this failure mode in general: an agent that quotes a file confidently is only ever as right as the file.

If you use Cursor or Copilot instead

Everything in these docs still applies. The difference is loading: neither tool picks up CLAUDE.md by convention the way Claude Code does, so say it once at the start of a session.

Claude CodeFirst message in Cursor or Copilot

Read CLAUDE.md in the project root and follow it for everything in this session. It overrides your defaults for this codebase.

Next: Build Your First Endpoint. This is the fun part.

Stop wiring plumbing. Start selling endpoints.

Django and FastMCP boilerplate for Claude Code: one Python class becomes a REST endpoint, an MCP tool and live docs, with billing, credits and OAuth wired. The stack behind ToolerBox.

Get it for $79 →