Skip to content
SendSquared

SendSquared CLI

Your CRM, one command away

sendsquared is an agent-first, agent-native command line for your SendSquared account. Claude Code, Codex, Cursor, Gemini CLI, or an agent you wrote yourself works in commands instead of tool calls: faster, pipeable into every other tool you own, and scriptable into playbooks that outlive the conversation. A human can type the same commands.

Agent-nativeJSON by defaultPipes into anythingCron-friendlyOne-line install
zsh — sendsquared

$ sendsquared -o md contacts list --limit 10

| name | email | ltv |

|-------------------|------------------------|---------|

| Dana Whitfield | dana@example.com | $12,480 |

| Marcus Oyelaran | marcus@example.com | $8,215 |

| Priya Raman | priya@example.com | $6,900 |

$ sendsquared calls list --since 2026-07-01 -o json | jq '.[] | .recording_url'

$ sendsquared workflows action-types

→ 24 action types, 11 trigger types, step format v3

$ _

Install

One line, then you are logged in

The CLI is not published to npm. Install it from the SendSquared install server and upgrade in place whenever you like.

$ curl -fsSL https://mcp.sendsquared.com/install.sh | bash

Authenticate

sendsquared auth login

Upgrade

sendsquared upgrade

Check where you stand with sendsquared auth status, print a token for scripting with sendsquared auth token, or generate a connector token for the MCP consent page with sendsquared auth connector-token.

Watch it run

Run your property from the terminal

The sendsquared CLI scripts everything from bulk call-recording exports to lead pipelines and webhooks, and the same commands run inside Claude Code, Codex, or any agent with a shell, so you can automate in plain English.

Built for agents

Point your coding agent at your account and let it work

Every command speaks a structured agent output mode, so an agent can read results reliably, chain them, and keep going. That is the difference between an assistant that answers questions about your CRM and an operator that finishes the job in it.

1

Hand it to your agent

Claude Code, Codex, Cursor, a CI runner, or an agent you built yourself drives the CLI on your behalf: pull a segment, draft a campaign, build a multi-step automation, run a report, batch-update thousands of contacts in one pass.

2

It discovers its own environment

Agents read sendsquared commands and sendsquared workflows action-types / trigger-types / step-format to learn what exists. No briefing document, no hand-written prompt describing your account.

3

Your account, your permissions

The CLI logs in once and stores your token. Every action runs as you, through the same APIs and the same access controls your team already works under.

No vendor lock-in

There is no plugin to install and no integration to certify. If the agent can run a shell command, it can run sendsquared, and it inherits the whole command surface the moment it does.

Claude Code OpenAI Codex Cursor Gemini CLI GitHub Copilot CLI Aider Devin Your own agent

No shell? Take the MCP door

When the agent cannot run commands (claude.ai in the browser, a hosted assistant, a client you do not control), the SendSquared MCP server exposes the same surface as tools over remote HTTP. Same SDK, same permissions, nothing extra to install. Give an agent a terminal and the CLI will outrun it.

Explore the MCP server

Why an agent reaches for the CLI

Commands instead of tool calls

MCP is the zero-install door. The CLI is the fast one. An agent that can run a shell gets more done per turn with commands, because a command is not just a call to SendSquared: it is a call that composes with everything else on the machine.

Far fewer round trips

A tool call is a turn: request, response, reason, repeat. A command is one process that can filter, sort, batch, and return exactly the rows that matter. Work that costs an agent twenty MCP calls is often a single line of shell.

It pipes into everything

JSON on stdout means jq, awk, csvkit, curl, psql, the AWS CLI, and every other tool on the box are now part of your CRM workflow. MCP tools cannot pipe into each other. Commands always could.

Playbooks, not prompts

A working sequence becomes a shell script you commit, review, and rerun. Your operational knowledge accrues as files an agent can read and improve, instead of evaporating at the end of a conversation.

Data enrichment both ways

Pull a segment, run it through an enrichment or scoring service, write the results straight back to the guest record. The CRM becomes a stage in a pipeline rather than a place you export from.

Schedule it and walk away

Anything that runs once runs on a cron, in a CI job, or in a Lambda. No agent has to be awake at 6am for the report to land, and nothing about the command changes when you automate it.

