Xema

Commands

Every xema command, 331 of them, as xema <command> --help describes it. Most need sudo. A command that changes the console's records goes through Manager, as the console does, so the same rules about who may change what apply.

Install and upgrade · The cluster and its nodes · Running services · Backups and data · People · Calls · Integrations and AI · Reports and Live View

Install and upgrade

Put Xema on a server, join it to a cluster, and keep it current.

init

xema init

Set up this server as the first node of a new cluster.

join

xema join

Join this server to an existing cluster and set it up there.

migrate

xema migrate

Bring this node up on this build: another version of Xema converted to it, or a new node joined. Within the installed version, the xema command itself is xema update and its components xema upgrade.

update

xema update

Replace the xema command itself with the channel's newest, within its own version; another version is xema migrate, and Xema's components are xema upgrade.

upgrade

xema upgrade [<components>…]

Upgrade Xema's components and the release's schema changes, within the installed version; another version is xema migrate, and the xema command itself is xema update.

channel

xema channel

Show the release channel this server is recorded as taking releases from.

channel set

xema channel set <channel>

Record the release channel this server takes releases from.

component list

xema component list

What is installed on this server, and what could be.

component install

xema component install <name>

Fetch a component's release and put it in place.

component remove

xema component remove <name>

Take a component's code and unit off this server.

tokens

xema tokens

Show this node's token certificates and client secrets, and say plainly what is missing.

tokens create

xema tokens create

Make the certificates tokens are signed and encrypted with.

tokens secrets

xema tokens secrets

Make the browser apps' client secrets, or replace them without a pause.

keyring

xema keyring

Show this node's key ring certificate, and say plainly when there is none.

keyring create

xema keyring create

Make the certificate this cluster's key ring is encrypted with.

completion

xema completion [<shell>]

Print a shell completion script. xema completion install puts it where bash finds it.

completion install

xema completion install

Tab completion for xema in bash, root's shells included: sudo xema completion install.

The cluster and its nodes

What each server runs, how the servers reach each other, and what they hold.

status

xema status

Show the status of the infra and Xema services (state, start time, CPU, memory).

discover

xema discover [<version>]

Run each version's discovery in order and stop at the last one found, which is this machine's current version; an older one found before it is still on the machine and is discovered too.

nodes

xema nodes

Ask every server in this cluster what it is running.

node roles

xema node roles

Show what this server is meant to run, beside what it actually is.

node role add

xema node role add <role>

Declare that this server should run something.

node role remove

xema node role remove <role>

Declare that this server should not run something.

node apply

xema node apply

Start what this server should run, and stop what it should not.

node address

xema node address <node> [<address>]

Change the address the other nodes reach a node at, for the whole cluster.

node claim

xema node claim

Records this machine as the node its bootstrap file names.

node wire

xema node wire

Write this node's settings from the cluster's wiring.

node files

xema node files

Place the unit, nginx, logrotate and Prometheus files this build carries, and start the host agent.

node check

xema node check

Check this node's token files and nginx files, and say how to put right what is wrong.

node reset

xema node reset

Remove what was set up on this server. Databases, credentials, the key ring and backups are kept.

node enable

xema node enable <node>

Let a node take part in the cluster again: xema node enable mini4.

node disable

xema node disable <node>

Set a node aside, so the cluster gives it nothing to carry: xema node disable mini4.

node start

xema node start [<words>…]

Start services: xema node start bff, or --node mini4 for another node's.

node stop

xema node stop [<words>…]

Stop services: xema node stop dialer --node mini4. Calls a stopped service carries drop.

node restart

xema node restart [<words>…]

Restart services: xema node restart bff --node mini4. Calls a restarted service carries drop.

node ssh

xema node ssh [<state>]

The SSH setting a node holds: xema node ssh. on or off changes it: xema node ssh off --node mini4.

node reboot

xema node reboot

Stop the platform in order and restart the machine: xema node reboot --node mini4. Every call the node carries drops.

node interfaces

xema node interfaces

A node's network interfaces, as SIP capture chooses from them: xema node interfaces.

node capture

xema node capture

Whether a node is capturing SIP, and what: xema node capture.

node capture start

xema node capture start

Start capturing SIP on a node: xema node capture start --port 5060 --record Failed --number 98480. What it keeps is listed by xema node captures.

node capture stop

xema node capture stop

Stop capturing SIP on a node: xema node capture stop.

node captures

xema node captures

