npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@cloudinary/apps-cli

v0.1.24

Published

CLI to bootstrap Cloudinary DAM apps

Readme

@cloudinary/apps-cli

CLI for scaffolding and managing Cloudinary DAM custom-action apps.

Requirements: Node.js >= 20

Install

npm install -g @cloudinary/apps-cli

This installs the cld-apps binary.

Quick start

cld-apps create my-dam-app
cd my-dam-app
pnpm install
pnpm dev

Dev server: http://localhost:7179

Commands

| Command | Description | | ------------------------------------------------- | ---------------------------------------------- | | cld-apps create <app-name> | Scaffold a new DAM app | | cld-apps login | Authenticate via browser and store credentials | | cld-apps logout [cloud-name] | Remove stored credentials | | cld-apps whoami | Show active cloud / credentials | | cld-apps use <cloud-name> | Switch active cloud | | cld-apps manifest create [path] | Create cloudinary.app.json (+ schema) | | cld-apps manifest validate [path] | Validate a manifest | | cld-apps manifest push [options] | Push manifest to Cloudinary | | cld-apps manifest push:watch [options] | Watch and push on change | | cld-apps deploy <staging\|production> [options] | Build, zip, and deploy | | cld-apps get-config [options] | Fetch live DamConfig | | cld-apps ci <link\|status\|unlink> <tier> | Let GitHub Actions deploy the app (CI link) | | cld-apps --version | Print package version |

Run cld-apps with no args for full usage.

Auth

cld-apps login

The login code expires about 60 seconds after it is issued, so sign in to the Cloudinary console first. In a terminal, the command waits for Enter before it requests a login code, which gives you time to do that. It then opens a browser login page with the code already in the URL. If the browser does not open, copy the printed URL (it contains the code).

Pass --no-wait to skip the pause. That is for agents and other tools that run commands in a terminal, where nobody is there to press Enter.

Credentials are stored locally. Override with CLOUDINARY_GATEWAY_TOKEN when needed.

Deploying from GitHub Actions

A GitHub Actions job can run deploy and manifest push with no stored secret. The app's creator links the app to the repository once per tier:

cld-apps ci link production --branch master        # repo defaults to the origin remote
cld-apps ci link staging --event pull_request
cld-apps ci status production

ci link opens a fresh browser login and hands it to the gateway, which keeps it for the link: CI deploys as the account you log in with. Your stored login is not touched. Pass at least one of --branch, --event or --environment, so the link does not trust every workflow in the repository. If ci status shows BROKEN (the login was revoked, or the user lost access), run ci link again.

In the workflow, give the job id-token: write. The CLI then requests the job's OIDC token itself, after the build:

permissions:
  contents: read
  id-token: write
steps:
  - run: pnpm exec cld-apps deploy production

Order of credentials for deploy and manifest push: CLOUDINARY_GATEWAY_TOKEN, then the GitHub Actions OIDC token, then the stored login.

Optional env:

  • CLOUDINARY_GATEWAY_URL — gateway base URL
  • CLOUDINARY_APP_ID — Custom Action app id (also via .env.<tier>)

Publishing this package (maintainers)

From cli/:

./bin/publish

Publishes @cloudinary/apps-cli to the public npm registry (--access public). Requires npm auth with publish rights to the @cloudinary scope.

Related packages