datamodel-code-generator — скилл

Скилл учит агента запускать datamodel-codegen и получать модели Pydantic из OpenAPI, JSON Schema и GraphQL

  • 4 059 ★ репозитория
  • Последний коммит
  • MIT
Скилл

Расширенный доступ

Почему такой уровень

  • Агент запускает команду, которая пишет сгенерированные файлы в проект
  • Разовый запуск через uvx или pipx скачивает пакет из PyPI
Все причины и проверки

datamodel-code-generator/datamodel-code-generator

Установка

Ручная установка

claude plugin marketplace add datamodel-code-generator/datamodel-code-generator
claude plugin install datamodel-code-generator@datamodel-code-generator

Плагин указывает на тот же каталог skills/datamodel-code-generator.

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Агент запускает команду, которая пишет сгенерированные файлы в проект
  • Разовый запуск через uvx или pipx скачивает пакет из PyPI

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Скилл лежит в репозитории самого генератора и направляет агента к команде `datamodel-codegen`, когда у пользователя есть схема или пример данных. На входе OpenAPI, AsyncAPI, JSON Schema, GraphQL, образцы JSON, YAML и CSV, схемы инструментов MCP, Protocol Buffers, XML Schema, Apache Avro или готовые модели Python. На выходе модели Pydantic v2, классы данных, `TypedDict` или `msgspec.Struct`. Скилл требует сначала запускать генератор, а модели от руки писать, только если запуск невозможен без сети. Для разового запуска он предлагает `uvx --from datamodel-code-generator datamodel-codegen --help`, затем `pipx run`, затем `uv run --with` и ставит пакет в проект только с вашего согласия. Для выбора опций агент вызывает рекомендатель с флагом `--recommend-options` и берет аргументы из его ответа. Справочники по опциям, сценариям и типичным сбоям лежат в папке `references`.

Для кого. Для Python-разработчиков, которые просят Claude Code, Codex или Cursor сделать типизированные модели по схеме API или образцам данных.

Подходит, если

  • Есть спецификация OpenAPI, и нужны модели Pydantic v2 для клиента или сервера на FastAPI
  • Надо превратить пример JSON или CSV в типизированные классы
  • Схема GraphQL, Avro или Protobuf должна стать моделями Python
  • Нужны модели `msgspec.Struct` или `TypedDict` без Pydantic
  • Схема сложная, со ссылками, allOf и oneOf, и ручной код получается с ошибками

Не подходит, если

  • Нужны модели на другом языке: генератор выдает только Python
  • Схемы нет и ее нечем заменить: скилл работает от входного файла или образца
  • Нужен вызов API из командной строки, для этого в каталоге есть OpenAPI to CLI

Пример запроса к агенту

Сгенерируй модели Pydantic v2 из openapi.yaml в папку app/models и проверь, что они импортируются

Ограничения

Автор называет скилл экспериментальным: порядок работы, формулировки срабатывания и инструкции для клиентов могут измениться. Рекомендатель опций автор тоже считает экспериментальным, поэтому его советы стоит сверять с документацией генератора и с готовыми файлами. Без интернета и без установленной команды агенту остается писать модели вручную. Отдельного плагина для Codex нет: ему подходит установка через `datamodel-codegen --install-skill codex` или `npx skills add`.

Как отключить. Для плагина Claude Code выполните `claude plugin uninstall datamodel-code-generator`. Если ставили копированием, удалите папку скилла из `.claude/skills/` или `.agents/skills/`.

Частые вопросы

Как поставить скилл datamodel-code-generator в Claude Code?

Выполните `claude plugin marketplace add datamodel-code-generator/datamodel-code-generator`, затем `claude plugin install datamodel-code-generator@datamodel-code-generator`. Если пакет Python уже стоит, подойдет `datamodel-codegen --install-skill claude-code`.

Нужно ли ставить пакет Python, чтобы скилл заработал?

Нет. Скилл ставится из репозитория без пакета, а сам генератор агент сначала пробует запустить разово через `uvx` или `pipx run`. В зависимости проекта пакет попадает только с вашего согласия.

Что делает флаг `--recommend-options`?

Он предлагает набор опций под вашу схему. Агент берет поле `arguments` из ответа как стартовую команду и не добавляет опции из списка `not_recommended` без причины.

Какие форматы на входе поддерживает скилл?

OpenAPI, AsyncAPI, JSON Schema, GraphQL, образцы JSON, YAML и CSV, схемы инструментов MCP, Protocol Buffers, XML Schema, Apache Avro и готовые объекты моделей Python.

Какие модели получаются на выходе?

Pydantic v2, классы данных, `TypedDict` и `msgspec.Struct`. Тип выходной модели агент выбирает под задачу.

Обсуждение

Вопросов и отзывов пока нет.

Скиллы

Набор скиллов opinionated-django учит агента строить Django-проекты со слоями API, сервисов, DTO и репозиториев.

СкиллМинимальный доступ112Звезды репозитория

Генератор кода из SQL с плагином для агентов: аннотированные запросы превращаются в типизированный код на десяти языках.

CLIРасширенный доступ75Звезды репозитория

Скилл FastAPI

FastAPI skill

Выбор редакции

Официальный скилл FastAPI, который поставляется вместе с пакетом и учит агента писать код под установленную версию

СкиллМинимальный доступ104,7 тыс.Звезды репозитория
Официальный

Скилл PowerSync: агент настраивает офлайн-синхронизацию через CLI, пишет Sync Streams и чинит зависший статус Syncing

СкиллРасширенный доступ22Звезды репозитория

17 скиллов учат агента писать приложения на Convex по документации и вести проект через PRD, task.md и журнал изменений

СкиллРасширенный доступ404Звезды репозитория

CLI проверяет архитектуру Python-сервиса по документированным правилам, а скиллы учат агента писать код в этих рамках.

CLIМинимальный доступ199Звезды репозитория

Коротко о README

Основной README посвящен самому генератору: установка через uv, conda или pip с дополнениями, форматы и опции. Скиллу для агентов отведена отдельная страница документации: зачем запускать CLI, как поставить скилл для Claude Code, Codex, Gemini CLI и других и как пользоваться подсказками генератора.

Бейдж для README

Исходный SKILL.md

---
name: datamodel-code-generator
description: >
  Use this skill when the user wants Python data models, Pydantic models,
  dataclasses, TypedDicts, msgspec structs, or type-safe Python classes
  generated from OpenAPI, AsyncAPI, JSON Schema, GraphQL, JSON/YAML/CSV
  sample data, MCP tool schemas, Protocol Buffers, XML Schema, Apache Avro,
  or existing Python model objects. Use it for requests such as "Pydantic
  models from this schema", "types for this API", "parse this JSON into
  classes", or "convert this spec into Python models". Prefer the
  datamodel-codegen CLI over hand-written model code whenever an input
  schema, API spec, sample data file, or Python model object exists.
license: MIT
metadata:
  status: experimental
---

# datamodel-code-generator

## Why use this CLI

Use `datamodel-codegen` whenever a schema, API spec, sample data file, or existing Python model object exists.

The CLI handles refs, enums, nested models, unions, `allOf`, `oneOf`, `anyOf`, and model reuse better than hand-written code.

Do not hand-write generated models first.

## Availability check

Check one-shot execution first:

```bash
uvx --from datamodel-code-generator datamodel-codegen --help
```

If `uvx` is unavailable:

```bash
pipx run datamodel-code-generator --help
```

If the project already uses `uv` and project-scoped execution is preferred:

```bash
uv run --with datamodel-code-generator datamodel-codegen --help

Сообщить о проблеме