CLI

Schedule LinkedIn posts, view analytics, generate AI content, and manage webhooks — from your terminal or any AI agent.

v0.1.0macOS / Linux / Windows

Install

macOS / Linux

Terminal
curl -fsSL https://growero.io/install.sh | sh

Windows (PowerShell)

PowerShell
irm https://growero.io/install.ps1 | iex

npm (all platforms)

Terminal
npm install -g @growero/cli

Verify installation

growero --version
growero doctor
Requirements: Node.js 18+ and npm. The installer checks these automatically.

Authentication

Get an API key from app.growero.io → Settings → API Keys, then:

# Set your API key
growero auth login growero_live_aBc123...

# Verify it works
growero auth whoami

# Check current config
growero auth status

Environment variable

For CI/CD and automation, set the key as an environment variable instead:

Shell
export GROWERO_API_KEY=growero_live_aBc123...
PowerShell
$env:GROWERO_API_KEY = "growero_live_aBc123..."

Self-hosted / custom API

growero auth set-url https://your-api.example.com/api/v1

Posts

# List your scheduled posts
growero posts list
growero posts list --status published --limit 10
growero posts list --platform linkedin --json

# Create a new LinkedIn post
growero posts create \
  --text "Excited to announce our new feature!" \
  --platforms linkedin \
  --schedule "2026-06-01T14:00:00Z"

# Create with media
growero posts create \
  --text "Check this out" \
  --platforms linkedin \
  --media "https://example.com/image.jpg"

# Get post details
growero posts get <post-id>

# Delete a post
growero posts delete <post-id>
Publishing today: LinkedIn. Additional platform keys may appear in API responses while rollout work continues, but scheduled publishing is only promised for LinkedIn right now.

Analytics

# Overall summary (last 30 days)
growero analytics summary
growero analytics summary --days 90

# Per-post analytics
growero analytics posts --sort impressions --limit 20

# Daily breakdown (for charts/exports)
growero analytics daily --days 14 --json

Output formats

All commands support --json for machine-readable output, ideal for piping to jq or automation tools.

# Export analytics as JSON
growero analytics posts --json > analytics.json

# Pipe to jq for filtering
growero analytics posts --json | jq '.[] | select(.impressionCount > 1000)'

AI Content Generation

# Generate a LinkedIn post
growero ai generate --topic "Why AI will transform marketing"

# Customize tone
growero ai generate \
  --topic "Our Q2 results" \
  --tone inspirational \
  --platform linkedin

# Generate multiple variations
growero ai generate \
  --topic "Remote work productivity" \
  --count 3 \
  --no-hashtags

# Pipe directly to create
TEXT=$(growero ai generate --topic "Monday motivation" --json | jq -r '.generated[0].text')
growero posts create --text "$TEXT" --platforms linkedin
Tones: professional, casual, inspirational, educational, humorous
Cost: 3 credits per variation. Check your balance at app.growero.io.

Webhooks

Webhooks let external tools (n8n, Zapier, Make.com, custom backends) react to Growero events in real-time.

# List endpoints
growero webhooks list

# Create a webhook endpoint
growero webhooks create \
  --url https://your-app.com/webhook \
  --events post.published,post.failed

# Test all endpoints
growero webhooks test

# View delivery history
growero webhooks deliveries --limit 20

# Delete an endpoint
growero webhooks delete <endpoint-id>

Available events

post.createdpost.publishedpost.failedpost.updatedpost.deletedcomment.receivedmention.receivedfollower.gainedping.test

n8n integration

Use the Growero webhook URL as an n8n Webhook Trigger, then call the REST API with HTTP Request nodes:

n8n HTTP Request node
Method: POST
URL: https://api.growero.io/api/v1/posts
Headers:
  Authorization: Bearer growero_live_xxx
Body:
  {
    "text": "{{ $json.text }}",
    "platforms": ["linkedin"]
  }

AI Agent Integration

Today, any AI agent can drive Growero by calling the CLI as a tool or hitting the REST API directly — both are live. A native MCP (Model Context Protocol) server for Claude, Cursor, Codex and Gemini is coming soon.

Native MCP server — coming soon

We're shipping a hosted MCP server so Claude, Cursor, Codex, Gemini and any MCP-compatible agent can post, schedule, and read your LinkedIn analytics natively. Want early access? Join the waitlist. In the meantime, the CLI below already gives every agent full access.

Any agent via subprocess (available today)

AI agents can call the CLI directly as a tool:

# Agent calls this as a shell command:
growero posts create --text "..." --platforms linkedin --json

# Agent reads analytics:
growero analytics summary --json

Configuration

Configuration is stored in ~/.growero/config.json. All settings can be overridden with environment variables.

SettingEnv VariableDefault
apiKeyGROWERO_API_KEY(none)
apiUrlGROWERO_API_URLhttps://api.growero.io/api/v1
outputFormattable

Useful commands

growero --version          # Show CLI version
growero --help            # Show all commands
growero doctor            # Full diagnostics check
growero auth status       # Show current config

Security

  • API keys are stored locally with restrictive file permissions (600 on Unix)
  • Keys use Argon2id hashing — even a database breach doesn't expose raw keys
  • All API communication is over TLS 1.2+
  • Keys support scopes: posts:read, posts:write, analytics:read, ai:write, webhooks:write
  • Rotate keys without downtime: old key stays valid for 24h after rotation
  • Every CLI action is logged in the audit trail (visible at app.growero.io → Activity)
  • Webhook payloads are HMAC-SHA256 signed for verification

Troubleshooting

"No API key configured"

Run growero auth login <key> or set GROWERO_API_KEY env variable.

"Invalid or revoked API key"

Your key may have expired or been rotated. Generate a new one at app.growero.io → Settings → API Keys.

"API access not available on this plan"

API access requires an active subscription. Check your plan at app.growero.io → Billing.

"Insufficient credits"

AI generation costs credits. Top up at app.growero.io → Billing → Buy Credits.

Rate limited (429)

Default limits: 60 reads/min, 30 writes/min per API key. Wait and retry, or contact support for higher limits.

Connection refused

Run growero doctor to check connectivity. If self-hosted, verify your GROWERO_API_URL.