Skip to content

Watches each reply as it comes in and retries it when something goes wrong: an error, an empty reply, a stream that stalls, a reply cut off mid-sentence, or a refusal. Every check, phrase and retry note can be read and changed in its settings.

Published September 25, 2026auto_retry

views
21
downloads
Auto Retry

Auto Retry

ExtensionNo adult content

Spindle extension · works in Lumiverse

Versions · 34

22 earlier

v5.25.1 · November 9, 2026 · Latest

Bug fixes

About

A Lumiverse extension. It re-runs an AI reply when it fails, comes back empty, stalls partway, gets cut off mid-sentence, or refuses by mistake, so you do not have to catch it and press regenerate yourself.

It works alongside Auto Refine. Auto Retry decides whether a reply is worth keeping. Auto Refine improves the ones that are.

Permissions

6 permissions

Granted on install2 permissions

  1. ui_panels

    Open floating widgets and docked panels.

  2. chat_mutation

    Read, add, change and hide chat messages.

Needs an admin to approve4 permissions

  1. generation

    Run text generations for you and see your connection profiles.

  2. chats

    Read, change and delete your chats.

  3. characters

    Read, create, change and delete your characters.

What it adds

5 additions

Found in the extension’s code. Anything named only while it runs is not listed.

  • UI surfaces4
  • Input bar action

  • Drawer tab: Auto Retry

  • Float widget

  • Input bar action: Auto Retry settings

  • Generation hooks1
  • Prompt interceptor

Version and source

2 details · 1 link

Details2 details

  • Version

    5.25.1

  • Minimum Lumiverse version

    0.1.0

Links1 link

What it does

It watches each reply and tries again when:

  • the provider sends back an error (by default it skips errors that will not go away, like a wrong API key)

  • the reply comes back empty, including one that "thinks" but never writes anything

  • the thinking or the reply is one character over and over, like !!!!!!!! (see One character over and over)

  • the reply turns into a jumble of words from several languages run together (see Garbled replies)

  • the reply is cut off mid-sentence (see Cut-off detection)

  • the reply is an accidental out-of-character refusal, or the model breaks off mid-scene
    (see Accidental-refusal detection)

  • a reply never starts, or stops partway and nothing more comes for a while

  • (optional, off by default) the reply is very short

  • (optional, off by default) the model leaves the scene to offer real-world support
    (see Stopping to offer support, and Safety before switching it on)

Also:

  • Every retry waits a little longer than the last, and longer again when the server says it is busy.

  • All the reasons share one retry limit, so no reply is retried more than you allow, and it can never loop forever.

  • (optional, off by default) From the second try, it can send several tries at once and keep the first reply that passes. See Several tries at once.

  • A reply written by Impersonate into your input box is never retried.

Unsupported formatting is hidden here. The original text is preserved in downloads.

Install

  1. In Lumiverse, open Extensions.

  2. Install from this address:

    https://github.com/starlitcode/Lumiverse-Auto-Retry
  3. To see its settings, open the chat input bar, tap Extras, and choose Auto Retry settings.

It works with no setup. Everything else is optional.

You are in control

  • Stop, or Cancel on the retry pop-up, stops it right away. Any waiting retry is dropped, the count resets, and a stopped reply cannot start again by itself.

  • Cancel on the pop-up belongs to the extension, so it always works.

  • To switch it off for one chat, or everywhere, see Turning it off.

Unsupported formatting is hidden here. The original text is preserved in downloads.

More from the README

5 items

  1. Documentation

    • When it retries: cut-off detection and accidental-refusal detection

    • All settings: every option with its default, the panel, and turning it off

    • Several tries at once: what it does, what it costs, and when it is used

    • Buttons it clicks: fixing the regenerate button, Regeneration Feedback, writing selectors

    • The on-screen panel: the log, the prompt viewer and the stats

    • Import and export: moving your setup between devices

    • Reporting a bug

    • Safety: who this is for, the one setting that asks before it turns on, and what the retry loop can turn into

    • Privacy: what the extension can and cannot reach, what it keeps, and how to check any of it

    • Security policy: how to report a security problem

    • Changelog: what changed in every version

  2. How it works

    • It listens to Lumiverse's own generation events. When a reply goes wrong, it presses your swipe or regenerate button to try again.

    • Pressing that button is the only part that depends on the page layout. If a Lumiverse update moves the buttons, Buttons it clicks shows how to point it at the new ones.

    • A small backend keeps your settings with your account, not in one browser, and holds the retry note for the one reply it is meant for.

    • With Several tries at once on, the backend also asks Lumiverse to send the prompt to your model several times, and adds the reply that passes as a new reroll.

    • It makes no network calls of its own. Privacy covers the six permissions it asks for and what still works without each one.

    • The files Lumiverse loads are dist/frontend.js and dist/backend.js. They are plain, readable JavaScript. Nothing is minified. Privacy goes through the rest of the repo file by file.

  3. Help and feedback

    Questions, bug reports and ideas are welcome in my Auto Retry post on the Lumiverse Discord server, or as a GitHub issue. Contributing says what to put in a bug report.

Unsupported formatting is hidden here. The original text is preserved in downloads.