The captured calls, newest first, from every node's captures: xema node captures --search 98480 --outcome Failed.

node capture show

xema node capture show <call>

One captured call, every SIP message in it: xema node capture show 01a1….

cluster status

xema cluster status

Show what this server belongs to, and who else is in it.

cluster token

xema cluster token

Mint a single-use pass for another server to join this cluster.

cluster remove

xema cluster remove <node>

Take one server out of this cluster, and give what it held to another.

cluster name

xema cluster name <name>

Name the cluster, as every screen shows it: xema cluster name "Ajmer site".

cluster

xema cluster

The whole cluster: what it is made of, and what each server has made of it.

cluster secret set

xema cluster secret set <purpose>

Record the password this cluster's nodes use for one of its shared parts.

cluster secret clear

xema cluster secret clear <purpose>

Forget a recorded password. The nodes then connect without one.

bff failover

xema bff failover

Move the active BFF to another node. Calls continue; agents' connections move with it.

broker queues

xema broker queues

Show Xema's queues on this broker, with the type each one currently has.

broker queues migrate

xema broker queues migrate

Move Xema's classic queues to quorum, so they survive a broker node going away.

hosts

xema hosts

The hosts every service answers at: xema hosts.

hosts limit

xema hosts limit [<hosts>…]

Limit the hosts to the cluster's own and any named: xema hosts limit, xema hosts limit lb.example.com.

hosts any

xema hosts any

Answer at any host, the default: xema hosts any. The named hosts are kept for a later limit.

hosts add

xema hosts add <host>

Name a host beyond the cluster's own: xema hosts add lb.example.com.

hosts remove

xema hosts remove <host>

Stop naming a host: xema hosts remove lb.example.com. The cluster's own cannot be removed.

cors

xema cors

Which pages may call from another origin: xema cors.

cors add

xema cors add <origin>

Let another site's pages call: xema cors add https://crm.example.com.

cors remove

xema cors remove <origin>

Stop another site's pages calling: xema cors remove https://crm.example.com.

cors any

xema cors any

Let any site's pages call: xema cors any. The origins added are kept for a later limit.

cors limit

xema cors limit

Only the cluster's own pages and those added, the default: xema cors limit.

dns

xema dns

The DNS of the node Manager runs on: xema dns.

dns servers

xema dns servers <servers>

The name servers of the node Manager runs on: xema dns servers 10.0.0.2,10.0.0.3.

dns domains

xema dns domains <domains>

The search domains of the node Manager runs on: xema dns domains site.local.

time

xema time

A node's clock, zone and time sync: xema time, or --node mini4.

time clocks

xema time clocks

Every node's clock against the BFF's: xema time clocks.

time zone

xema time zone <zone>

Move a node to another time zone: xema time zone Asia/Kolkata. Its services keep running.

time sync

xema time sync <state>

Turn a node's time sync on or off: xema time sync on.

time servers

xema time servers [<servers>]

The servers a node takes its time from: xema time servers 0.pool.ntp.org,1.pool.ntp.org. None given hands the question back to the machine's own configuration.

binding add

xema binding add <address> <purpose>

Bind an address on a node to a purpose: xema binding add 10.0.0.5 sip --node mini4 --host-name sip.site.local.

binding remove

xema binding remove <address>

Remove a node's binding: xema binding remove 10.0.0.5 --node mini4. One a trunk uses is refused by Manager.

bindings apply

xema bindings apply

Apply this node's network bindings: the node agent writes the SIP listeners and trunk addresses they name and reloads PJSIP. A listener whose address another program still holds is reported, not forced. Run as root.

bindings

xema bindings

A node's network bindings, what uses each, and whether it has applied them: xema bindings --node mini4.

Running services

Start and stop Xema's services, and read what they log.

start

xema start [<service>…]

Start services. With none named, every Xema service on this node; starting drops no call, so nothing is asked.

stop

xema stop [<service>…]

Stop services. With none named, every Xema service on this node, after asking: the calls they carry drop.

restart

xema restart [<service>…]

Restart services. With none named, every Xema service on this node, after asking: the calls they carry drop.

shutdown

xema shutdown

Stop every Xema service in order, then power the machine off — or restart it with --reboot.

logs

xema logs [<service>]

Show journal logs for the Xema services — a live two-pane browser when run in a terminal.

logs backup

xema logs backup

Copy the logs database, which the conversion does not touch.

crash-reports

xema crash-reports

Browse restart reasons and recent errors for each Xema service.

loglevel show

