Audienti CLI
Install, authenticate, and use the supported command-line workflows for agents and operators.
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
- Run
audienti start. It opens Audienti in your browser so you can sign in or create an account, then picks your account. - Say yes when it offers setup, or run
audienti setuplater. Setup asks for your company website, who you sell to, and what you want prospects to say yes to. - Setup drafts your first motion, shows it to you, and asks Create this? before it saves anything.
- 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
- Run
audienti start(oraudienti auth login) from a local shell. - Open the printed Audienti URL and finish authentication in the browser.
- 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 listshows local CLI configuration.audienti motions listconfirms the account's motion surface.audienti prospects list --jsongives agent-friendly prospect data.audienti tasks listshows the current user's open reminders.audienti help agent-workflowslists the supported local-agent paths.audienti-mcpstarts a local stdio bridge to the app-hosted/mcpendpoint 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.meconfirms the token identity.accounts.listshows accessible accounts.setup.play_preflightreturns connected-account readiness, setup or mapping URLs, effective proxy geography, LinkedIn pacing, and outstanding-invitation inventory authority.offers.create,icps.create, andmotions.createset up a motion.analytics.stagesreturns stage conversion cohorts and stage aging.analytics.cohort_lists.creatematerializes event cohorts as reusable lists.
Common supported workflows
- Import prospects with
audienti prospects importoraudienti prospects import-batch --file prospects.csv. - Manage person-level suppression with
audienti dnc list,audienti dnc add, andaudienti dnc import --file dnc.csv. - Manage company-level policy with
audienti company-rules list,audienti company-rules create, andaudienti company-rules apply --all. - Manage reminders with
audienti tasks list,audienti tasks add, andaudienti tasks complete. - Inspect analytics with
audienti analytics prospects --jsonor 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 withaudienti operator answer <row_id> --choice <id>or--answer "Your guidance". The command refetches the exact row and supplies current fingerprints. MCP clients useoperator.rowthenoperator.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-selectedandintake. Inbox, network and reconciliation rows useaudienti inbox-ops reply|adopt|update-filters,audienti network-ops adopt|ignoreandaudienti reconciliations add-to-motion|ignore. Runaudienti help prospectsfor 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 --principalandbulk-update-status --status. Motion health actions areaudienti motions refresh-launch-check,refresh-launch-checks,update-premise --premiseandretire-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>, thenlist,show <rprt_id>(add--jsonfor the report content) anddelete <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
--jsonwhen 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), setAUDIENTI_SOCIAL_PASSWORDorAUDIENTI_OTP_CODEand pass--password-envor--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, andaudienti help agent-workflows. - Verify: use
--jsonfor machine parsing, confirm the account id in the result, and run a read-only listing orusers automation showbefore mutating account data. - Never: paste tokens into shared context, invent undocumented API wrappers, or perform write commands when the user only asked for inspection.