The same commands for people

Nothing here is agent-only. An operator types the identical command, adds -o md, and reads a table. One surface serves the script, the agent, and the person, so what one of them learns the others inherit.

Compose it with anything

The guest record stops being a destination and starts being a stage in a pipeline. Enrich a segment against a third-party API and write the results back. Feed lifetime value into your BI warehouse on a schedule. Let a nightly cron job flag every guest who arrived without a pre-arrival message. None of that needs an agent standing by, and all of it is a few lines long.

$ sendsquared segments members vip -o json \

| jq -r '.[].email' \

| enrich-tool --lookup \

| sendsquared contacts update --from-stdin

# and again every Monday at 6am

0 6 * * 1 /usr/local/bin/enrich-vips.sh

And a human can just type them

Grab every contact in a segment and pipe it into jq or a CSV

Send a one-off SMS to a contact without opening the web app

Download every call recording from last month

Pull a date-ranged email or SMS report

Add or remove a tag on a contact

Add a contact to a standard group

Run a CLI doctor check when something looks off

Build a multi-step automation from a single prompt

Output modes

Every command accepts -o, --output <mode> at the top level, so the same command serves a script, a human, and an agent.

json

Default. Scripting and piping into jq.

md

Readable tables when you are working in the terminal.

quiet

Suppress output, exit code only.

agent

Structured output tuned for AI agents to parse.

The command surface

Sixteen command groups covering the parts of SendSquared teams touch every day.

Auth

Login, status, tokens

Contacts

Lookup, create, batch update

Groups & Segments

Membership and exports

Leads

Pipeline, statuses, assignment

Campaigns

Draft, schedule, review

Workflows

Automations end to end

Templates

Email and SMS templates

Calls

History and recordings

SMS

Send and inspect messages

Tags

Add, remove, list

Brands

Multi-property scoping

Lead Taxonomy

Categories and sources

Reports

Date-ranged performance

Connector Maps

PMS field mapping

Webhooks

Subscriptions and events

Utilities

Doctor, upgrade, config

1

Line to install

16

Command groups

4

Output modes

0

Clicks required

SendSquared CLI, answered

What is the SendSquared CLI?

It is an agent-first, agent-native command-line tool (sendsquared) for working with your SendSquared account from your terminal, or from any coding agent that can run a shell command: Claude Code, Codex, Cursor, Gemini CLI, Copilot CLI, Aider, or one you wrote yourself. Anything you would otherwise click through in the web app or script by hand against the API is a command.

How do I install it?

Run curl -fsSL https://mcp.sendsquared.com/install.sh | bash. The CLI is not published to npm, so always use the install script. Upgrade later with sendsquared upgrade.

How does it relate to the MCP server?

They are the same capability surface. The SendSquared MCP server is a remote HTTP endpoint backed by the same client SDK the CLI uses, so an MCP client gets the full command surface as tools. Use sendsquared auth connector-token to paste your JWT and refresh token into the consent page.

Should my agent use the CLI or the MCP server?

The CLI, whenever the agent can run a shell. One command can filter, batch, and return exactly what is needed where MCP would spend a dozen tool calls, and its output pipes into jq, curl, your warehouse loader, or any other CLI on the machine. Reach for the MCP server when the agent has no terminal, such as claude.ai in a browser or a hosted assistant you do not control.

Do I need an AI agent to use it?

No. Plenty of work is faster as a one-liner: pull a segment, send an SMS, download last month’s call recordings, run a date-ranged report. Output defaults to JSON so it pipes cleanly, and -o md gives you something readable in the terminal. The same commands run just as well from a cron job or a CI pipeline with no AI involved at all.

What is agent output mode?

Every command accepts -o, --output <mode>. The agent mode returns structured output designed for an LLM to parse reliably, which is what makes handing the CLI to Claude Code, Codex, Cursor, or an agent of your own work as well as it does.

Is it safe to let an agent run commands on my account?

The CLI acts as the authenticated user, under the same permissions and audit trail as the web app. Tokens are stored locally, can be revoked at any time, and connector tokens for MCP are generated separately from your interactive session.

Put an agent to work on your account

See the CLI and the MCP server running against a live SendSquared environment, with your workflows and your data.

Book a Demo