Command-line interface to the Scalify Platform. Manage contacts, conversations, calendars, opportunities, invoices, and more — directly from your terminal or AI agent.
macOS / Linux
curl -fsSL https://raw.githubusercontent.com/Simple-Scalable-Solutions/scalify-cli/main/install.sh | bashInstalls to /usr/local/bin. Open a new shell (or run hash -r) after install.
Windows (PowerShell)
irm https://raw.githubusercontent.com/Simple-Scalable-Solutions/scalify-cli/main/install.ps1 | iexInstalls to %LOCALAPPDATA%\Programs\scalify-cli and adds it to your user PATH. Restart your terminal after install.
Verify on any platform:
scalify-cli --versionInstall the companion skill so Claude Code understands how to use the CLI on your behalf:
macOS / Linux
curl -fsSL https://raw.githubusercontent.com/Simple-Scalable-Solutions/scalify-cli/main/install-skill.sh | bashWindows (PowerShell)
irm https://raw.githubusercontent.com/Simple-Scalable-Solutions/scalify-cli/main/install-skill.ps1 | iexThen restart Claude Code (or start a new session). The skill teaches Claude to use scalify-cli
commands, handle auth, switch locations, and pipe output — no additional setup needed.
Get your API token from the Scalify Platform, then save it:
scalify-cli auth set-token YOUR_TOKEN_HEREOr use an environment variable (takes precedence over the config file):
export SCALIFY_TOKEN="your-token-here"scalify-cli doctorChecks configuration, credentials, API connectivity, and whether a newer version is available. If an update exists, the output will show:
WARN Update available: v1.x.x
CLI: curl -fsSL .../install.sh | bash
Skill: curl -fsSL .../install-skill.sh | bash
scalify-cli contacts list-contacts --compactAgency-level tokens work for agency endpoints. Location-scoped endpoints (contacts, conversations, etc.) require a per-location Private Integration Token (PIT):
# Save a location and its token
scalify-cli location add <location-id> --token pit-abc123
# Switch to that location
scalify-cli location use <location-id>
# Save + switch in one step
scalify-cli location use <location-id> --token pit-abc123
# List saved locations (* = active)
scalify-cli location list
# Show the currently active location
scalify-cli location showOverride for a single command without switching:
SCALIFY_LOCATION_ID=<id> scalify-cli contacts list-contactsRun scalify-cli <group> --help to see all subcommands for a group.
scalify-cli analytics— analytics data
scalify-cli blogs get-posts— GET /blogs/{id}/posts/{id}scalify-cli blogs list-authors— GET /blogs/authorsscalify-cli blogs list-categories— GET /blogs/categoriesscalify-cli blogs list-posts— GET /blogs/posts
scalify-cli businesses create-businesses— POST /businessesscalify-cli businesses delete-businesses— DELETE /businesses/{id}scalify-cli businesses get-businesses— GET /businesses/{id}scalify-cli businesses list-businesses— GET /businessesscalify-cli businesses update-businesses— PUT /businesses/{id}
scalify-cli calendars create-appointments— POST /calendars/events/appointmentsscalify-cli calendars create-calendars— POST /calendarsscalify-cli calendars delete-calendars— DELETE /calendars/{id}scalify-cli calendars get-calendars— GET /calendars/{id}scalify-cli calendars get-free-slots— GET /calendars/{id}/free-slotsscalify-cli calendars list-calendars— GET /calendarsscalify-cli calendars list-events— GET /calendars/eventsscalify-cli calendars update-calendars— PUT /calendars/{id}
scalify-cli contacts create-contacts— POST /contactsscalify-cli contacts create-notes— POST /contacts/{id}/notesscalify-cli contacts create-tags— POST /contacts/{id}/tagsscalify-cli contacts create-tasks— POST /contacts/{id}/tasksscalify-cli contacts create-upsert— POST /contacts/upsertscalify-cli contacts create-workflow— POST /contacts/{id}/workflow/{id}scalify-cli contacts delete-contacts— DELETE /contacts/{id}scalify-cli contacts delete-tags— DELETE /contacts/{id}/tagsscalify-cli contacts get-appointments— GET /contacts/{id}/appointmentsscalify-cli contacts get-contacts— GET /contacts/{id}scalify-cli contacts get-notes— GET /contacts/{id}/notesscalify-cli contacts get-tasks— GET /contacts/{id}/tasksscalify-cli contacts list-contacts— GET /contactsscalify-cli contacts list-search— GET /contacts/searchscalify-cli contacts update-contacts— PUT /contacts/{id}
scalify-cli conversations create-conversations— POST /conversationsscalify-cli conversations create-inbound— POST /conversations/messages/inboundscalify-cli conversations create-messages— POST /conversations/messagesscalify-cli conversations get-conversations— GET /conversations/{id}scalify-cli conversations get-messages— GET /conversations/{id}/messagesscalify-cli conversations list-search— GET /conversations/searchscalify-cli conversations update-status— PUT /conversations/messages/{id}/status
scalify-cli documents create-send— POST /documents/{id}/sendscalify-cli documents delete-documents— DELETE /documents/{id}scalify-cli documents get-documents— GET /documents/{id}scalify-cli documents list-documents— GET /documents
scalify-cli forms list-forms— GET /formsscalify-cli forms list-submissions— GET /forms/submissions
scalify-cli funnels list-funnels— GET /funnelsscalify-cli funnels list-list— GET /funnels/funnel/listscalify-cli funnels list-page— GET /funnels/page
scalify-cli invoices create-estimate— POST /invoices/estimatescalify-cli invoices create-invoices— POST /invoicesscalify-cli invoices create-record-payment— POST /invoices/{id}/record-paymentscalify-cli invoices create-send— POST /invoices/{id}/sendscalify-cli invoices create-void— POST /invoices/{id}/voidscalify-cli invoices delete-estimate— DELETE /invoices/estimate/{id}scalify-cli invoices delete-invoices— DELETE /invoices/{id}scalify-cli invoices get-estimate— GET /invoices/estimate/{id}scalify-cli invoices get-invoices— GET /invoices/{id}scalify-cli invoices list-estimate— GET /invoices/estimatescalify-cli invoices list-invoices— GET /invoicesscalify-cli invoices update-estimate— PUT /invoices/estimate/{id}scalify-cli invoices update-invoices— PUT /invoices/{id}
scalify-cli locations create-customFields— POST /locations/{id}/customFieldsscalify-cli locations create-customValues— POST /locations/{id}/customValuesscalify-cli locations create-tags— POST /locations/{id}/tagsscalify-cli locations delete-customFields— DELETE /locations/{id}/customFields/{id}scalify-cli locations delete-customValues— DELETE /locations/{id}/customValues/{id}scalify-cli locations delete-tags— DELETE /locations/{id}/tags/{id}scalify-cli locations get-customFields— GET /locations/{id}/customFieldsscalify-cli locations get-customValues— GET /locations/{id}/customValuesscalify-cli locations get-locations— GET /locations/{id}scalify-cli locations get-tags— GET /locations/{id}/tagsscalify-cli locations list-locations— GET /locationsscalify-cli locations list-search— GET /locations/searchscalify-cli locations update-customFields— PUT /locations/{id}/customFields/{id}scalify-cli locations update-customValues— PUT /locations/{id}/customValues/{id}scalify-cli locations update-locations— PUT /locations/{id}scalify-cli locations update-tags— PUT /locations/{id}/tags/{id}
scalify-cli medias delete-medias— DELETE /medias/{id}scalify-cli medias list-files— GET /medias/files
scalify-cli objects create-records— POST /objects/{id}/recordsscalify-cli objects delete-records— DELETE /objects/{id}/records/{id}scalify-cli objects get-objects— GET /objects/{id}scalify-cli objects get-records— GET /objects/{id}/recordsscalify-cli objects list-objects— GET /objectsscalify-cli objects update-records— PUT /objects/{id}/records/{id}
scalify-cli opportunities create-opportunities— POST /opportunitiesscalify-cli opportunities delete-opportunities— DELETE /opportunities/{id}scalify-cli opportunities get-opportunities— GET /opportunities/{id}scalify-cli opportunities list-pipelines— GET /opportunities/pipelinesscalify-cli opportunities list-search— GET /opportunities/searchscalify-cli opportunities update-opportunities— PUT /opportunities/{id}
scalify-cli payments create-coupons— POST /payments/couponsscalify-cli payments delete-coupons— DELETE /payments/coupons/{id}scalify-cli payments get-coupons— GET /payments/coupons/{id}scalify-cli payments get-orders— GET /payments/orders/{id}scalify-cli payments list-coupons— GET /payments/couponsscalify-cli payments list-orders— GET /payments/ordersscalify-cli payments list-subscriptions— GET /payments/subscriptionsscalify-cli payments list-transactions— GET /payments/transactionsscalify-cli payments update-coupons— PUT /payments/coupons/{id}
scalify-cli social-media-posting create-social-media-posting— POST /social-media-postingscalify-cli social-media-posting delete-social-media-posting— DELETE /social-media-posting/{id}scalify-cli social-media-posting get-social-media-posting— GET /social-media-posting/{id}scalify-cli social-media-posting list-social-media-posting— GET /social-media-posting
scalify-cli surveys list-submissions— GET /surveys/submissionsscalify-cli surveys list-surveys— GET /surveys
scalify-cli users get-users— GET /users/{id}scalify-cli users list-users— GET /users
scalify-cli webhooks create-webhooks— POST /webhooksscalify-cli webhooks delete-webhooks— DELETE /webhooks/{id}scalify-cli webhooks get-webhooks— GET /webhooks/{id}scalify-cli webhooks list-webhooks— GET /webhooksscalify-cli webhooks update-webhooks— PUT /webhooks/{id}
# Human-readable table (default in terminal, JSON when piped)
scalify-cli contacts list-contacts
# JSON
scalify-cli contacts list-contacts --json
# Compact JSON — key fields only (id, name, status, timestamps)
scalify-cli contacts list-contacts --compact
# Filter to specific fields
scalify-cli contacts list-contacts --json --select id,firstName,email
# CSV
scalify-cli contacts list-contacts --csv
# Dry run — print the request without sending
scalify-cli contacts list-contacts --dry-run
# Agent mode — JSON + compact + no prompts in one flag
scalify-cli contacts list-contacts --agentscalify-cli is designed to be driven by AI agents and scripts:
--agent— sets--json --compact --no-input --no-color --yesin one flag--select id,name— return only the fields you need--dry-run— preview requests without side effects--idempotent— makes create retries safe (treats duplicates as success)--ignore-missing— makes delete retries safe (treats not-found as success)--yes— skip confirmation prompts--deliver file:<path>— write output to a file instead of stdout--deliver webhook:<url>— POST output to a webhook--data-source live|local|auto— force live API, cached SQLite, or auto
Exit codes: 0 success · 2 usage error · 3 not found · 4 auth error · 5 API error · 7 rate limited
Example — search contacts by query:
scalify-cli contacts list-search --params "query=jane doe" --agentExample — fetch all contact IDs and look each one up:
scalify-cli contacts list-contacts --agent --select id \
| jq -r '.[].id' \
| xargs -I{} scalify-cli contacts get-contacts {} --agentInstall the skill so Claude understands scalify-cli commands and can use them autonomously:
macOS / Linux
curl -fsSL https://raw.githubusercontent.com/Simple-Scalable-Solutions/scalify-cli/main/install-skill.sh | bashWindows (PowerShell)
irm https://raw.githubusercontent.com/Simple-Scalable-Solutions/scalify-cli/main/install-skill.ps1 | iexRestart Claude Code after install. The skill covers auth setup, location switching, all resource groups, output flags, and common workflows — Claude will invoke the CLI directly rather than asking you to run commands manually.
The CLI ships a companion MCP server binary (scalify-pp-mcp) that exposes every command as an
agent tool. Register it in Claude Code:
claude mcp add scalify scalify-pp-mcp -e SCALIFY_TOKEN=<your-token>Or add it to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"scalify": {
"command": "scalify-pp-mcp",
"env": {
"SCALIFY_TOKEN": "<your-key>"
}
}
}
}Config file: ~/.config/scalify-pp-cli/config.toml
| Environment variable | Description |
|---|---|
SCALIFY_TOKEN |
API token (takes precedence over config file) |
SCALIFY_LOCATION_ID |
Active location ID (takes precedence over config file) |
SCALIFY_CONFIG |
Override config file path |
scalify-cli doctor automatically checks for newer releases on every run. When an update is available it prints the upgrade commands directly in the output — no manual version checking needed.
Upgrade the CLI binary:
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/Simple-Scalable-Solutions/scalify-cli/main/install.sh | bashWindows (PowerShell):
irm https://raw.githubusercontent.com/Simple-Scalable-Solutions/scalify-cli/main/install.ps1 | iexUpgrade the Claude Code skill:
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/Simple-Scalable-Solutions/scalify-cli/main/install-skill.sh | bashWindows (PowerShell):
irm https://raw.githubusercontent.com/Simple-Scalable-Solutions/scalify-cli/main/install-skill.ps1 | iexThen start a new Claude Code session for the skill update to take effect.
401 / auth errors (exit code 4)
- Agency PITs work for agency-level endpoints only — location-scoped endpoints (contacts, conversations, etc.) need a location PIT
- Run
scalify-cli doctorandscalify-cli auth statusto check what's configured - Set a location token:
scalify-cli location add <id> --token <pit>
Not found errors (exit code 3)
- Check the resource ID is correct
- Run the
listvariant of the command to see available items
HTTP transport This CLI uses Chrome-compatible HTTP transport for browser-facing endpoints and does not require a resident browser process for normal API calls.
Generated by CLI Printing Press