CWM-1 is available to users on Ultra and Enterprise tiers. See pricing.

There are three ways to use actions and emotions, from fully automatic to fully manual.
1. Action Machine (automatic)
Get the full power of actions with no custom logic required. LemonSlice automatically selects and triggers contextually appropriate actions based on the conversation state. Setmodel and action_engine when creating a session:
Enrich the Action Machine with user state (LiveKit only)
By default, the Action Machine knows two avatar states: IDLING and RESPONDING. You can unlock a third state, LISTENING, by publishing the user’s speech state from your agent code (e.g.,agent.py). This lets the avatar react naturally while the user is speaking.
2. LiveKit data messages (manual, lowest latency)
Trigger actions yourself with full control over timing. LiveKit data messages are approximately 250 ms faster than the REST control endpoint, making them the recommended option for LiveKit users. Setmodel to "cwm-1" when creating a session:
ls.action and a JSON payload containing the action name from the available actions table:
3. Control endpoint (manual, any integration)
Use the control endpoint to trigger actions from any integration (Daily, Agora, WebSocket). If LiveKit data messages are available to you, prefer those for lower latency. Setmodel to "cwm-1" when creating a session:
POST request with the action name. Replace {session_id} with your active session ID and <ACTION_NAME> with any action from the table below.
Available actions
Actions marked with ✅ work best when the avatar is silent. All other actions can be triggered at any time. Select the eye icon to watch an example.| Action Name | Description | Best During Silence |
|---|---|---|
adjust_collar | Adjusts shirt collar/necklace | |
angry | Angry expression | |
arms_crossed | Crosses arms over chest | |
blow_kiss | Blows a kiss | ✅ |
clasp_hands | Clasps hands together | |
clear_action | Ends the current action | |
deep_breath | Takes a slow, deep breath | ✅ |
excited | Excited expression | |
explain | Talking gesture using hands | |
explain_finger_up | Raises a finger to make a point | |
explain_palms_up | Talking gesture with palms up | |
glance_down | Glances downward | |
glance_down_then_rub_eye | Glances down then rubs eye | |
glance_right | Glances to the right | |
glance_side_down_side | Glances to the side then down | |
glance_side_up | Glances to the side then up | |
glance_sideways | Glances to the side | |
glance_up | Glances upward | |
hands_on_hip | Places hands on hips | |
hold_chin | Rests hand on chin | |
laugh | Laughs | |
lean_long | Sustained forward lean | |
lean_slow | Slow, gentle lean forward | |
lean_strong | Pronounced lean forward | |
listen | Acknowledging nods | ✅ |
looking_around | Looks around the room | |
move_more | Pronounced body movement | |
move_subtle | Subtle body movement | |
phone_call | Talks on the phone | |
raise_eyebrow | Raises an eyebrow | |
rub_eye | Rubs one eye | |
rub_eye_then_touch_hair | Rubs eye then touches hair | |
shoulder_shimmy | Playful shoulder shimmy | ✅ |
smile | Warm smile | ✅ |
texting | Texts on the phone | |
tilt_head_right | Tilts head | ✅ |
touch_chin | Touches chin thoughtfully | |
touch_hair | Touches or caresses hair | |
turn_left | Turns body to the left | ✅ |
wave | Waves hello or goodbye | |
yawn | Yawns | ✅ |
Frequently Asked Questions
What happens if I send an action while the Action Machine is running?
What happens if I send an action while the Action Machine is running?
A manual action takes priority. Publishing
ls.action, or sending an action event to the control endpoint, cancels the action the Action Machine is playing and starts yours. When your action finishes, the Action Machine resumes if action_engine is set.How do I stop the current action?
How do I stop the current action?
Send Control endpoint:
clear_action on the same channel you use for other actions. It ends the action in progress and returns the avatar to its default behavior.LiveKit data message on topic ls.action:How long does an action last?
How long does an action last?
Every action plays once for a fixed duration, before the avatar returns to its default state. Trigger the same action again to hold the action or expression longer.
Can I play two actions at the same time?
Can I play two actions at the same time?
CWM-1 plays one action at a time, so
angry and arms_crossed cannot run together. Wait for the current action to finish, or send clear_action before starting the next one.Can I really trigger actions from a single photo?
Can I really trigger actions from a single photo?
Yes, CWM-1 works with any character. Use of actions or emotions does not require any character-specific fine-tuning.

