Claude Modsunofficial directory

Interface·terminal·MIT

claude-queue

Prompts typed with /q wait in a stack above the prompt and go out when the turn ends.

Generic Claude Mods cover: the claude-queue repository ships no screenshots

claude-queue holds the message you type while Claude is still working. Type /q and your text: instead of landing inside the running turn next to the next tool result, it waits in a stack drawn above the prompt and goes out when the turn ends, as a turn of its own. A line typed without /q goes into the turn the way it always did.

Stock Claude Code delivers a mid-turn message into the turn, so the model reads it halfway through work it has not finished. With claude-queue the turn ends on what it was asked, and your next thought starts fresh. Each held row has buttons to move it up or down, push it into the turn, edit it or remove it.

What it does

  • Hold a prompt with /q <text>. When nothing is running it is sent at once. /q alone lists what is held; /q status shows one line of state.
  • Reorder with the arrows, or /q up <n>, /q down <n> and /q mv <n> <m>. Entries go out in the order shown.
  • Push one in with the row’s push button or /q now <n>. The entry leaves the stack and rides the running turn’s next tool call as context, which is how Claude Code delivers a mid-turn message. A turn that calls no tool sends it first when it ends. With nothing running it goes to the front and out.
  • Edit a row in place, or /q edit <n> to take it out and put its text back in the prompt box.
  • Remove one with the row’s cross or /q rm <n>; drop the lot with the clear button or /q clear. The send button and /q send flush a stack that is still sitting there while the session is idle.
  • Send as one prompt with the joined option, off by default. It joins every held entry with a blank line into a single message. Set it with /plugin configure claude-queue or in settings.json:
{ "pluginConfigs": { "claude-queue": { "options": { "joined": true } } } }

Install

Needs Claude Code 2.1.272 or later with function hooks enabled and an interactive terminal session. Mouse clicks on the band only reach it under the fullscreen renderer (/tui fullscreen, or CLAUDE_CODE_NO_FLICKER=1); the keyboard reaches it on either.

claude plugin marketplace add galElmalah/claude-queue-plugin
claude plugin install claude-queue@claude-queue-plugin

Ask Claude for something slow, then type /q followed by your next message and press Enter. It appears in the band instead of in the turn. To reach the buttons without a mouse, press ctrl+x tab to move the focus into the band, Tab along the buttons and Enter to press one.

How it works

/q is registered as an immediate command, so it runs while a turn is in flight. The plugin tracks the running turn through turn.start and turn.complete. Every ending of the main turn, an Esc-interrupted one included, sends the first held entry as a plugin prompt once the session is idle, and the next turn.complete sends the next. A subagent’s turn ends inside the session’s own and is ignored.

It hooks prompt.submit only to read the turn id, for a module reloaded mid-turn. Your Enter passes through and the text is not read. It hooks tool.call only to carry an entry you pushed in: it does not read the tool’s input or command, and it leaves the call untouched unless a pushed entry is waiting, in which case it appends your text, with a short framing sentence, to the context the model reads after the tool result.

The stack lives in memory for the session. Nothing is written to disk, nothing goes over the network, and a hot reload of the module empties it. A held prompt costs what any prompt costs; the plugin asks the model nothing on its own.

Limitations

  • A held prompt reaches the model framed as sent by the plugin, and the transcript row shows that framing. Your text arrives whole.
  • Claude Code spaces a plugin’s prompts 5 seconds apart and allows 50 per session, so a stack drains no faster than that. joined pays the wait once.
  • Esc does not hold the stack back. The interrupted turn has ended, so what was queued behind it goes out. Remove it with the cross or /q clear if the interrupt changed your mind.
  • Text only. An image goes into the turn as it always did. The in-band edit field is one line: on a multi-line entry it edits the first line and keeps the rest.
  • Context another plugin attached to a held prompt is not carried.
  • On the classic renderer the band draws but never hears the mouse. Terminal only: nothing is held in claude -p.