xema loglevel show [<words>…]

One service's levels, by category: xema loglevel bff.

loglevel set

xema loglevel set [<words>…]

Set categories' levels in one service: xema loglevel set bff Default=Debug Xema.Bff.Queues=Trace. A category set to nothing (Microsoft=) is taken out; the rest of the block is kept.

loglevels

xema loglevels

The services whose log levels can be changed: xema loglevels, or --node mini4.

Backups and data

Backups, the databases, call records, and what comes across from V1.

backup

xema backup

Back up this node entirely: every database on its server that holds a table, the call record where it is on a server of its own, and the files it cannot download again. Each part is taken and reported even when one before it failed, and the exit code is the worst of them.

backup list

xema backup list

xema backup list: every run on this machine, newest first.

backup prune

xema backup prune

xema backup prune --keep N: keeps the N newest complete runs and deletes every run older than them.

files backup

xema files backup

Back up the files this node cannot download again. xema backup runs this after the databases.

metrics backup

xema metrics backup

Copy the metrics database, which the conversion does not touch and which is usually the largest on the server.

database connect

xema database connect

Record how this server reaches its database, check that it works, and set up the schema.

database

xema database

Show what this server is set to connect to. Never the password.

database tables

xema database tables

List the tables V2's schemas own, one per line: server, database and table, separated by tabs. Read from this build's schemas; nothing is written.

database upgrade

xema database upgrade

Apply this release's schema changes: every schema when all of them are additive, or only the schemas named, whatever they change. Components keep the versions they run.

database backup

xema database backup

Copy the databases Database.Migrate converts, before it converts them.

cdr

xema cdr

Show what this node is set to connect to for the CDR. Never the password.

cdr connect

xema cdr connect

Record which database server this node's call record is kept on, and check it works.

cdr backup

xema cdr backup

Copy the call record, which the conversion changes and database backup does not cover.

cdr copy

xema cdr copy

Copy the call record's history from another copy into this node's: for a new ha or dr copy, once its recorder is running. Rows it already has are skipped. Run as root.

cdr columns

xema cdr columns

Each spare column of the call record and the variable it is filled from: xema cdr columns.

cdr column

xema cdr column <column> [<variable>]

Fill a spare column from a channel variable, or leave it empty with no variable: xema cdr column Text1 CUSTOMER_ID. The rest are kept.

cdr script

xema cdr script

The SQL run against the call records once a call is written: xema cdr script. --set script.sql replaces it, an empty file stops it, and --try script.sql runs a script once and undoes it, saying what it would have touched.

v2cdr correct

xema v2cdr correct

Re-key the calls recorded under ids that are not UUID v7, so reports find them. Run as root.

v1cdr migrate

xema v1cdr migrate

Copy V1's call-record history into this build's tables, while V2 serves. Run as root.

v1data migrate

xema v1data migrate

Copy V1's dataset rows into this build's tables, while V2 serves. Run as root.

v1reports migrate

xema v1reports migrate

Convert a converted V1 site's saved reports and post-processing script to this version's call-record tables. Examines and writes the before and after of each, changing nothing, unless --apply or --restore is given. Run as root.

People

Agents, teams, skills, roles and processes, as the console sets them.

agents

xema agents

The agents, their teams and the skills they take calls on: xema agents.

agent show

xema agent show <user-name>

One agent: their name, team, phone, skills and roles: xema agent show vasu.

agent add

xema agent add <user-name>

Add an agent who signs in to an Agent UI with this username and a password: xema agent add vasu --name "Vasu" --team Sales --skill English,Billing, or --like vasu1 for another agent's team and skills.

agent set

xema agent set [<user-name>]

Change an agent: xema agent set vasu --team Sales --add-skill Billing --phone desk. Only what is named changes; the rest is sent back as Manager holds it, since Manager's edit replaces the whole agent.

agent password

xema agent password <user-name>

Set an agent's password: xema agent password vasu.

agent remove

xema agent remove <user-name>

Remove an agent and their sign-in: xema agent remove vasu.

teams

xema teams

The teams, their leads and how many agents each has: xema teams.

team show

xema team show <team>

One team, every field: xema team show Sales.

team add

xema team add [<words>…]

Add a team: xema team add Sales description="Inbound sales" tlUserName=vasu. --process puts it in a process as it is made.

team set

xema team set [<words>…]

Change a team: xema team set Sales enableBarging=on breakPolicy=Suspended. What is not named is kept.

team remove

xema team remove <team>

