Commands

Commands, also known as console commands and slash commands, are advanced features activated by typing certain strings of text.

Usage
In the client, commands are entered via the chat window, which is displayed by pressing the /  /  or  key. Using the key also enters the forward-slash that commands require as a prefix, so it is a useful shortcut. The and  keys can be used to view previously entered text, including all previously executed commands.

When the cursor is at a location corresponding to some types of argument (such as an ID), a list of applicable values appears above the text box. If the argument is already containing some characters, the list displays only those values containing the typed command/text. Pressing while entering commands cycles through possible commands or arguments, and can be used to auto-enter them.

Commands may also be entered in a multiplayer server's console, but are not preceded by a when entered this way. A server owner running commands in this way is often referred to as "ghosting".

Commands in command blocks can be preceded by a slash, but it is not required.

Commands can be executed in the following ways;
 * Entered by a player in the chat window.
 * Executed by a command block or Minecart with command block.
 * In functions, as part of a data pack or behavior pack.
 * In a multiplayer server, entered in the console.
 * Click a Json text that has "run_command" action.
 * In behavior packs.
 * Executed with a WebSocket server.
 * Executed by an NPC.

Most commands require the executor have a high enough permission level. That means most commands are available in the singleplayer world only if cheats are enabled, and available in multiplayer server only if the player is an operator. See permission level for details.

Note: $$, in singleplayer worlds where cheats were not enabled at creation, they can be enabled on a temporary basis by opening the current game session to LAN play ( → "Open to LAN", then "Allow Cheats" button and "Start LAN World"). The player does not actually need to be on a LAN or have others join. This is not permanent but allows the use of commands until the player quits the world, and changes the player makes via commands (items spawned, etc.) are saved with the world. The player can do this each time the player starts playing the world again. Note that this disables game pausing for the duration, so while open to LAN, the player should get somewhere safe or reload their world before using the Game Menu. The player can disable the LAN world by reloading the world. To permanently enable cheats, the level.dat has to be edited.

$$, cheats can be toggled at any time in the "Game" tab of the settings menu. Enabling cheats in a world permanently prevents players from unlocking achievements in that world, even if cheats are later turned off.

Syntax
$$:
 * {| class="wikitable" style="text-align:center" data-description="Syntax"

! Syntax !! Meaning
 * plain text || Enter this literally, exactly as shown.
 *  || An argument that should be replaced with an appropriate value.
 * [entry] || This entry is optional.
 * (entry || (Required) Pick one of the entries that is shown.
 * [entry || (Optional) Pick one of the entries that is shown.
 * ellipsis ... || Another sub-command is required.
 * }
 * (entry || (Required) Pick one of the entries that is shown.
 * [entry || (Optional) Pick one of the entries that is shown.
 * ellipsis ... || Another sub-command is required.
 * }
 * ellipsis ... || Another sub-command is required.
 * }

$$:
 * {| class="wikitable" style="text-align:center" data-description="Syntax"

! Syntax !! Meaning
 * plain text || Enter this literally, exactly as shown.
 * name: type || An argument that should be replaced with an appropriate value.
 * entry || Pick one of the entries that is shown.
 * || This entry is required.
 * [entry] || This entry is optional.
 * ellipsis ... || Another sub-command is required.
 * }
 * || This entry is required.
 * [entry] || This entry is optional.
 * ellipsis ... || Another sub-command is required.
 * }
 * ellipsis ... || Another sub-command is required.
 * }

Restrictions

 * Some commands have restrictions on who can use the command or in what context.
 * None: The command has no restriction.
 * Cheat only: When executed by a player, the command is available only if cheats is enabled.
 * $$, when cheats is disabled, these commands can't be used by players even if they have a high permission level. $$, if players have a high enough permission level, they can use corresponding commands regardless of whether cheats are allowed.
 * Dedicated server only: The command is available only on a dedicated server.

Result
After trying to run the command comes different results, including "unparseable", "failed", "successful", "error", and "Terminate".


 * Unparseable
 * If the entered command is incomplete or the arguments do not meet required argument types, the command is unparseable.
 * When typing a argument into the chat bar, it's noticeable if an argument does not meet the required argument type.
 * $$, if not meet, the argument is marked red and an syntax error message is displayed.
 * $$, when typing in chat bar, if an argument meets the requirements, the next argument in grammar hints turns white from gray. If all arguments (including optional arguments) are entered, the whole grammar hint turns gray from white.
 * $$, it behaves the same as typing in the chat bar when typing in a command block.
 * $$, when entering into a command block, if the command is unparseable, an syntax error message is outputted into its output box after closing the command block screen.
 * When trying to execute an unparsable command, an error message is displayed.
 * $$, it is "Unknown or incomplete command" or "Incorrect argument for command".
 * $$, it is "Unknown command" or "Syntax error: unexpected ... at ...".
 * If a command in a function file is unparsebale, the function is unable to loaded in game.


 * Failed and successful
 * A command's Success Conditions must be met in order for the game to consider the command "successful". This is used to determine a variety of things, such as the output of a redstone comparator feeding from a command block with a command. Note that not all "successful" commands actually do something, and not all "failed" commands fail to do something useful.


 * Error
 * If an error occurs with the command, it means that there's a noticeable bug on this command.


 * Terminate
 * When running a command, if the subcommands specifies 0 execution context, the command does nothing and doesn't output anything.
 * For example: in a command block.

List and summary of commands
The table below summarizes all commands.

Hidden commands
These commands are unavailable in general cases. Most of them can be accessed with a Websocket Server.

Developer command
Developer commands are only enabled in internal development builds of Bedrock Edition, and are not normally present in release versions.

Agent commands
Superseded by