Terminal CLI

Run social workflows
without leaving the terminal.

EziBreezy CLI gives teams a terminal-friendly way to inspect and run social media workflows, from workspaces, drafts, schedules, media, inbox, approvals, and analytics to selected write actions that stay protected by roles, auth, and confirmation flags.

Install @ezibreezy/cli, run ezibreezy auth:login for browser-approved local access, or set EZIBREEZY_API_KEY for scripts, cron, and CI. Commands write JSON to stdout, errors write structured JSON to stderr, and high-risk commands such as immediate publish, public inbox replies, reviewer notifications, and bulk deletion require --yes where the CLI supports that guard.

The CLI connects terminal workflows back to the real product: drafts land in Composer, scheduled items show on the Calendar, failed work can route through Failed Post Recovery, and developer teams can choose the API or MCP when a terminal is not the right interface.

A Terminal Interface For The Real Workspace

Script the repeatable parts,

The CLI is for practical terminal work: list scheduled posts before a standup, upload a folder of campaign media, create a draft from a JSON payload, schedule an approved item, export a nightly analytics summary, or check inbox backlog from a CI report.

It is not hidden infrastructure or a shortcut around the app. It uses the same workspace IDs, connected accounts, validation, provider constraints, roles, and plan gates as the social media scheduler.

Terminal workflows

Shell, cron, CI

Run EziBreezy commands locally, from scripts, from scheduled jobs, or inside CI without turning the marketing workflow into a separate system.

@ezibreezy/cli

Binary: ezibreezy

Install from npm. Requires Node.js 22 or newer. Run one-off commands with npx or pnpm dlx when a global install is not needed.

Two auth modes

Browser or API key

Browser login stores a revocable 7-day ezb_cli_ token. API keys use EZIBREEZY_API_KEY for CI, servers, and other headless environments.

Workspace IDs

--workspace <id>

Most commands require an explicit workspace ID, so scripts can be clear about which client, brand, or environment they are touching.

Role checks

Server-side

Viewer, editor, admin, organization, and plan rules are enforced by the backend. A CLI command cannot grant itself permissions.

JSON output

stdout and stderr

Successful commands write JSON to stdout. Errors write a structured JSON error to stderr and exit non-zero for clean scripting.

CLI Coverage, Safeguards, And Caveats

Install and runtime

Install with npm install -g @ezibreezy/cli or pnpm add -g @ezibreezy/cli. The binary is ezibreezy. Node.js 22 or newer is required.

Browser login for humans

ezibreezy auth:login starts a device-login flow, prints the approval URL and user code, opens the browser by default, then stores a revocable ezb_cli_ token for 7 days after approval.

API-key auth for scripts and CI

Set EZIBREEZY_API_KEY for CI, cron, servers, and build systems. Credential precedence is --api-key, then EZIBREEZY_API_KEY, then stored CLI login token.

Token status, expiry, and revoke

auth:status reports credential source without printing secrets. auth:logout removes the stored login token and revokes it server-side when possible. Active CLI logins can also be revoked in Developer settings.

What the CLI can safely read

Workspaces, integrations, safe provider options, content, failed counts, approval counts, approval history, client reviews, media, media folders, media tags, taxonomy, hashtags, analytics, inbox threads, inbox messages, inbox stats, and grid planner items.

What the CLI can write or trigger

Create and update content, schedule or reschedule posts, update internal notes, upload media, organize folders and tags, manage hashtag groups, run approval and client-review workflows, add inbox notes, reply where supported, and update grid planner items.

--yes safeguards

Immediate publish, approval notifications, client-review sends, public inbox replies, inbox moderation, inbox retry/delete-failed, mark-all-read, media bulk-delete, grid delete/promote, and PDF report generation require --yes.

JSON stdout and structured stderr

Success output is JSON and can be piped into jq, saved as a CI artifact, or handed to another script. Errors use error.code, error.message, optional status, and sanitized details.