Remove a team. One with agents in it is refused, with who they are.

team fields

xema team fields

What can be set on a team, and the values each field takes.

skills

xema skills

The skills, and how many agents hold each: xema skills.

skill show

xema skill show <skill>

One skill: xema skill show English.

skill add

xema skill add [<words>…]

Add a skill: xema skill add English description="English-speaking callers".

skill set

xema skill set [<words>…]

Change a skill: xema skill set English name=Hindi.

skill remove

xema skill remove <skill>

Remove a skill.

skill fields

xema skill fields

What can be set on a skill.

roles

xema roles

The roles and what each grants: xema roles.

role show

xema role show <role>

One role, every field: xema role show Supervisor.

role add

xema role add [<words>…]

Add a role: xema role add Supervisor permissions=queues.view,agents.view.

role set

xema role set [<words>…]

Change a role: xema role set Supervisor permissions=queues.view. What is not named is kept.

role remove

xema role remove <role>

Remove a role.

role fields

xema role fields

What can be set on a role.

role permissions

xema role permissions

Every permission a role can grant: xema role permissions.

processes

xema processes

The processes: xema processes.

process show

xema process show <process>

One process, every field: xema process show Renewals.

process add

xema process add [<words>…]

Add a process: xema process add Renewals ownerMayAddAgents=on.

process set

xema process set [<words>…]

Change a process: xema process set Renewals allowListening=on. What is not named is kept.

process remove

xema process remove <process>

Remove a process. Its agents, teams, queues and the rest are kept; only their link to it goes.

process fields

xema process fields

What can be set on a process.

process members

xema process members <process>

What a process holds: its agents, teams, queues, dialers and datasets: xema process members Renewals.

xema process link [<words>…]

Put something in a process: xema process link Renewals agent vasu, or team, queue, dialer, dataset by name.

xema process unlink [<words>…]

Take something out of a process: xema process unlink Renewals queue Sales. The thing itself is kept.

process lead

xema process lead [<words>…]

Set the lead of a team in a process: xema process lead Renewals Sales vasu.

process owners

xema process owners <process>

A process's owners, or its QAs with --qa: xema process owners Renewals.

process owner-add

xema process owner-add <process> <user-name>

Make somebody an owner of a process, or a QA with --qa: xema process owner-add Renewals asha.

process owner-remove

xema process owner-remove <process> <user-name>

Stop somebody being an owner of a process, or a QA with --qa: xema process owner-remove Renewals asha.

process trunks

xema process trunks <process>

The trunks a process takes its calls from, whole or by number: xema process trunks Renewals.

process trunk

xema process trunk [<words>…]

Have a process take a trunk's calls (Vasu, 2026-10-16): xema process trunk Renewals carrier1 for every call on it, or the numbers dialled after the trunk's name for those alone. One process per number; a manager's to set.

process untrunk

xema process untrunk <process> <trunk>

Stop a process taking a trunk's calls: xema process untrunk Renewals carrier1.

breaks

xema breaks

The break types: xema breaks.

break show

xema break show <name>

One break, every field: xema break show Lunch.

break add

xema break add [<words>…]

Add a break: xema break add Lunch kind=Lunch enabled=on.

break set

xema break set [<words>…]

Change a break: xema break set Lunch mandatory=on. What is not named is kept.

break remove

xema break remove <name>

Remove a break.

break fields

xema break fields

What can be set on a break.

schedules

xema schedules

The calling schedules and the dialers on each: xema schedules.

schedule show

xema schedule show <schedule>

One schedule, every field: xema schedule show "Business hours".

schedule add

xema schedule add [<words>…]

Add a schedule: xema schedule add "Business hours" cronStrings='["* 3-12 * * 1-5"]'.

schedule set

xema schedule set [<words>…]

Change a schedule: xema schedule set "Business hours" description=Weekdays. What is not named is kept.

schedule remove

xema schedule remove <schedule>

Remove a schedule.

schedule fields

xema schedule fields

What can be set on a schedule.

agentfeatures

xema agentfeatures

What every Agent UI offers its agents: xema agentfeatures.

agentfeatures set

xema agentfeatures set [<words>…]

Change what Agent UIs offer: xema agentfeatures set callHistory=on myDay=off.

agentfeatures fields

xema agentfeatures fields

What can be set.

busyhours

xema busyhours

The busy hours, and how they are found: xema busyhours.

busyhours set

xema busyhours set [<words>…]

