create-cloudinary-next
v1.0.0-beta.3
Published
Scaffold a Cloudinary Next.js project with interactive setup
Maintainers
Readme
create-cloudinary-next
Scaffold a modern, production-ready Next.js application using Cloudinary. Features interactive setup, automatic environment configuration, and built-in AI coding assistance.
![]()
Quick start
Type this into your terminal:
npx create-cloudinary-next...and you're off! The CLI will guide you through:
- Project Name: naming your new folder
- Cloud Name: entering your Cloudinary cloud name
- Upload Preset (Optional): handling uploads to Cloudinary
- Agentic Coding Tools Configuration: installing the configuration your agentic tooling needs
Requirements
- Node.js — use a current LTS release.
- A Cloudinary account
- Sign up for free
- Your cloud name is in your dashboard
Features
- Cloudinary Library and Components: Pre-configured with Cloudinary's Next.js library, giving you robust, ergonomic, fully-typed components.
- Interactive Setup: Validates your cloud name and configures
.envautomatically. - AI-First: Auto-generates configuration for Claude, Cursor, GitHub Copilot, and other agentic coding tools.
- Skill-Powered Development: Installs Cloudinary’s NextJS, transformation, and documentation skills to give agentic tooling expert-level Cloudinary context.
- MCP Support: Built-in Model Context Protocol configuration so that agentic tooling can call Cloudinary APIs directly.
Headless Mode
For CI/CD pipelines, scripts, or automated workflows, pass --headless along with all options as flags to skip the interactive prompts:
npx create-cloudinary-next --headless \
--cloudName your-cloud-name \
--projectName my-appHeadless Mode Options
| Flag | Type | Default | Description |
|---|---|---|---|
| --cloudName | string | (required) | Your Cloudinary cloud name |
| --projectName | string | my-cloudinary-app | Output directory name |
| --hasUploadPreset | boolean | false | Set if you have an unsigned upload preset |
| --uploadPreset | string | — | Your unsigned upload preset name (required if --hasUploadPreset) |
| --aiTools | string (repeatable) | cursor | AI tools to configure: cursor, copilot, claude, generic |
| --installDeps | boolean | true | Install dependencies after scaffolding |
| --startDev | boolean | false | Start the dev server after install |
| --packageManager | string | (auto-detected) | npm, pnpm, yarn, or bun |
Note: Shell variables should be quoted to prevent unexpected expansion:
--cloudName "$CLOUD_NAME".
Development
This project uses Conventional Commits for version management and semantic-release for automated releases.
Release Process
Releases are triggered manually via GitHub Actions workflow. The workflow uses npm trusted publishing (OIDC) for secure package publishing. New versions are published to npm when the workflow runs without dry run.
Dry run (default): When you run the workflow, "Dry run only" is checked by default. This runs semantic-release in dry-run mode—no git push, no tags, no npm publish. Use this to verify the next version and release notes before doing a real release. To publish for real, run the workflow again and uncheck "Dry run only". Each real release creates a GitHub release, updates CHANGELOG, and publishes the new version to npm (when the version changes).
Commit Format
<type>(<scope>): <subject>
<body>
<footer>Types:
feat: New featurefix: Bug fixdocs: Documentation changesrefactor: Code refactoringperf: Performance improvements