Content, drafts, schedules, publishing

content:create, list, get, update, schedule, notes, workflow, publish, archive, restore, retry, delete, failed-count, and pending-approval-count cover the main publishing lifecycle exposed to the CLI.

Media Room automation

Upload images and videos, list and fetch media, create temporary view or download URLs, update metadata, archive or delete assets, manage folders and media tags, and run explicit-ID bulk archive, move, tag, untag, or delete operations.

Inbox triage

List threads, fetch messages, pull stats, mark read or unread, add internal notes, send public replies, moderate public messages, retry failed outgoing messages, delete failed outgoing messages, or mark matching threads read.

Approvals and client reviews

Approval-history commands, internal approval requests and decisions, comments, attachments, reactions, and client-review batch commands are available where the workspace plan and role allow them.

Analytics and reports

Run analytics summaries, integration health checks, post analytics, aggregate post analytics, single-post analytics, demographics, and agency-plan PDF reports. Reports write a PDF to --output and JSON metadata to stdout.

Grid planner

List, create, update, reorder, replace media, set cover, remove cover, delete, and promote grid planner items. Promote creates a draft from a planner mockup and requires --yes.

Tags, taxonomy, hashtags

Read workspace tags, pillars, and formats. Create, update, delete, and list hashtag groups so scripted drafts can reuse the same vocabulary as the product.

What the CLI does not do yet

It does not currently expose social-account connection flows, member or billing management, boost ads, or Workbench planning-table commands. It also cannot bypass provider API limits, account reauth, role checks, or plan gates.

Developer And Workflow Surfaces

Public REST API

Use the API for custom integrations, services, dashboards, and endpoint-level control when shell commands are not enough.

MCP for AI agents

Use MCP when Claude, Codex, Cursor, or another compatible AI client needs typed tools and confirmation text.

Composer and Calendar

Drafts and scheduled posts created through the CLI appear in the same editing and scheduling surfaces your team uses.

Media Room

Upload media from the terminal, then reuse those files from the visual library and Composer picker.

Social Inbox

Run read-heavy inbox summaries or guarded reply workflows while respecting platform-specific reply limits.

Analytics Reports

Pull nightly JSON summaries or generate agency-plan PDF reports for client-ready reporting workflows.

The CLI Connects To

A command-line action is still EziBreezy work. Drafts, media, approval comments, inbox replies, reports, and grid items stay visible in the product surfaces your team already uses.

Compare the CLI with the API

CLI FAQ

What is @ezibreezy/cli?

@ezibreezy/cli is the official command-line interface for EziBreezy. It lets teams inspect workspaces, integrations, drafts, schedules, media, approvals, inbox work, analytics, grid items, tags, and hashtags, then run supported write actions from a terminal, script, cron job, or CI job with the same API, role checks, and platform limits as the product.

How do I install the EziBreezy CLI?

Install it from npm with npm install -g @ezibreezy/cli. You can also use pnpm add -g @ezibreezy/cli, or run one-off commands with npx @ezibreezy/cli or pnpm dlx @ezibreezy/cli.

What is the CLI binary called?

The binary is called ezibreezy, so commands look like ezibreezy auth:login, ezibreezy workspaces:list, and ezibreezy content:create --workspace <id> --json create-content.json.

Does the CLI require Node?

@ezibreezy/cli requires Node.js 22 or newer. The package is distributed as an ESM Node CLI and is built with commander and zod.

How does CLI authentication work?

The CLI supports browser login and API-key authentication. Browser login runs ezibreezy auth:login, opens an EziBreezy approval page, and stores a revocable ezb_cli_ token locally. API-key auth uses EZIBREEZY_API_KEY or --api-key, with the environment variable preferred for scripts and CI.

Should I use browser login or an API key?

Use browser login for a person working from their own terminal. Use an API key for CI, cron, servers, or any headless environment. Avoid --api-key for routine use because command flags can show up in shell history or process listings.

