You are browsing as a guest. Sign up (or log in) to start making projects!

abhaysudhir

@abhaysudhir

Joined June 16th, 2026

  • 1Devlogs
  • 2Projects
  • 1Ships
  • 4Votes
Ship Changes requested

What did you make?

QueueIt is a Chrome extension that adds a message queue to AI chat. Normally you send one message, then sit and wait while the model types out its answer before you can send the next. QueueIt lets you keep going: while Claude is replying, you hit Enter and your message lines up as a chip above the composer instead of getting sent. The moment Claude finishes, your next queued message sends on its own. You can line up several follow-ups, walk away, and come back to a full thread of answers. The queue is saved per site, so it survives a page refresh or a browser restart. It works on Claude today and is built model-agnostic, so other chat sites are each just a small adapter away.

What was challenging?

Three things main things. First, claude.ai has its own Enter-to-send handler, so to queue instead of send I had to listen on the document in the capture phase and stop the event before the page ever saw it. Second, knowing when the AI is actually "busy": instead of guessing at network state, I watch the DOM for Claude's Stop button, which is reliable and survives backend changes. Third, sending a queued message has to look like a real user action. Claude's composer is a ProseMirror editor, so I write text through the input events it expects and click the real send button rather than faking a submit. Testing was its own challenge, since the extension only runs on a logged-in site. I built mock chat pages and a Playwright test that loads the actual unpacked extension into a real Chromium and runs the whole flow.

What are you proud of?

The clean model-agnostic design: all the behavior is one engine, and a new site is a single adapter entry (composer, send, and stop selectors) plus a manifest match, not a rewrite. I am also proud that it is genuinely tested end to end in a real browser, not just unit-mocked, including the survives-a-refresh case, and that it has zero runtime dependencies.

What should people know so they can test it?

It loads as an unpacked extension, no build step:
1. Clone the repo, open chrome://extensions, turn on Developer mode, click Load unpacked, and pick the folder.
2. Open claude.ai. Send a message, and while Claude is replying, type another and press Enter. It queues above the box as a chip.
3. When Claude finishes, watch it auto-send. Refresh the page mid-queue to see the queue survive.

It is, however, easier to watch the demo video as it gives you a clear understanding of how QueueIt works.

  • 1 devlog
  • 3h
Try project → See source code →
Open comments for this post

2h 51m 3s logged

QueueIt: the missing queue button for AI chat

You know the dead time when Claude is typing out a long answer and you already know your next two or three follow-ups? You just sit there so you can fire them off one at a time. That always bugged me.

QueueIt kills that wait. While the AI is mid-reply, you hit Enter and your message lines up as a chip above the box instead of getting dropped. The moment the model finishes, the next one sends on its own. Line up your prompts, walk away, come back to a full thread of answers.

What’s working so far

  • Enter queues while the AI is generating, and sends normally when it’s idle, so it never gets in your way
  • Queued messages show as removable chips above the composer, with an auto-send toggle
  • The queue survives a refresh (saved in chrome.storage), so a reload doesn’t wipe your plans
  • Works on Claude today, built model-agnostic so new chat sites are each just one small adapter away

The fun part

claude.ai has its own Enter-to-send handler, so to beat it I listen on the document in the capture phase and stopImmediatePropagation before the page ever sees the keystroke. And instead of guessing when the AI is “busy”, I just watch the DOM for its Stop button. The whole flow is tested end to end in real Chrome with Playwright, including the survives-a-refresh case, on two different composer shapes.

Next up

  • Integrate ChatGPT
  • Drag to reorder queued messages
  • Inline editing of a queued message before it sends
  • More site adapters: Gemini, DeepSeek, Kimi
  • Saved snippets / templates, send pacing, and keyboard shortcuts

It loads as an unpacked extension straight from the repo. Try it and tell me what you’d queue up first.

2
0
202

Followers

Loading…