Updated 6mo ago
by ewtryocb
fastapi-claude-template
Agent-first FastAPI template built to pair with Claude Code - opinionated architecture kept on the rails by custom skills, hooks and review agents.
32 GitHub stars (32)
Steady at 32 stars — no new stars in the 16 days since Sep 30.
- 6 skills (6 skills found in its SKILL.md files)
- 5 forks (5 forks)
- 6mo ago last update (Last updated 6mo ago)
Install
Skills CLI
npx skills add ewtryocb/fastapi-claude-template
Asks which skills and agents to install. Just one: npx skills add ewtryocb/fastapi-claude-template --skill api-client — add -g for every project.
Claude Code
git clone https://github.com/ewtryocb/fastapi-claude-templatecp -r "fastapi-claude-template/.claude/skills/api-client" ~/.claude/skills/
Copies the api-client skill into ~/.claude/skills/ for every project (use .claude/skills/ for one project). Repeat for the other skills listed below.
Plugin
/plugin marketplace add ewtryocb/fastapi-claude-template
Run inside Claude Code if the repository ships a plugin marketplace, then pick plugins from /plugin.
Skills can run code on your machine — read the SKILL.md first.
What it does
In the author's own words, from each skill's SKILL.md.
-
api-client
Use when integrating an external HTTP API (Stripe, GitHub, Twilio, a payment provider, etc.) into the project. Enforces the Client + Service split — Client lives in infrastructure and returns raw vendor-shaped Pydantic responses, Service lives in application and maps raw responses to application `Result` types. Covers where to put ports, vendor enums, raw response DTOs, how to wire DI, and how to…
.claude/skills/api-client/SKILL.md on GitHub (opens in a new tab) -
endpoint
Use when creating or editing a FastAPI endpoint under src/presentation/http/v1/endpoints/<audience>/. Enforces audience-first organization (public/user/admin/internal), the exact parameter-naming convention (data for bodies, query for GET filters), the five-parameter list shape, correct Require + Authorization wiring, and strict contract ↔ Result mapping.
.claude/skills/endpoint/SKILL.md on GitHub (opens in a new tab) -
migration
Use when the user asks to create a database migration, change a SQLAlchemy model, add a column, add an index, or otherwise modify the schema. Enforces the rule that migrations are generated via `make generate NAME="..."` (the project's Makefile target that runs Alembic autogenerate) — never hand-written — and never edit existing migration files in migrations/versions/.
.claude/skills/migration/SKILL.md on GitHub (opens in a new tab) -
repository
Use when creating or extending a repository under src/database/psql/repositories/. Enforces the project's fixed repository vocabulary (create, select, select_many, update, delete, exists, count, upsert) — no invented methods. Shows exactly how to wrap CRUDRepository, use @on_integrity, build loads-aware selects, and return Result[T].
.claude/skills/repository/SKILL.md on GitHub (opens in a new tab) -
tests
Use when creating or extending tests under tests/unit/, tests/integration/, or tests/e2e/. Enforces per-use-case unit coverage, per-endpoint e2e coverage, mutation-persistence verification (not just 200 status), contract-vs-Request field-mismatch detection, loads-opt-in flow tests, role/validation boundary tests, and the test infra gotchas (sync alembic fixture, session-scoped asyncio loop, httpx…
.claude/skills/tests/SKILL.md on GitHub (opens in a new tab) -
usecase
Use when creating or editing a use case under src/application/v1/usecases/. Enforces the RequestBus + UseCase pattern (Request + UseCase in one file, @dataclass(slots=True), returns Result type) and the DBGateway transaction rules — never open two sessions in one use case, never touch self.database outside a context manager, never lazy-load relationships outside the session.
.claude/skills/usecase/SKILL.md on GitHub (opens in a new tab)
No skill matches that filter.
Review before you install
A skill is a set of instructions and scripts your agent will follow, and it can run code on your machine. Read the SKILL.md and any scripts first — this listing is not a security review.