Where are CLI login tokens stored?

Browser-login tokens are stored per API URL in %APPDATA%\EziBreezy\cli-auth.json on Windows, ~/Library/Application Support/EziBreezy/cli-auth.json on macOS, and ${XDG_CONFIG_HOME:-~/.config}/ezibreezy/cli-auth.json on Linux. EZIBREEZY_CLI_AUTH_FILE can override the location.

How long do CLI login tokens last?

Browser-login tokens expire after 7 days. Device approval codes expire after 10 minutes if they are not approved in the browser.

Can I revoke CLI access?

Yes. Run ezibreezy auth:logout to remove the stored token and revoke it server-side when possible. You can also revoke active CLI logins from the Developer settings page in the EziBreezy app.

How does workspace selection work?

Run ezibreezy workspaces:list or ezibreezy auth:whoami to see accessible workspaces. Most workspace commands require --workspace <id>. API keys are organization-scoped, so they can reach workspaces in that organization, but each request still goes through workspace access and role checks.

What can the CLI read from EziBreezy?

The CLI can read accessible workspaces, integrations, publishing capabilities and safe provider options, content, failed and approval counts, approval history, client review batches, media, media folders and tags, taxonomy, hashtag groups, analytics summaries, post analytics, demographics, inbox threads and messages, inbox stats, and grid planner items.

Can the CLI create or schedule posts?

Yes. content:create can create drafts or content records from JSON, content:update can update supported fields, and content:schedule can schedule or reschedule an item. The same post appears in the Composer and Calendar.

Can the CLI publish posts?

Yes, content:publish can queue an immediate publish for a draft or scheduled content item, but it requires --yes. Scheduled posts created by the CLI still publish through the normal EziBreezy scheduling system and provider validation.

Can the CLI reply to Inbox conversations?

Yes, where the connected platform supports replies. inbox:reply sends a public reply and requires --yes. The current Social Inbox coverage is Instagram, Facebook, and Threads.

Which commands require --yes?

Confirmed --yes commands include content:publish, content:request-approval, content:resubmit, client-reviews:send, client-reviews:resend, inbox:reply, inbox:moderate, inbox:retry-message, inbox:delete-failed, inbox:read-all, media:bulk-delete, grid:delete, grid:promote, and analytics:report.

Does the CLI output JSON?

Yes. Successful commands write JSON to stdout, usually the same { data, meta } envelope returned by the API. Errors write structured JSON to stderr with error.code, error.message, optional status, and sanitized details, then exit non-zero.

Does the CLI respect workspace roles?

Yes. Role checks are enforced server-side. Viewers can read supported workspace data but are blocked from mutations that require editor or admin access. Editors and admins can run write commands only where the product and plan allow them.

Does the CLI work with approvals and client reviews?

Yes, on workspaces whose plan includes those workflows. The CLI can read approval history, request or resubmit internal approval, submit decisions, add comments, and manage client review batches. Sending or resending review links requires --yes. See Approvals and agency workflows.

Does the CLI work with analytics and reports?

Yes. It can fetch analytics summaries, integration health, post analytics, aggregate post analytics, single-post analytics, demographics, and agency-plan PDF reports. analytics:report writes the PDF to --output and requires --yes.

Does the CLI replace the API?

No. The CLI is a terminal interface for humans, shell scripts, cron jobs, and CI. The REST API remains the lower-level surface for custom integrations and services.

Does the CLI replace MCP?

No. The CLI is for terminals and scripts. MCP is for AI tools such as Claude, Codex, Cursor, and other MCP-compatible clients.

What are the limitations?

The CLI does not bypass EziBreezy roles, plan gates, media limits, scheduled-post limits, provider validation, inbox platform constraints, or API rate limits. It does not currently expose every product workflow, such as social-account connection, member or billing management, boost ads, or Workbench planning-table commands.

Trusted by creators and agencies who refuse to settle

R2-D2 has nothing on you.