Change the busy hours: xema busyhours set declaredStartHour=9 declaredEndHour=18.

busyhours fields

xema busyhours fields

What can be set.

phones

xema phones

The phones, and how many nodes hold each one's registration: xema phones.

phone show

xema phone show <phone>

One phone: its group, who is on it, and each node holding its registration: xema phone show 1999. Its password only with --password, for typing into the handset.

phone add

xema phone add <phone>

Add a desk phone, which a handset registers as with this number and a password: xema phone add 1999 --node mini1. The password is typed twice, or read from standard input with --password-stdin, and never made up here: somebody has to type it into the handset, so it is theirs to choose.

phone password

xema phone password <phone>

Set a phone's password, which its handset then registers with: xema phone password 1999.

phone remove

xema phone remove <phone>

Remove a phone: xema phone remove 1999.

phone assign

xema phone assign [<words>…]

Assign phones to the node they register to: xema phone assign 1006 1007 --node mini4.

phone unassign

xema phone unassign [<phone>…]

Unassign phones, so every node renders them: xema phone unassign 1006.

plans

xema plans

The plans, what each forecasts, and the terms where none applies: xema plans.

plan show

xema plan show <plan>

One plan, every field, and what it forecasts: xema plan show 3f9c2a.

plan add

xema plan add [<words>…]

Add a plan: xema plan add process=Renewals skills=English demandModel=Growth growthPercent=110 reach=500 reachPeriod=Day. What is not named starts from the terms Metrics uses where no plan applies. No process is every process.

plan set

xema plan set [<words>…]

Change a plan: xema plan set 3f9c2a growthPercent=120. What is not named is kept.

plan remove

xema plan remove <plan>

Remove a plan; its skills are forecast on the next plan that applies, or the defaults.

plan fields

xema plan fields

What can be set on a plan, and the values Manager takes for its choices.

Calls

Trunks, numbers, queues, dialers and the flows a call takes.

trunks

xema trunks

Show each trunk and the node it is connected to.

trunk assign

xema trunk assign <trunk>

Assign a trunk to the node its circuit is plugged into: xema trunk assign 9001 --node mini4.

trunk unassign

xema trunk unassign <trunk>

Unassign a trunk, so no node carries it: xema trunk unassign 9001.

trunk show

xema trunk show <trunk>

One trunk, every field: xema trunk show 9001. Its password is shown, as the console's edit page shows it.

trunk add

xema trunk add [<words>…]

Add a trunk: xema trunk add carrier1 kind=Provider serverIp=10.0.0.5 pilotNumber=4000. xema trunk assign then gives it its node.

trunk set

xema trunk set [<words>…]

Change a trunk: xema trunk set 9001 codecs=alaw,ulaw. What is not named is kept.

trunk remove

xema trunk remove <trunk>

Remove a trunk.

trunk fields

xema trunk fields

What can be set on a trunk.

numbers

xema numbers <trunk>

The numbers a trunk answers and what each starts: xema numbers 9001.

number show

xema number show [<words>…]

One number: xema number show 9001 4000.

number add

xema number add [<words>…]

A number a trunk answers, and the XApp it starts: xema number add 9001 4000 xApp=Welcome enabled=on.

number set

xema number set [<words>…]

Change a number: xema number set 9001 4000 xApp=Sales.

number remove

xema number remove [<words>…]

Stop a trunk answering a number: xema number remove 9001 4000.

number fields

xema number fields

What can be set on a number.

phonegroups

xema phonegroups

The phone groups: xema phonegroups.

phonegroup show

xema phonegroup show <group>

One phone group: xema phonegroup show Reception.

phonegroup add

xema phonegroup add [<words>…]

Add a phone group: xema phonegroup add Reception enableDialing=on dialTrunk=9001.

phonegroup set

xema phonegroup set [<words>…]

Change a phone group: xema phonegroup set Reception enableRecording=on.

phonegroup remove

xema phonegroup remove <group>

Remove a phone group.

phonegroup fields

xema phonegroup fields

What can be set on a phone group.

queues

xema queues

The call queues and the skills they offer calls to: xema queues.

queue show

xema queue show <queue>

One queue, every field: xema queue show Sales.

queue add

xema queue add [<words>…]

Add a queue: xema queue add Sales skills=English,Billing enableRecording=on. --process puts it in a process as it is made.

queue set

xema queue set [<words>…]

Change a queue: xema queue set Sales weight=2 skills=English. What is not named is kept.

queue remove

xema queue remove <queue>

