CLI
Schedule LinkedIn posts, view analytics, generate AI content, and manage webhooks — from your terminal or any AI agent.
Install
macOS / Linux
curl -fsSL https://growero.io/install.sh | shWindows (PowerShell)
irm https://growero.io/install.ps1 | iexnpm (all platforms)
npm install -g @growero/cliVerify installation
growero --version
growero doctorAuthentication
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 statusEnvironment variable
For CI/CD and automation, set the key as an environment variable instead:
export GROWERO_API_KEY=growero_live_aBc123...$env:GROWERO_API_KEY = "growero_live_aBc123..."Self-hosted / custom API
growero auth set-url https://your-api.example.com/api/v1Posts
# 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>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 --jsonOutput 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 linkedinCost: 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.testn8n integration
Use the Growero webhook URL as an n8n Webhook Trigger, then call the REST API with HTTP Request nodes:
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 --jsonConfiguration
Configuration is stored in ~/.growero/config.json. All settings can be overridden with environment variables.
| Setting | Env Variable | Default |
|---|---|---|
| apiKey | GROWERO_API_KEY | (none) |
| apiUrl | GROWERO_API_URL | https://api.growero.io/api/v1 |
| outputFormat | — | table |
Useful commands
growero --version # Show CLI version
growero --help # Show all commands
growero doctor # Full diagnostics check
growero auth status # Show current configSecurity
- API keys are stored locally with restrictive file permissions (
600on 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.