Install Balzac CLI if it doesn't exist
npm install -g balzac-cli
npm release: https://www.npmjs.com/package/balzac-cli balzac cli github: https://github.com/hirebalzac/cli api docs: https://developer.hirebalzac.ai official website: https://hirebalzac.ai
| Property | Value |
|---|---|
| name | balzac |
| description | AI content platform CLI for managing workspaces, keywords, suggestions, articles, and Google Search Console data |
| allowed-tools | Bash(balzac:*) |
Core Workflow
The fundamental pattern for using the Balzac CLI:
- Authenticate — Set your API key
- Create workspace — From a domain, Balzac auto-analyzes the site
- Manage keywords — Add, enable/disable keywords
- Generate content — Generate suggestions, accept them, or create briefings directly
- Manage articles — List, export, rewrite, regenerate pictures, publish
- Monitor performance — View Google Search Console data (clicks, impressions, CTR, position)
# 1. Authenticate
export BALZAC_API_KEY=bz_your_key_here
# Or: balzac auth login bz_your_key_here
# 2. Create workspace and wait
balzac workspaces create --domain https://myblog.com --wait
WORKSPACE_ID=$(balzac --json workspaces list | jq -r '.workspaces[0].id')
balzac config set workspace "$WORKSPACE_ID"
# 3. Manage keywords
balzac keywords list
balzac keywords create --name "content marketing"
# 4. Generate content
balzac suggestions generate
# Wait for suggestions to appear
sleep 30
balzac suggestions list --status proposed
balzac suggestions accept <suggestion-id>
# 5. Manage articles
balzac articles list
balzac articles export <article-id> --format markdown
Essential Commands
Setup
# Required: set API key (one of these methods)
export BALZAC_API_KEY=bz_your_key_here
balzac auth login bz_your_key_here
# Optional: set default workspace
balzac config set workspace <workspace-id>
# Optional: custom API URL
export BALZAC_API_URL=https://custom-api.example.com/v1
Workspaces
# List workspaces
balzac workspaces list
balzac workspaces list --status ready
# Create workspace (auto-setup from domain)
balzac workspaces create --domain https://myblog.com
balzac workspaces create --domain https://myblog.com --wait
balzac workspaces create --domain https://myblog.com --auto-accept-suggestions --language fr
# Get workspace details
balzac workspaces get <workspace-id>
# Update workspace
balzac workspaces update <id> --name "My Blog" --language en
# Delete workspace
balzac workspaces delete <id>
Keywords
# List keywords (use -w to specify workspace, or set default)
balzac keywords list
balzac keywords list --status enabled
# Create keyword
balzac keywords create --name "content marketing"
# Get keyword details
balzac keywords get <keyword-id>
# Enable / disable
balzac keywords enable <keyword-id>
balzac keywords disable <keyword-id>
# Generate new keywords with AI (async)
balzac keywords generate
# Delete keyword
balzac keywords delete <keyword-id>
Suggestions
# List suggestions
balzac suggestions list
balzac suggestions list --status proposed
# Get suggestion details
balzac suggestions get <suggestion-id>
# Generate 10 new suggestions (costs 1 credit, async)
balzac suggestions generate
# Accept suggestion — starts article writing (costs 5 credits)
balzac suggestions accept <suggestion-id>
# Reject suggestion
balzac suggestions reject <suggestion-id>
Briefings
# List briefings
balzac briefings list
# Create briefing — immediately starts writing (costs 5 credits)
balzac briefings create --topic "How to use AI for content marketing"
balzac briefings create --topic "SEO tips" --type listicle --length long
# Create briefing — queue for later writing (respects articles-per-week schedule)
balzac briefings create --topic "Content strategy guide" --queue
# Get briefing details
balzac briefings get <briefing-id>
# Delete briefing
balzac briefings delete <briefing-id>
Articles
# List articles
balzac articles list
balzac articles list --status done
balzac articles list --status done --published false
# Get article (includes HTML content when done)
balzac articles get <article-id>
# Update metadata
balzac articles update <id> --title "New Title" --slug "new-slug"
# Rewrite article (costs 3 credits)
balzac articles rewrite <id>
balzac articles rewrite <id> --length long --instructions "More technical depth"
# Regenerate picture (costs 1 credit)
balzac articles regenerate-picture <id>
balzac articles regenerate-picture <id> --style watercolor
# Export content
balzac articles export <id> --format markdown
balzac articles export <id> --format html --output article.html
# Publish
balzac articles publish <id> --integration <integration-id>
# Schedule publication
balzac articles schedule <id> --integration <int-id> --at "2026-04-01T10:00:00Z"
# Cancel schedule
balzac articles cancel-schedule <id> --publication <publication-id>
# Delete article
balzac articles delete <id>
Write (Shortcut)
# Create briefing + optionally wait for completion
balzac write "How to use AI for marketing"
balzac write "SEO tips for 2026" --wait
balzac write "AI comparison" --type listicle --length long --wait
Competitors
balzac competitors list
balzac competitors add --name "Acme Corp" --domain https://acme.com
balzac competitors get <id>
balzac competitors remove <id>
Links
balzac links list
balzac links add --url https://myblog.com/about
balzac links get <id>
balzac links remove <id>
Integrations
# List integrations
balzac integrations list
# Get integration details
balzac integrations get <id>
# Create WordPress integration
balzac integrations create --service wordpress --name "My WP Blog" \
--wordpress-url https://myblog.com --wordpress-username admin \
--wordpress-password "app_pass_here"
# Create Webflow integration (discover resources first)
balzac integrations lookup webflow-sites --token "wf_token"
balzac integrations lookup webflow-collections --token "wf_token" --site-id "site_123"
balzac integrations lookup webflow-fields --token "wf_token" --collection-id "col_123"
balzac integrations create --service webflow --name "My Webflow Site" \
--webflow-token "wf_token" --webflow-site-id "site_123" \
--webflow-collection-id "col_123" --auto-publish
# Create Wix integration
balzac integrations lookup wix-sites --api-key "wix_key"
balzac integrations lookup wix-members --api-key "wix_key" --site-id "site_123"
balzac integrations create --service wix --name "My Wix Blog" \
--wix-api-key "wix_key" --wix-site-id "site_123" --wix-member-id "member_123"
# Create GoHighLevel integration
balzac integrations lookup gohighlevel-resources --token "ghl_token" --location-id "loc_123"
balzac integrations create --service gohighlevel --name "My GHL Blog" \
--ghl-token "ghl_token" --ghl-location-id "loc_123" \
--ghl-blog-id "blog_123" --ghl-author-id "author_123" \
--ghl-category-id "cat_123"
# Create Webhook integration
balzac integrations create --service webhook --name "My Webhook" \
--webhook-url https://example.com/hook --webhook-token "optional_bearer"
# Update integration
balzac integrations update <id> --name "New Name" --auto-publish true
# Reconnect / test connection
balzac integrations reconnect <id>
# Delete integration
balzac integrations delete <id>
Search Console (alias: gsc)
Requires an active Google Search Console integration on the workspace (connected via the web app's OAuth flow). Data is synced daily from Google.
# Performance overview (30d default, with comparison to previous period)
balzac search-console overview
balzac gsc overview --start-date 2026-01-01 --end-date 2026-03-25
# Top search queries — ranked by impressions
balzac search-console queries
balzac gsc queries --start-date 2026-03-01 --per-page 50
# Top pages —