# Drop to CDN CLI

> Upload files and publish pages to CDN from the command line. Built for terminal-native AI agents like Claude Code and Codex, with --json, --dry-run, and a self-describing api-schema.

droptocdn is a command-line client for Drop to CDN. It wraps the same REST API as the dashboard and the MCP server, but speaks the conventions AI coding agents expect from a shell tool: self-describing commands, machine-readable JSON output, deterministic exit codes, and dry-run previews before anything destructive runs.

## CLI quick install

Install globally or run with npx.

- npm install -g droptocdn, or npx droptocdn (a command) without installing.
- Set DROPTOCDN_API_KEY in your shell — create one in Dashboard → Settings (starts with dtc_).
- Run droptocdn --help for the command list, or droptocdn api-schema for a machine-readable one.

## Commands

Seven commands wrap the REST API.

- upload (a file path) — upload a local file, returns id, url, expires_at, size, mime_type, original_name.
- get (a file id) — fetch metadata and the CDN URL for a file.
- list — list files in your account, paginated with limit and cursor.
- delete (a file id) — permanently delete a file; supports --dry-run and requires --yes outside an interactive terminal.
- publish (a file path) — publish a local HTML file as a hosted page, returns id, url, expires_at.
- whoami — show the account profile for the configured API key.
- api-schema — print every command's arguments, flags, and exit codes as JSON.

## Built for AI agents

Four conventions so an agent can drive the CLI without hardcoded parsing.

- Self-describing: api-schema returns the full command surface as JSON, discoverable at runtime.
- Machine-readable output: every command supports --json, and --jq 'EXPRESSION' filters it through the system jq binary.
- Deterministic exit codes: 0 success, 1 API error, 2 usage error, 3 auth error — an agent can branch on $? without parsing text.
- Safe-by-default writes: upload, publish, and delete accept --dry-run to preview a request without spending quota; delete also refuses to run without --yes outside an interactive shell.

## CLI FAQ

Common questions about the CLI.

### Do I need Node.js?

Yes. droptocdn is a Node.js CLI; Node 20 or newer is required, whether installed globally or run via npx.

### Where does my API key go?

In the DROPTOCDN_API_KEY environment variable in your shell — never in a command-line argument or committed to a file. Create a key in Dashboard → Settings.

### How is this different from the MCP server?

Same REST API underneath. The MCP server is for chat-based hosts like Claude Desktop and Cursor's MCP client; the CLI is for terminal-native agents such as Claude Code and OpenAI Codex, and for humans scripting uploads directly.

### Can an agent delete files by accident?

delete requires --yes when there is no interactive terminal to confirm in, and --dry-run previews the request without calling the API at all.

## More from Drop to CDN

- [Home](https://droptocdn.com/)
- [Pricing](https://droptocdn.com/pricing)
- [API Docs](https://droptocdn.com/docs)
- [Image to CDN](https://droptocdn.com/image-to-cdn)
- [Video to CDN](https://droptocdn.com/video-to-cdn)
- [PDF to CDN](https://droptocdn.com/pdf-to-cdn)
- [n8n Integration](https://droptocdn.com/integrations/n8n)
- [Zapier Integration](https://droptocdn.com/integrations/zapier)
- [Make Integration](https://droptocdn.com/integrations/make)
- [Activepieces Integration](https://droptocdn.com/integrations/activepieces)
- [MCP (Cursor, Claude)](https://droptocdn.com/integrations/mcp)
- [CLI (agents & terminal)](https://droptocdn.com/integrations/cli)
- [Buffer Integration](https://droptocdn.com/integrations/buffer)
- [Loom to CDN](https://droptocdn.com/loom-to-cdn)
- [Privacy Policy](https://droptocdn.com/privacy)
- [Terms of Service](https://droptocdn.com/terms)

- [Site index for agents (llms.txt)](https://droptocdn.com/llms.txt)
- [XML sitemap](https://droptocdn.com/sitemap.xml)
- [OpenAPI specification](https://api.droptocdn.com/v1/openapi.json)

---

Canonical HTML page: https://droptocdn.com/integrations/cli
