Purpose

The Audienti CLI and app-hosted MCP endpoint are the supported agent surfaces for operators and coding agents who need to work against the Audienti API. Use them to inspect accounts, select the right workspace context, review supported workflows, and run account-scoped actions without inventing a parallel wrapper.

An Audienti account and API token are required before authenticated commands will work.

Install

The CLI requires Node.js 20 or newer.

curl -fsSL https://cli.audienti.com/install | bash

At a terminal, the installer starts audienti start for you. Run it yourself any time.

First run

  1. Run audienti start. It opens Audienti in your browser so you can sign in or create an account, then picks your account.
  2. Say yes when it offers setup, or run audienti setup later. Setup asks for your company website, who you sell to, and what you want prospects to say yes to.
  3. Setup drafts your first motion, shows it to you, and asks Create this? before it saves anything.
  4. Connect LinkedIn next. Nothing is sent without your approval.

Without a terminal (scripts and agents), pass answers as flags: audienti setup --url https://acme.com --sell-to "<who you sell to>" --ask "<what they say yes to>" --yes --json. Without --yes, setup only drafts and creates nothing.

Authenticate safely

  1. Run audienti start (or audienti auth login) from a local shell.
  2. Open the printed Audienti URL and finish authentication in the browser.
  3. Check the current auth state with audienti auth status.

Use audienti auth token <token> only when you already have a token from the app. Never paste a real token into docs, prompts, tickets, or shared logs.

Select your account and default user

audienti accounts list
audienti accounts select <acct_id>
audienti users list
audienti users select me

Keep the selected account visible in your workflow. Use --account when a command must run against a different account than your local default.

Start with read-only commands

  • audienti config list shows local CLI configuration.
  • audienti motions list confirms the account's motion surface.
  • audienti prospects list --json gives agent-friendly prospect data.
  • audienti tasks list shows the current user's open reminders.
  • audienti help agent-workflows lists the supported local-agent paths.
  • audienti-mcp starts a local stdio bridge to the app-hosted /mcp endpoint for hosts that support MCP tools.

Use MCP tools

Audienti serves MCP from the app at /mcp. Most local MCP hosts should use the packaged audienti-mcp bridge after the CLI is authenticated and an account is selected.

audienti auth login
audienti accounts select <acct_id>
audienti users select me
audienti-mcp

The bridge reads ~/.config/audienti/config.json, forwards MCP JSON-RPC to the app, and supplies the selected account when a tool call omits account_id. Direct HTTP clients can call POST /mcp with the same bearer token used by the API.

curl https://app.audienti.com/mcp \
  -H "Authorization: Bearer $AUDIENTI_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
  • auth.me confirms the token identity.
  • accounts.list shows accessible accounts.
  • setup.play_preflight returns connected-account readiness, setup or mapping URLs, effective proxy geography, LinkedIn pacing, and outstanding-invitation inventory authority.
  • offers.create, icps.create, and motions.create set up a motion.
  • analytics.stages returns stage conversion cohorts and stage aging.
  • analytics.cohort_lists.create materializes event cohorts as reusable lists.

Common supported workflows

  • Import prospects with audienti prospects import or audienti prospects import-batch --file prospects.csv.
  • Manage person-level suppression with audienti dnc list, audienti dnc add, and audienti dnc import --file dnc.csv.
  • Manage company-level policy with audienti company-rules list, audienti company-rules create, and audienti company-rules apply --all.
  • Manage reminders with audienti tasks list, audienti tasks add, and audienti tasks complete.
  • Inspect analytics with audienti analytics prospects --json or the narrower analytics subcommands.
  • Guide the planner and writer with audienti motions update <motn_id> --approach "Test the premise first". A nonblank Approach enables adaptive planning; --approach "" restores the existing sequence. Existing post-accept action and sending controls still apply.
  • Read planner and writer questions with audienti operator queue, then answer with audienti operator answer <row_id> --choice <id> or --answer "Your guidance". The command refetches the exact row and supplies current fingerprints. MCP clients use operator.row then operator.answer. Answers apply only to that decision; stale answers return 409.
  • Work a prospect the way the Operator buttons do: audienti prospects defer, delay --for <duration>, engage --type <action_type>, queue-draft, rewrite, monitor, reject-selected and intake. Inbox, network and reconciliation rows use audienti inbox-ops reply|adopt|update-filters, audienti network-ops adopt|ignore and audienti reconciliations add-to-motion|ignore. Run audienti help prospects for the full list. These call the same rules as the web buttons, including sender and principal checks.
  • Manage motions in bulk with audienti motions bulk-add-tag|bulk-remove-tag --tag, bulk-update-principal --principal and bulk-update-status --status. Motion health actions are audienti motions refresh-launch-check, refresh-launch-checks, update-premise --premise and retire-strategy --strategy. Blocked status changes are listed with their reason.
  • Run LinkedIn strategy reviews with audienti tools linkedin-strategy-review create --url <linkedin_profile_url>, then list, show <rprt_id> (add --json for the report content) and delete <rprt_id> --confirm yes.

