Chrome extension for ChatGPT

One chunk at a time.
Every reply checked.

Queue long text to a ChatGPT conversation, wait for each answer, validate the JSON that comes back, and retry what fails.

The extension popup running a project called novel-chapter-01, showing two accepted chunks of nine and a second project waiting for a free tab.

What it actually does

You give it a file describing your chunks and the prompt for each one. It runs them in order and keeps what passes.

Results you can read back

Accepted chunks are stored as complete JSON, previewable in the popup. Copy one chunk, copy the lot, or export the whole run at any point, including a run that is only half finished.

The stored chunk results panel showing the JSON for chunk 0 and buttons to copy or export results.

Files are read in full

When ChatGPT answers with a generated .json file, the extension resolves the file and reads all of it. A long result is never truncated.

Rejections go back with the reason

A failed chunk is resent with the validation errors appended, up to the attempt limit you set. Nothing advances until a reply passes.

Every step is on the record

Submissions, acceptances, rejections and retries are logged with their reason and the route each file was read through, so a slow or stalled chunk can be traced instead of guessed at.

The activity log listing a submission, two acceptances and the file read that backed one of them.

Several projects at once

Each project runs in its own ChatGPT tab. Projects with no tab free stay queued and take over the next one, so the queue drains without more clicks.

The loop it runs

The same four moves for every chunk, in every project, until the queue is empty.

Load

Choose one or more project files. Each one lists its chunks and the exact prompt to send for every chunk. Add more files later while the queue is paused.

No API key. No build step.

Send

The prompt goes into the ChatGPT tab you picked, verbatim, and the extension waits for the answer to finish generating before it reads anything.

You pick the tab, the model and the conversation.

Check

The reply is found by its own project and chunk identifiers, parsed whether it arrived inline, in a code fence or as a file, and checked against the chunk it answers.

A failed check is resent with the errors attached.

Keep

Accepted results are written to extension storage, so closing the popup, switching tabs or reloading the page does not lose the run.

Files reach your disk only if you ask for them.

The acceptance test

A reply is checked, not assumed

Every answer has to prove it belongs to the chunk that asked for it before the queue moves on.

  • It is the right answer The project ID and chunk index in the reply have to match the chunk that was sent.
  • The change log is well formed Each entry needs a supported type, its original and corrected text, the surrounding context, an occurrence number and a reason.
  • The edits reconstruct the text Replaying the change log against the original has to reproduce the corrected text exactly.
  • The edit types are honest A spelling edit touches one word. A punctuation edit keeps the words. A capitalisation edit keeps the content.
{
  "project_id": "novel-chapter-01",
  "chunk_index": 0,
  "corrected_text": "Buổi sáng hôm ấy trời trong.",
  "changes": [
    {
      "type": "spelling",
      "original": "nghĩ hè",
      "corrected": "nghỉ hè",
      "context_before": "về quê ",
      "context_after": ", dọc đường",
      "occurrence": 1,
      "reason": "Sai dấu hỏi/ngã"
    }
  ]
}

The shape every reply has to arrive in. Add an expected_result to a chunk and the answer is compared against it value by value.

Nothing leaves your browser except the prompt you asked it to send.

No server, no account
The extension has no backend of its own and nothing to sign in to.
No analytics, no tracking
Nothing is measured, reported or sold. There is no third party involved.
Storage stays local
The queue and its results live in Chrome's local storage on your computer, and clearing the queue removes them.

Worth knowing before you install

It is not an OpenAI product

StoryRoom Queue is unofficial. It is not affiliated with, endorsed by, or connected to OpenAI. ChatGPT is a trademark of OpenAI, and the name is used here only to say what the extension works with. It uses your own signed-in ChatGPT session in your own browser, and it has no access to any account of yours beyond the tab you point it at.

ChatGPT's interface can change under it

The composer, the send control, message text, file cards and the file viewer are read from the page, and generated files are fetched through endpoints that are not a documented public interface. Results are matched by their own identifiers rather than by page structure, so reading survives most layout changes, but a large enough change to the ChatGPT site will need an update here.

Validation is structural, not editorial

The checks are deterministic: identifiers, shapes, and whether the change log replays into the corrected text. They are not a language-quality judge. A consistent but linguistically wrong edit can pass, and a good correction with imprecise context can be rejected. Read the final text if editorial accuracy matters.

Automating a ChatGPT session is your call to make

The extension drives the ChatGPT web interface on your behalf. OpenAI's terms restrict automated access to the service outside its official API, so whether this is appropriate for your account is a decision only you can make. Nothing about it is hidden: every prompt it sends is one you wrote, in a conversation you chose.

Runs need a tab left open

Keep the ChatGPT tab open and leave that conversation alone while the queue runs. The popup can be closed, and a background alarm keeps a run in a background tab moving, but Chrome can still suspend work while the computer sleeps or if it discards the tab.

Ready when your queue is

Load it unpacked in Chrome, or build the packaged zip from source. No dependencies, no API key, no account.

Get the extension