# Action Commands

To get a list of Actions currently available on your robot write this link in your browser :&#x20;

```
http://{ROBOT-IP-ADDRESS}/api/actions
```

In the list that returns, the two most important elements are "name" and "script". The name is arbitrary, and represents the piece of data you'll use to invoke the Action later. The script attribute represents a simple script of commands to be sent executed on Misty. There are a few things to note about these scripts:

* Each command is uppercase
* Command parameters are specified after the command name, following a colon
* Command parameters are delimited by a comma
* Each command line is terminated with a semi-colon
* Actions prefixed with an octothorpe are treated as cleanup commands executed at the end of the animation (commonly things like RESET-EYES or RESET-LAYERS)

Here's a complete list of commands available to the script.

* ARMS:leftDegrees,rightDegrees,timeMs;
* ARMS-V:leftDegrees,rightDegrees,velocity;
* ARMS-OFFSET:leftDegrees,rightDegrees,timeMs; //offset commands are based off current actuator values
* ARMS-OFFSET-V:leftDegrees,rightDegrees,velocity;
* ARM:left/right,degrees,timeMs;
* ARM-V:left/right,degrees,velocity;
* ARM-OFFSET:left/right,degrees,timeMs;
* ARM-OFFSET-V:left/right,degrees,velocity;
* HEAD:pitch,roll,yaw,timeMs; //use null to not change a degree in head commands
* HEAD-OFFSET:pitch,roll,yaw,timeMs; //use 0 to not change a degree in head commands
* HEAD-V:pitch,roll,yaw,velocity; //use null to not change a degree in head commands
* HEAD-OFFSET-V:pitch,roll,yaw,velocity; //use 0 to not change a degree in head commands
* PAUSE:timeMs;
* VOLUME:newDefaultVolume;
* DEBUG: User websocket message to send if skill is debug level;
* PUBLISH: User websocket message to send;
* LIGHT:true/false/on/off;
* PICTURE:image-name-to-save-to,display-on-screen\[,width,height]; optional width and height resize
* SERIAL:write to the serial stream;
* STOP;
* RESET-LAYERS; //clear user defined web, video, text and image layers
* RESET-EYES; //reset eyes and blinking to system defaults
* HALT;
* IMAGE:imageNameToDisplay.jpg; //displays on default eye layer
* IMAGE-URL:[http://URL-to-display.jpg](http://url-to-display.jpg/); //displays on default eye layer
* TEXT:text to display on the screen;
* CLEAR-TEXT;
* SPEAK:What to say; //can use generic data and inline speech, like 'Speak' in animations
* AUDIO:audio-file-name.wav;
* VIDEO:videoName.mp4;
* VIDEO-URL:[http://videoName-to-play.mp4](http://videoname-to-play.mp4/);
* CLEAR-VIDEO;
* WEB:[http://site-name](http://site-name/);
* CLEAR-WEB;
* LED:red,green,blue;
* LED-PATTERN:red1,green1,blue1,red2,green2,blue2,durationMs,blink/breathe/transit;
* START-LISTEN; //starts trying to capture speech
* SPEAK-AND-LISTEN;
* ALLOW-KEYPHRASE; //"Allows" keyphrase to work, but won't start if Misty is speaking or already listening and will wait until she can to allow keyphrase for the interaction
* CANCEL-KEYPHRASE; //turn off keyphrase rec
* SPEAK-AND-WAIT:What to say, timeoutMs;
* SPEAK-AND-EVENT:What to say,trigger,triggerFilter,text;
* SPEAK-AND-LISTEN:What to say; //starts listening after speaking the text
* FOLLOW-FACE;
* FOLLOW-OBJECT:objectName;
* STOP-FOLLOW;
* DRIVE:distanceMeters,timeMs,true/false(reverse);
* HEADING:heading,distanceMeters,timeMs,true/false(reverse);
* TURN:degrees,timeMs,right/left;
* ARC:heading,radius,timeMs,true/false(reverse);
* TURN-HEADING:heading,timeMs,right/left;
* RESPONSIVE-STATE:true/on/false/off; //if true, this interaction will respond to external bot events and commands, defaults to on
* HAZARDS-OFF;
* HAZARDS-ON;
* START-SKILL: skillId;
* STOP-SKILL: skillId;
* EVENT:trigger,triggerFilter,text;// send an event


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://lessons.mistyrobotics.com/resource-database/action-commands.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
