Skip to main content

StateSet ResponseCX CLI

AI-powered CLI for managing the StateSet ResponseCX platform. Chat with an AI agent that can manage your agents, rules, skills, knowledge base, channels, messages, and more — all from the terminal. Includes optional WhatsApp and Slack gateways for connecting your agent to messaging platforms.

Install

Or clone and build locally:

Quick Start

Authentication

The CLI supports two authentication methods: Browser / Device Code (recommended)
Follow the prompts to authenticate via your browser. The CLI will receive a scoped token automatically. Manual Setup During response auth login, you can provide your GraphQL endpoint and admin secret directly. Credentials are stored in ~/.stateset/config.json with restricted file permissions (600).

Multiple Organizations

Usage

Interactive Chat

The agent understands natural language. Ask it to list your agents, create rules, search the knowledge base, etc. Session commands:
CommandDescription
/helpShow available commands
/clearReset conversation history
/historyShow conversation turn count
/modelSwitch model (sonnet, haiku, opus)
exitEnd the session
Multi-line input is supported — end a line with \ to continue on the next line. Press Ctrl+C to cancel the current request.

WhatsApp Gateway

Bridge incoming WhatsApp messages to your StateSet Response agent.
On first run, scan the QR code with WhatsApp (Settings > Linked Devices > Link a Device). Auth state is persisted in ~/.stateset/whatsapp-auth/. Options:
Examples:

Slack Gateway

Bridge Slack messages to your StateSet Response agent via Socket Mode.
Setup:
  1. Create a Slack app at https://api.slack.com/apps
  2. Enable Socket Mode (Settings > Socket Mode)
  3. Generate an app-level token (xapp-...) with connections:write scope
  4. Add Bot Token Scopes: chat:write, app_mentions:read, im:history, channels:history
  5. Install the app to your workspace
  6. Set environment variables:
Behavior:
  • In DMs: responds to all messages
  • In channels: responds when @mentioned or in threads the bot has participated in
Options:

Environment Variables

VariableRequiredDescription
ANTHROPIC_API_KEYYesAnthropic API key for Claude
STATESET_INSTANCE_URLNoStateSet ResponseCX instance URL
STATESET_GRAPHQL_ENDPOINTNoGraphQL API endpoint
STATESET_KB_HOSTNoKnowledge base (Qdrant) host URL
SLACK_BOT_TOKENSlackBot User OAuth Token (xoxb-...)
SLACK_APP_TOKENSlackApp-level token for Socket Mode (xapp-...)
OPENAI_API_KEYKBOpenAI API key for knowledge base embeddings

Available Tools

The AI agent has access to 80+ tools organized by resource type:

Agents

list_agents get_agent create_agent update_agent delete_agent bootstrap_agent export_agent

Rules

list_rules get_agent_rules create_rule update_rule delete_rule import_rules bulk_update_rule_status bulk_assign_rules_to_agent bulk_delete_rules

Skills

list_skills get_agent_skills create_skill update_skill delete_skill import_skills bulk_update_skill_status bulk_delete_skills

Attributes

list_attributes create_attribute update_attribute delete_attribute import_attributes

Examples

list_examples create_example update_example delete_example import_examples

Evaluations

list_evals create_eval update_eval delete_eval export_evals_for_finetuning

Datasets

list_datasets get_dataset create_dataset update_dataset delete_dataset add_dataset_entry delete_dataset_entry

Functions

list_functions create_function update_function delete_function import_functions

Responses

list_responses get_response get_response_count bulk_update_response_ratings search_responses

Knowledge Base

kb_search kb_upsert kb_update kb_delete kb_get_collection_info kb_scroll

Channels

list_channels get_channel get_channel_with_messages create_channel update_channel delete_channel get_channel_count

Messages

list_messages get_message create_message update_message delete_message search_messages get_message_count

Settings

list_agent_settings get_agent_settings update_agent_settings get_channel_settings

Organizations

get_organization get_organization_overview update_organization

Architecture

The CLI uses the Model Context Protocol (MCP) to expose platform tools to Claude. On startup, the CLI spawns an MCP server as a child process over stdio. Claude calls tools through this server, which executes GraphQL queries against the StateSet backend.
The WhatsApp and Slack gateways create per-user agent sessions with the same architecture. Sessions have a 30-minute TTL and are automatically cleaned up.

Development

License

MIT