Terms follow the Claude Code docs (commands). Terms that are not official are marked informal. Behaviors confirmed by hand are marked tested and link to the tidbit that tested them.
Session
| session |
One open Claude Code window, holding one conversation |
| context |
What Claude remembers in this session. /clear wipes it |
| turn |
One round: you send → Claude works → Claude replies. A turn is made of tool calls and reading any text you typed in the meantime. A skill call always starts a new turn |
| busy / idle (informal) |
Busy = a turn is running. Idle = no turn running. A background tool call does not keep Claude busy |
Commands
| slash command |
Anything typed as /something. Either a built-in (/clear, /compact, /model) or a skill from a plugin or the user (/dev-log) |
| skill |
A custom slash command defined in a plugin or .claude/skills. Running one starts a new turn |
Typing while Claude works
Two questions decide what happens to anything you type:
- Is Claude busy? Busy = a turn is running. Idle = no turn running. A background tool call does not count; a pending AskUserQuestion does.
- What did you type? Plain text, or a slash command.
| Idle |
runs now |
runs now |
| Busy |
joins the current turn, at the next gap between tool calls |
waits; runs after the turn ends |
So mid-turn, text always runs before a queued slash command, whatever order you typed them.
| queue |
One list of everything you typed mid-turn, in the order you typed it |
| text, queued |
Handed to Claude at the next gap between tool calls, inside the current turn. So it is answered before the turn ends, and before any queued slash command — whatever order you typed them (tested, tidbit) |
| slash command, queued |
Waits in the list and runs after the current turn ends, as its own step. A pending AskUserQuestion keeps the turn alive, so a queued /clear waits for your answer (tested, tidbit) |
| text, during a pending question |
Taken as the answer to the question, not queued (tested, tidbit) |
| immediate commands |
A few built-ins never queue: /status, /tasks, /usage |
| send now |
Ctrl+Enter or Ctrl+X Ctrl+S sends queued input right away instead of waiting. Up from an empty input box takes queued items back into the box |