craft cms skills

Important: Use this plugin, Not YAML Files

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "craft cms skills" with this command: npx skills add happycog/craft-skill/happycog-craft-skill-craft-cms-skills

Important: Use this plugin, Not YAML Files

CRITICAL: Always use this HTTP API to manage Craft CMS content. Never directly modify YAML configuration files in the config/project/ directory. The API ensures proper validation, maintains data integrity, and handles all necessary relationships automatically. Direct YAML edits can corrupt your Craft installation.

CRITICAL: The skills plugin must be installed to Craft. You can verify installation by running php craft plugin/list and install it with php craft plugin/install skills

Base URL Configuration

All API routes require a base URL and API prefix. The standard Craft CMS configuration uses the PRIMARY_SITE_URL environment variable and a configurable API prefix:

  • Environment Variable: Check for PRIMARY_SITE_URL in ENV or .env file

  • If Not Set: Ask the user for the base URL to use

  • API Prefix: Configurable prefix that defaults to /api

  • Check Order:

  • First check config/skills.php for apiPrefix in the PHP array

  • If not found, try the default /api

  • If requests fail, ask the user for the configured API prefix

  • Route Format: {PRIMARY_SITE_URL}/{apiPrefix}/{endpoint}

  • Default Example: https://craft-site.com/api/sections

  • Custom Prefix Example: https://craft-site.com/custom-api/sections

Request/Response Format

All API endpoints:

  • Return JSON: All responses are in JSON format with structured data

  • Accept Header: Include Accept: application/json header in requests to ensure errors are also formatted as JSON for better error handling and debugging

  • Content-Type: Use Content-Type: application/json for POST/PUT requests with JSON body data

Content

  • create_entry - POST /api/entries

  • Create entries with section/entry type IDs and field data

  • get_entry - GET /api/entries/<id>

  • Retrieve entry by ID with all fields and metadata

  • update_entry - PUT /api/entries/<id>

  • Update entry (prefers draft workflow)

  • delete_entry - DELETE /api/entries/<id>

  • Delete entry (soft/permanent)

  • search_content - GET /api/entries/search

  • Search/filter entries by section/status/query

Drafts

  • create_draft - POST /api/drafts

  • Create draft from scratch or existing entry

  • update_draft - PUT /api/drafts/<id>

  • Update draft content/metadata (PATCH semantics)

  • apply_draft - POST /api/drafts/<id>/apply

  • Publish draft to canonical entry

Sections

  • create_section - POST /api/sections

  • Create section with types/versioning/sites

  • get_sections - GET /api/sections

  • List all or filter by IDs

  • update_section - PUT /api/sections/<id>

  • Update properties/settings

  • delete_section - DELETE /api/sections/<id>

  • Permanently delete (removes all entries)

Entry Types

  • create_entry_type - POST /api/entry-types

  • Create with handle/name/layout

  • get_entry_types - GET /api/entry-types

  • List with fields/usage/URLs

  • update_entry_type - PUT /api/entry-types/<id>

  • Update properties/layout

  • delete_entry_type - DELETE /api/entry-types/<id>

  • Delete if not in use

Fields

  • create_field - POST /api/fields

  • Create with type and settings

  • get_fields - GET /api/fields

  • List global or layout-specific

  • get_field_types - GET /api/fields/types

  • List available types

  • update_field - PUT /api/fields/<id>

  • Update properties/settings

  • delete_field - DELETE /api/fields/<id>

  • Permanently delete (removes data)

Field Layouts

  • create_field_layout - POST /api/field-layouts

  • Create empty field layout for entry types

  • get_field_layout - GET /api/field-layouts

  • Get field layout structure by entry type/layout/element ID

  • add_tab_to_field_layout - POST /api/field-layouts/<id>/tabs

  • Add tab to field layout with flexible positioning (prepend/append/before/after)

  • add_field_to_field_layout - POST /api/field-layouts/<id>/fields

  • Add custom field to tab with positioning, width, required, and display options

  • add_ui_element_to_field_layout - POST /api/field-layouts/<id>/ui-elements

  • Add UI elements (heading, tip, horizontal rule, markdown, template) to layouts

  • move_element_in_field_layout - PUT /api/field-layouts/<id>/elements

  • Move fields/UI elements within or between tabs with precise positioning

  • remove_element_from_field_layout - DELETE /api/field-layouts/<id>/elements

  • Remove fields or UI elements from field layout

Sites

  • get_sites - GET /api/sites
  • List all sites with IDs/handles/URLs

Assets

  • create_asset - POST /api/assets

  • Upload file from local/remote URL to volume

  • update_asset - PUT /api/assets/<id>

  • Update metadata or replace file

  • delete_asset - DELETE /api/assets/<id>

  • Delete asset and file

  • get_volumes - GET /api/volumes

  • List asset volumes with IDs/URLs

System

  • health - GET /api/health
  • Health check endpoint to verify plugin installation and API availability

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

neo

Browse websites, read web pages, interact with web apps, call website APIs, and automate web tasks. Use Neo when: user asks to check a website, read a web page, post on social media (Twitter/X), interact with any web app, look up information on a specific site, scrape data from websites, automate browser tasks, or when you need to call any website's API. Keywords: website, web page, browse, URL, http, API, twitter, tweet, post, scrape, web app, open site, check site, read page, social media, online service.

Archived SourceRecently Updated
General

image-gen

Generate AI images from text prompts. Triggers on: "生成图片", "画一张", "AI图", "generate image", "配图", "create picture", "draw", "visualize", "generate an image".

Archived SourceRecently Updated
General

explainer

Create explainer videos with narration and AI-generated visuals. Triggers on: "解说视频", "explainer video", "explain this as a video", "tutorial video", "introduce X (video)", "解释一下XX(视频形式)".

Archived SourceRecently Updated
General

asr

Transcribe audio files to text using local speech recognition. Triggers on: "转录", "transcribe", "语音转文字", "ASR", "识别音频", "把这段音频转成文字".

Archived SourceRecently Updated