Remove a queue.

queue fields

xema queue fields

What can be set on a queue.

dialers

xema dialers

The dialers and whether each is running: xema dialers.

dialer show

xema dialer show <dialer>

One dialer, every field: xema dialer show Renewals.

dialer add

xema dialer add [<words>…]

Add a dialer: xema dialer add Renewals kind=Progressive trunk=9001 dataset=Leads xApp=Renewals.

dialer set

xema dialer set [<words>…]

Change a dialer: xema dialer set Renewals pace=3. What is not named is kept.

dialer remove

xema dialer remove <dialer>

Remove a dialer.

dialer fields

xema dialer fields

What can be set on a dialer.

dialer start

xema dialer start <dialer>

Start a dialer: xema dialer start Renewals, or --process Collections for one processes share.

dialer stop

xema dialer stop <dialer>

Stop a dialer: xema dialer stop Renewals.

dialer refresh

xema dialer refresh <dialer>

Re-read a dialer's datasets, so rows added since are dialled: xema dialer refresh Renewals.

datasets

xema datasets

The datasets and their rows: xema datasets.

dataset show

xema dataset show <dataset>

One dataset, every field: xema dataset show Leads.

dataset add

xema dataset add [<words>…]

Make a dataset from a CSV, mapping its columns to the dataset's: xema dataset add Leads leads.csv --map mobile=Number,name=Text1,city=Text2. A column is named by its header, or by its number from 1 with --no-headers. One must be the Number. --process puts the dataset in a process.

dataset upload

xema dataset upload <dataset> <file>

Load another file into a dataset, read with the mapping its first file set: xema dataset upload Leads more.csv.

dialouts

xema dialouts

The dial-outs: xema dialouts.

dialout show

xema dialout show <dialout>

One dial-out, every field: xema dialout show Welcome.

dialout add

xema dialout add [<words>…]

Add a dial-out: xema dialout add Welcome trunk=9001.

dialout set

xema dialout set [<words>…]

Change a dial-out: xema dialout set Welcome description="Updated". What is not named is kept.

dialout remove

xema dialout remove <dialout>

Remove a dial-out.

dialout fields

xema dialout fields

What can be set on a dial-out.

callerflows

xema callerflows <queue>

The keys a queue's waiting callers can press: xema callerflows Sales.

callerflow show

xema callerflow show [<words>…]

One key: xema callerflow show Sales 1.

callerflow add

xema callerflow add [<words>…]

A key that switches a waiting caller into a flow: xema callerflow add Sales 1 flow=Callback enabled=on startAtFirstBlock=on.

callerflow set

xema callerflow set [<words>…]

Change a key: xema callerflow set Sales 1 enabled=off.

callerflow remove

xema callerflow remove [<words>…]

Remove a key.

callerflow fields

xema callerflow fields

What can be set on a key.

agentflows

xema agentflows <queue>

A queue's switch-to-flow actions: xema agentflows Sales.

agentflow show

xema agentflow show [<words>…]

One switch-to-flow action: xema agentflow show Sales Survey.

agentflow add

xema agentflow add [<words>…]

An action that switches the call into a flow: xema agentflow add Sales Survey flow=CSAT.

agentflow set

xema agentflow set [<words>…]

Change a switch-to-flow action: xema agentflow set Sales Survey flow=NPS.

agentflow remove

xema agentflow remove [<words>…]

Remove a switch-to-flow action.

agentflow fields

xema agentflow fields

What can be set on a switch-to-flow action.

agentphones

xema agentphones <queue>

A queue's transfer-to-phone actions: xema agentphones Sales.

agentphone show

xema agentphone show [<words>…]

One transfer-to-phone action: xema agentphone show Sales Escalate.

agentphone add

xema agentphone add [<words>…]

An action that transfers the call to a phone: xema agentphone add Sales Escalate phoneId=1006.

agentphone set

xema agentphone set [<words>…]

Change a transfer-to-phone action: xema agentphone set Sales Escalate promptAgent=on.

agentphone remove

xema agentphone remove [<words>…]

Remove a transfer-to-phone action.

agentphone fields

xema agentphone fields

What can be set on a transfer-to-phone action.

audios

xema audios

The prompts and the languages each is recorded in: xema audios.

audio show

xema audio show <audio>

One prompt, every field: xema audio show Welcome.

audio add

xema audio add [<words>…]

Add a prompt: xema audio add Welcome description="Front-door greeting".

audio remove

