better-auth-core — скилл для Claude Code: настройка Better Auth
Скилл для настройки Better Auth в TypeScript-приложениях: инстанс, серверные обработчики, клиент и сессии. Пригодится, когда нужно подключить аутентификацию без долгих поисков по докам.
npx skills add bobmatnyc/claude-mpm-skills --skill better-auth-core -a claude-codeЧто делает better-auth-core
Скилл описывает базовую настройку Better Auth: создание инстанса через betterAuth, подключение базы данных (драйвер или адаптер), монтирование обработчика и клиент через createAuthClient. Внутри — чеклист из шести шагов и примеры кода на TypeScript.
Отдельно разобраны серверные вызовы: auth.api.* с { body, headers, query }, флаги asResponse: true для получения объекта Response и returnHeaders: true для доступа к Set-Cookie. Работа с сессиями показана с двух сторон — на клиенте authClient.useSession() или authClient.getSession(), на сервере auth.api.getSession({ headers }).
Перед стартом нужны переменные окружения BETTER_AUTH_SECRET (от 32 символов) и BETTER_AUTH_URL. Если меняете базовый путь /api/auth, полный базовый URL придётся передать и клиенту — иначе запросы уйдут не туда. Для плагинов, которым нужны таблицы, сначала прогоняются миграции. Ещё скилл советует экспортировать инстанс под именем auth, иначе хелперы его не найдут.
Какие задачи решает
- поднять инстанс Better Auth с базой и переменными окружения
- прикрутить серверный обработчик к фреймворку
- получить сессию на клиенте и на сервере
- вызвать серверный метод вроде входа по email и забрать заголовки ответа
- вывести типы из инстанса и клиента через
$Infer
Примеры запросов агенту
- Настрой Better Auth в этом проекте: создай
auth.ts, подключи базу и email-пароль - Покажи, как получить сессию на сервере через
auth.api.getSessionс заголовками запроса - Как вывести типы из
authиauthClientв TypeScript?
Как установить better-auth-core
1Через Skills CLI (Vercel)
npx skills add bobmatnyc/claude-mpm-skills --skill better-auth-core -a claude-code2Вручную: положить файлы
~/.claude/skills/better-auth-core/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/better-auth-core/
1Через Skills CLI (Vercel)
npx skills add bobmatnyc/claude-mpm-skills --skill better-auth-core -a codex2Вручную: положить файлы
.agents/skills/better-auth-core/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add bobmatnyc/claude-mpm-skills --skill better-auth-core -a cursor2Вручную: положить файлы
.cursor/skills/better-auth-core/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install bobmatnyc/claude-mpm-skills better-auth-core2Вручную: положить файлы
.github/skills/better-auth-core/SKILL.md1Через Skills CLI (Vercel)
npx skills add bobmatnyc/claude-mpm-skills --skill better-auth-core -a gemini-cli2Командой платформы
gemini skills install https://github.com/bobmatnyc/claude-mpm-skills --path toolchains/platforms/auth/better-auth/better-auth-coreВручную: положить файлы
.devin/skills/better-auth-core/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add bobmatnyc/claude-mpm-skills --skill better-auth-core -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о better-auth-core
Как установить better-auth-core в Claude?
Выполните npx skills add bobmatnyc/claude-mpm-skills --skill better-auth-core -a claude-code. После этого файл скилла появится по пути ~/.claude/skills/better-auth-core/SKILL.md.
Что делает better-auth-core?
Помогает настроить Better Auth в TypeScript-приложении: создать инстанс, подключить базу данных, смонтировать обработчик и клиент, работать с сессиями и серверными методами.
Что нужно подготовить до работы со скиллом?
Переменные BETTER_AUTH_SECRET длиной от 32 символов и BETTER_AUTH_URL. Если включаете плагины с таблицами, сначала нужны миграции базы.
Исходный текст
SKILL.md · MIT
---
name: better-auth-core
description: Better Auth core setup for TypeScript apps. Use when configuring the Better Auth instance, wiring server handlers and client instances, working with sessions, or calling server-side auth APIs.
user-invocable: false
disable-model-invocation: true
progressive_disclosure:
entry_point:
summary: "Better Auth core setup for TypeScript apps. Use when configuring the Better Auth instance, wiring server handlers and client instances, working with sessions, or calling server-side auth APIs."
when_to_use: "When implementing authentication, authorization, or security."
quick_start: "1. Review the core concepts below. 2. Apply patterns to your use case. 3. Follow best practices for implementation."
references:
- client-server.md
- setup-database.md
- typescript.md
---
# Better Auth Core (TypeScript)
## Goals
- Set up a Better Auth instance with environment variables and data layer wiring.
- Wire server handlers and a client instance.
- Use sessions and server-side API methods safely.
- Keep data-layer choices pluggable (drivers or adapters).
## Quick start
1. Install `better-auth`.
2. Set `BETTER_AUTH_SECRET` (32+ chars) and `BETTER_AUTH_URL`.
3. Create `auth.ts` and export `auth`.
4. Provide `database` (driver or adapter) or omit for stateless sessions.
5. Mount a handler (`auth.handler` or a framework helper).
6. Create a client with `createAuthClient`.
```ts
import { betterAuth } from "better-auth";
export const auth = betterAuth({
database: myDatabaseOrAdapter, // driver or adapter; omit for stateless mode
emailAndPassword: { enabled: true },
socialProviders: {
github: {
clientId: process.env.GITHUB_CLIENT_ID as string,
clientSecret: process.env.GITHUB_CLIENT_SECRET as string,
},
},
});
```
## Core setup checklist
- Export the instance as `auth` (or default export) so helpers find it.
- Keep `BETTER_AUTH_URL` in sync with the public base URL.
- Pass the full base URL to the client if you change the `/api/auth` base path.
- Add database migrations before enabling plugins that require tables.
## Server API usage
- Call server endpoints via `auth.api.*` with `{ body, headers, query }`.
- Use `asResponse: true` if you need a `Response` object.
- Use `returnHeaders: true` to access `Set-Cookie` headers.
```ts
import { auth } from "./auth";
const session = await auth.api.getSession({
headers: request.headers,
});
const response = await auth.api.signInEmail({
body: { email, password },
asResponse: true,
});
```
## Session access
- Client: `authClient.useSession()` or `authClient.getSession()`.
- Server: `auth.api.getSession({ headers })`.
## TypeScript tips
- Infer types with `auth.$Infer` and `authClient.$Infer`.
- Use `inferAdditionalFields` on the client when you extend the user schema.
## References
- `toolchains/platforms/auth/better-auth/better-auth-core/references/setup-database.md`
- `toolchains/platforms/auth/better-auth/better-auth-core/references/client-server.md`
- `toolchains/platforms/auth/better-auth/better-auth-core/references/typescript.md`
© bobmatnyc · MIT · bobmatnyc/claude-mpm-skills