Set account-user automation safety

Resolve one LinkedIn connection through the selected account and account user, inspect it first, preview the proposed change, then apply only after verifying the account and before/after snapshots.

audienti users automation show <account_user_id|me> --platform linkedin --json
audienti users automation update <account_user_id|me> --payload automation-controls.json --json
audienti users automation update <account_user_id|me> --payload automation-controls.json --apply --json

The payload accepts automation_controls, action_limits, and visibility_ramp. Action-limit keys are profile_view, follow, like, invite, message, comment, and aggregate visibility, each with optional hourly, daily, and weekly values. Updates preserve omitted settings and do not persist without --apply.

Build cohort lists for analytics

When a cohort is based on an event, materialize it as a list first. The analytics commands and in-app analytics filters can then reuse the same list instead of redefining the event window by hand.

audienti analytics cohorts create-list --name "Connection requests 2026-07-01 to 2026-07-07" --event connection_request_sent --start 2026-07-01 --end 2026-07-07
audienti analytics dashboard --list <list_id>
audienti analytics prospects --list <list_id> --window 30d
audienti analytics users --user me --list <list_id> --start 2026-07-01 --end 2026-07-31

For prospect, dashboard, and stages analytics, use --cohort-start and --cohort-end for entry-based cohorts. Use analytics cohorts create-list followed by --list when the cohort is event-based, such as people who received connection requests, blank-note requests, replies, accepted connections, or meeting requests during a date range.

Inspect outbound operation outcomes

audienti analytics metrics makes one authenticated request for the account-scoped outbound report. Its cohort is based on events.created_at: root operations created in the selected period, measured by the current outcome across all of their attempts. This is distinct from the AccountProspect.created_at entry cohorts used by dashboard, stages, and prospect cohort analysis.

audienti analytics metrics --cohort-start 2026-08-24 --cohort-end 2026-08-30 --interval daily
audienti analytics metrics --cohort-start 2026-08-24 --cohort-end 2026-08-30 --interval weekly
audienti analytics metrics --cohort-preset week-to-date --user me --motion <motn_id> --play-tag <tag> --list <list_id> --offer <offr_id> --icp <icp_id>
audienti analytics metrics --social-cookie <scok_id> --platform linkedin --action messaging.message_sent --outcome succeeded_after_retry
audienti analytics metrics --cohort-preset week-to-date --json

The six leaf outcomes are first_attempt_success, succeeded_after_retry, failed_without_retry, failed_after_retry, in_progress, and unresolved. The success and failure values are umbrella filters over their corresponding terminal outcomes.

Plain text formats only server-returned cohort ranges, Operations, First-try success, Recovered, Final failures, In progress, Attempts, selected daily or weekly rows, action rows, and account-wide Social Cookie rows. --json prints the API response deeply unchanged. The CLI does not recalculate cohorts, outcomes, counts, or rates.

Safety boundaries

  • Inspect current state before create, update, attach, delete, or outcome writeback commands.
  • Prefer --json when another tool or agent will parse the result.
  • Do not use undocumented API calls when the CLI already has a supported command.
  • Social account passwords, one-time codes, cookies, TOTP secrets, and messaging PINs are never command-line flags. Pipe them in (--password-stdin, --secrets-stdin, --otp-stdin), set AUDIENTI_SOCIAL_PASSWORD or AUDIENTI_OTP_CODE and pass --password-env or --otp-env, or type them at the hidden prompt. The CLI never prints them, and MCP tools do not accept them.

Agent contract

  • Use: choose supported CLI commands or MCP tools for account-scoped inspection, imports, suppression, company rules, tasks, analytics, automation safety, operator queue work, and local agent workflows.
  • Inputs: selected account, API token, default user, target record id, file path, date window, and whether the command is read-only or mutating.
  • Commands: start with audienti auth login, audienti auth status, audienti accounts list, audienti accounts select <acct_id>, audienti users select me, and audienti help agent-workflows.
  • Verify: use --json for machine parsing, confirm the account id in the result, and run a read-only listing or users automation show before mutating account data.
  • Never: paste tokens into shared context, invent undocumented API wrappers, or perform write commands when the user only asked for inspection.