xema audio remove <audio>

Remove a prompt.

audio fields

xema audio fields

What can be set on a prompt.

audio record

xema audio record <prompt> <language> <file>

Record a prompt in a language: xema audio record Welcome hi welcome-hindi.wav. A recording already there in that language is replaced.

music list

xema music list

The music-on-hold classes: xema music list.

music show

xema music show <music>

One music class, every field: xema music show Default.

music add

xema music add [<words>…]

Add a music class: xema music add Default description="Hold music".

music set

xema music set [<words>…]

Change a music class: xema music set Default description="Hold music". What is not named is kept.

music remove

xema music remove <music>

Remove a music class.

music fields

xema music fields

What can be set on a music class.

music track-add

xema music track-add [<words>…]

Add tracks to a music-on-hold class, played after the ones it has: xema music track-add Hold calm.mp3 bright.mp3.

music track-remove

xema music track-remove <music> <track>

Take a track out of a music-on-hold class: xema music track-remove Hold calm.mp3.

languages

xema languages

The languages and how many prompts each holds: xema languages.

language show

xema language show <language>

One language, every field: xema language show Hindi.

language add

xema language add [<words>…]

Add a language: xema language add Hindi langCode=hi.

language set

xema language set [<words>…]

Change a language: xema language set Hindi name=Hindi. What is not named is kept.

language remove

xema language remove <language>

Remove a language.

language fields

xema language fields

What can be set on a language.

Integrations and AI

Webhooks, CRMs, lookups and the other apps a call can reach, and the AI behind them.

webhooks

xema webhooks

The webhooks: xema webhooks.

webhook show

xema webhook show <webhook>

One webhook, every field: xema webhook show crm-push.

webhook add

xema webhook add [<words>…]

Add a webhook: xema webhook add crm-push verb=post url=https://crm.example/hook.

webhook set

xema webhook set [<words>…]

Change a webhook: xema webhook set crm-push url=https://crm.example/v2. What is not named is kept.

webhook remove

xema webhook remove <webhook>

Remove a webhook.

webhook fields

xema webhook fields

What can be set on a webhook.

webhook enable

xema webhook enable <webhook>

Turn a webhook on: xema webhook enable crm-push.

webhook disable

xema webhook disable <webhook>

Turn a webhook off: xema webhook disable crm-push.

crms

xema crms <queue>

A queue's CRM pages: xema crms Sales.

crm show

xema crm show [<words>…]

One CRM page: xema crm show Sales Lookup.

crm add

xema crm add [<words>…]

A CRM page a queue's agents open: xema crm add Sales Lookup url=https://crm.example/?n={caller}.

crm set

xema crm set [<words>…]

Change a CRM page: xema crm set Sales Lookup reuseTab=on.

crm remove

xema crm remove [<words>…]

Remove a CRM page: xema crm remove Sales Lookup.

crm fields

xema crm fields

What can be set on a CRM page.

lookups

xema lookups

The dataset lookups: xema lookups.

lookup show

xema lookup show <lookup>

One dataset lookup, every field: xema lookup show Welcome.

lookup add

xema lookup add [<words>…]

Add a dataset lookup: xema lookup add Welcome dataset=Leads noOfDigitsToMatch=10.

lookup set

xema lookup set [<words>…]

Change a dataset lookup: xema lookup set Welcome description="Updated". What is not named is kept.

lookup remove

xema lookup remove <lookup>

Remove a dataset lookup.

lookup fields

xema lookup fields

What can be set on a dataset lookup.

jsonapis

xema jsonapis

The JSON API calls: xema jsonapis.

jsonapi show

xema jsonapi show <jsonapi>

One JSON API call, every field: xema jsonapi show Welcome.

jsonapi add

xema jsonapi add [<words>…]

Add a JSON API call: xema jsonapi add Welcome verb=get url=https://crm.example/lookup.

jsonapi set

xema jsonapi set [<words>…]

Change a JSON API call: xema jsonapi set Welcome description="Updated". What is not named is kept.

jsonapi remove

xema jsonapi remove <jsonapi>

Remove a JSON API call.

jsonapi fields

xema jsonapi fields

What can be set on a JSON API call.

customapps

xema customapps

The custom apps: xema customapps.

customapp show

xema customapp show <customapp>

One custom app, every field: xema customapp show Welcome.

customapp add

xema customapp add [<words>…]

Add a custom app: xema customapp add Welcome contextName=my-context.

customapp set

xema customapp set [<words>…]

Change a custom app: xema customapp set Welcome description="Updated". What is not named is kept.

customapp remove

xema customapp remove <customapp>

Remove a custom app.

customapp fields

xema customapp fields

What can be set on a custom app.

callcounters

xema callcounters

The call counters: xema callcounters.

callcounter show

xema callcounter show <callcounter>

One call counter, every field: xema callcounter show Welcome.

callcounter add

xema callcounter add [<words>…]

Add a call counter: xema callcounter add Welcome dataset=Leads noOfDigitsToMatch=10.

callcounter set

xema callcounter set [<words>…]

Change a call counter: xema callcounter set Welcome description="Updated". What is not named is kept.

callcounter remove

xema callcounter remove <callcounter>

Remove a call counter.

callcounter fields

xema callcounter fields

What can be set on a call counter.

xapps

xema xapps

The XApps, by kind: xema xapps.

xapp show

xema xapp show <xapp>

One XApp, every field: xema xapp show Welcome.

aiproviders

xema aiproviders

The AI providers and whether each has a key: xema aiproviders.

aiprovider show

xema aiprovider show <kind>

One AI provider, every field: xema aiprovider show OpenAI.

aiprovider add

xema aiprovider add [<words>…]

Add a AI provider: xema aiprovider add OpenAI settings='{"model":"gpt-4o"}'.

aiprovider set

xema aiprovider set [<words>…]

Change a AI provider: xema aiprovider set OpenAI description=Primary. What is not named is kept.

aiprovider remove

xema aiprovider remove <kind>

Remove a AI provider.

aiprovider fields

xema aiprovider fields

What can be set on a AI provider.

aiprovider key

xema aiprovider key <kind>

Set an AI provider's API key: xema aiprovider key OpenAI, typed unseen, or read from standard input with --key-stdin. Kept by Manager as a secret and never shown again.

aiinputs

xema aiinputs

The AI input agents: xema aiinputs.

aiinput show

xema aiinput show <aiinput>

One AI input agent, every field: xema aiinput show CaptureReason.

aiinput add

xema aiinput add [<words>…]

Add a AI input agent: xema aiinput add CaptureReason aiProvider=OpenAI settings='{"systemPrompt":"Ask why they called"}'.

aiinput set

xema aiinput set [<words>…]

Change a AI input agent: xema aiinput set CaptureReason description=Reason. What is not named is kept.

aiinput remove

xema aiinput remove <aiinput>

Remove a AI input agent.

aiinput fields

xema aiinput fields

What can be set on a AI input agent.

aiagents

xema aiagents

The AI conversation agents: xema aiagents.

aiagent show

xema aiagent show <aiagent>

One AI conversation agent, every field: xema aiagent show Receptionist.

aiagent add

xema aiagent add [<words>…]

Add a AI conversation agent: xema aiagent add Receptionist aiProvider=OpenAI settings='{"systemPrompt":"Greet and route"}'.

aiagent set

xema aiagent set [<words>…]

Change a AI conversation agent: xema aiagent set Receptionist description=Front desk. What is not named is kept.

aiagent remove

xema aiagent remove <aiagent>

Remove a AI conversation agent.

aiagent fields

xema aiagent fields

What can be set on a AI conversation agent.

Reports and Live View

Reports, who they are shared with, and Live View's presets.

reports

xema reports

The reports, their groups and who each is shared with: xema reports.

report show

xema report show <report>

One report's definition, its query among it: xema report show "Agent summary".

report add

xema report add [<words>…]

Add a report: xema report add "Calls by hour" reportGroup=Calls template=generic queryText="select ...".

report set

xema report set [<words>…]

Change a report: xema report set "Calls by hour" filterOptions="from-date;to-date".

report remove

xema report remove <report>

Remove a report.

report fields

xema report fields

What can be set on a report.

report run

xema report run <report>

Run a report: xema report run "Agent summary" --from 2026-10-01 --to 2026-10-15, shown as a table, or written to a file with --csv calls.csv. Each filter is the one its definition offers.

report grant

xema report grant <report> <scope> <who>

Share a report with a user or a role: xema report grant "Agent summary" role Supervisor.

report revoke

xema report revoke <report> <scope> <who>

Stop sharing a report with a user or a role: xema report revoke "Agent summary" user asha.

presets

xema presets

Each subject's default range, and the ranges there are: xema presets.

preset set

xema preset set <subject> <preset>

Set the range a subject opens on: xema preset set queues Today.