Menu

WaxFrame puts multiple AI assistants to work on your document at the same time. One acts as the Builder — writing and refining. The rest act as Reviewers — giving specific, numbered suggestions. Round by round, your document gets better. Whether you're starting from scratch, refining an existing document, or generating the text for a presentation or any other format — the hive handles it.

New here? Open the Menu for the User Manual, API setup guide, and more.

WaxFrame
Many minds, one refined result.
Setup — Step 1 of 5

Your Worker Bees

Each AI in your hive acts as a reviewer — it reads your document and suggests improvements each round.

Set up at least two AIs to continue. Three or more is recommended — with three or more reviewers the hive can resolve disagreements on its own; with only two, you'll occasionally have to break a tie yourself.

Click any AI card below to set it up. New here, or wondering what it costs to run? Tap the next to the heading above — cost, keys, and the full setup guide all live there.

WaxFrame
Many minds, one refined result.
Setup — Step 2 of 5

Choose Your Builder

The Builder is the AI that actually rewrites your document each round. While your reviewers give numbered suggestions, the Builder reads all of those suggestions plus the full document, then produces the updated version. Because it handles the entire document every single round, the Builder uses significantly more tokens than reviewers — it must have a paid API subscription with enough capacity. Choose an AI you trust with large documents. You can change your Builder any time from the work screen.

Think of the Builder as a handyman as well as a synthesizer. Between full rounds, you can write a quick directive in the Notes drawer — "rewrite the first paragraph," "stop using the word 'refine' so much," "tighten paragraph three" — and click Send to Builder to have it perform just that one task without running the full hive. Saves tokens and time. Then click Smoke the Hive when you want the reviewers to weigh in on the change.

💡 Claude, ChatGPT, Gemini, and DeepSeek all handle large documents well — DeepSeek in particular is extremely cost-effective as a Builder. Avoid free-tier AIs as Builder — they run out of tokens fast. If a round fails with a missing output structure error, try switching to ChatGPT or Gemini. Learn about tokens and how to save money →

WaxFrame
Many minds, one refined result.
Setup — Step 3 of 5

Your Project

This is the most important page in the whole setup. This section defines what your project is all about. Every AI sees this information on every round — it's their entire understanding of what you're trying to build. The more specific you are the better your project will be (garbage in, garbage out). A few extra minutes here pays off in every round that follows.

New to WaxFrame? Click 📋 Use Template above, pick Starting from scratch, then choose ⭐ Quick Start — a small, low-stakes project where the hive writes and refines a real chocolate-chip-cookie recipe across a few rounds. Same complete flow as a job description or business proposal; the topic is just harmless enough to focus on learning the workflow. Once done, come back and pick the template that matches your real document.

Fields marked * are required to continue.

What kind of document is this? Be specific — cover letter not document. This is the first thing every AI reads and it sets the format, length, and tone for the whole session. If there is one thing the AIs should never forget, put it here.

Who will read this? The AIs use this to calibrate tone, vocabulary, and how much to explain. IT Director and VP of Facilities gives very different results than general public. The more specific you are, the more consistent every round will be.

What do you want to happen after someone reads this? Approve the budget, schedule an interview, understand the three options and pick one. This is the finish line the AIs are working toward. Vague here means vague everywhere — this field has more impact on quality than any other.

Draw the fence. AIs expand into adjacent topics unless you explicitly stop them. Cover both sides — what must be included and what must not be included. Example: wireless networking only — no switching, routing, or security products.

How should it sound? A few adjectives — professional, confident — is a floor that works but leaves a lot open to interpretation. Richer is better: Direct and confident, not stiff — like a peer they'd want to work with. Say what to sound like, what to avoid, and who's reading. Bland inputs produce inconsistent outputs across rounds.

Hard rules that must survive every round — things the AIs should always or never do. Example: do not add new sections, always use Oxford commas, never change the numbers in the cost table. You can also use the Notes drawer on the Work screen for one-round-only instructions.

Length Constraint

Pick a mode that matches what your document needs. The Builder is told the rule for the mode you choose, and round-end and convergence-time guards fire accordingly.

Refine rounds will receive

Your assembled goal is under 300 chars — the full text will be sent each refine round.
WaxFrame
Many minds, one refined result.
Setup — Step 4 of 5

Reference Material

Optional. Source material The Hive will reference on every round but never edit — job descriptions (rules and responsibilities), RFP requirements, style guides, scoring rubrics, prior decisions, vendor claims. Distinct from Notes (round-to-round directives) and from your Starting Document (the document under construction).

📚 Total reference size 0 docs Chars: 0 Words: 0 Tokens (est.): 0
Paste Text
Click to add a new reference and paste your content into it
Upload File
Drag & drop or click to browse — Word (.docx), PDF, PowerPoint (.pptx), Excel (.xlsx, .xlsm), .txt, .md
No reference material yet.
WaxFrame
Many minds, one refined result.
Setup — Step 5 of 5

Starting Document

Three buttons below let you choose where your starting document comes from. Click Upload File to upload a Word doc, PDF, or other file you already have. Click Paste Text to paste text directly. Click Start from Scratch if you want the hive to generate a first draft using only your project goal.

Click the area below to browse for a file, or drag and drop one directly onto it.

Drag & drop or click to browse
Supports Word (.docx), PDF, PowerPoint (.pptx), Excel (.xlsx, .xlsm), plain text (.txt), or Markdown (.md)
1
Starting from Scratch
WaxFrame will ask all your AIs to create a first draft based on your project goal. Make sure your goal is detailed — the more specific you are, the better the first draft will be.
Project
Round 1 — Draft
The Hive
Conflicts
No conflicts yet — run a round to see what the Builder couldn't resolve.
📄 Working Document
ROUND
00:00
READY
PROJECT
00:00:00
🖥️ Live Console
Legend: ■ Round ■ Sending ■ Response ■ Success ■ Warning ■ Error ■ Info
Console ready — Smoke the hive to begin.
WaxFrame
Many minds, one refined result.
Settings

Settings

Your preferences are saved in this browser and apply to every project on this machine. Changes save automatically.

⚡ Auto Mode

How the hive behaves during hands-off Auto runs. These only take effect while Auto is on.

Backup Builder If your Builder errors out or goes slow during an Auto run, WaxFrame promotes this AI to Builder so the run continues instead of stopping. Choose "None" to have Auto pause and ask you instead.
Never disable the Builder Keep the Builder in the run even if it's slow or throwing errors. Waiting on the Builder is usually better than losing it mid-run — turn this on if your Builder is reliable but occasionally slow.
Failure-streak limit How many rounds in a row can fail before Auto pauses and asks you what to do. A single clean round resets the count, so an early blip won't halt a healthy run later.
Slow-responder threshold A reviewer is flagged "slow" when it takes longer than this multiple of the round average, for this many rounds in a row. During Auto, slow reviewers are auto-disabled so the run keeps moving (you're notified by a toast).
× avg, for rounds
Length-guard reround attempts When the hive converges but the result is over or under your length limit, Auto sends the document back to the Builder to trim or expand, then runs another round. This is how many times it will try before giving up and asking you. A clean in-range result stops the loop early.
Reset Auto settings Restore every Auto Mode option above to its built-in default (Backup Builder: none · Never disable Builder: off · Failure-streak limit: 2 · Slow threshold: 3× / 2 rounds · Reround attempts: 2).

🔍 Vision / OCR

Which AI reads text out of scanned or garbled PDFs — used by the "Re-extract with AI Vision" button and the automatic pass on image-only pages. It uses that provider's configured model.

OCR provider "Automatic" uses the first vision-capable AI you have a key for (ChatGPT, Claude, Gemini, or Grok, in that order). Pick a specific one to always use it for OCR. If your pick isn't keyed, WaxFrame falls back to Automatic so extraction never fails.

More sections (autosave frequency, and more) are on the way. The Auto behavior that consumes these options ships alongside the "Auto really means Auto" work.

Smoking…
Smokin' the Hive…
Beekeepers smoke their hives to calm the bees before working with them. We do the same — a little smoke settles the hive so they can focus on your document.
📝 Notes Directions for the Builder only — never sent to reviewers.
🎯 This-round notes Auto-clears after the Builder uses them on the next round.
Templates:
📌 Standing notes Apply every round, every Builder. Persist until you clear them or start a new project.
📚 Reference Material Source material The Hive will reference on every round but never edit. Edits apply to the next round.
0 docs Chars: 0 Words: 0 Tokens (est.): 0
No reference material yet.
To upload files, use Setup 4 — Reference Material from the menu.
Add a Custom Worker Bee
Connect any OpenAI-compatible, Anthropic, or Google endpoint
PNG/JPEG/WebP · 256×256 recommended · auto-resized
What goes in each field?
Quick reference for filling out the Add a Custom Worker Bee form
If you're not sure where to start: pick your provider from the Quick Add dropdown. It pre-fills the URL and API Format for you and shows a link to where you get an API key. Quick Add covers the most common providers; for anything else, fill in the fields manually.

URL

The full address of the provider's chat-completions endpoint. Most OpenAI-compatible providers end with /v1/chat/completions. Examples:

  • https://api.mistral.ai/v1/chat/completions
  • https://api.together.xyz/v1/chat/completions
  • http://localhost:11434/v1/chat/completions (Ollama running locally)

Anthropic and Google use different URL shapes — Quick Add handles those automatically.

API Format

How the provider expects requests. Most providers (Mistral, DeepSeek, Together, Cohere, Ollama, LM Studio, etc.) speak OpenAI compatible. Anthropic and Google have their own formats — pick those only if you're connecting directly to them.

API Key

The secret token the provider gave you when you signed up. Usually starts with a prefix like sk-. Local providers (Ollama, LM Studio) don't need a key — leave blank. Your key is stored in your browser only and never sent anywhere except the provider's own endpoint.

Model

The specific model on that provider's API. Click Fetch Models after entering the URL and key — WaxFrame will pull the live list and ask the provider which model is best as a Reviewer (✨) and which is best as a Builder (🔨). You can pick any model from the list.

My provider isn't in Quick Add

Most providers WaxFrame doesn't list still work — they just need to be filled in manually. If the provider's docs say "OpenAI-compatible," set API Format to OpenAI compatible and use whatever URL their docs give you. If it's not OpenAI compatible, you'll need a provider that is, or wait for WaxFrame to add native support.

Import from Model Server
Fetch all models from a local or enterprise AI server and add them in bulk

WaxFrame auto-detects common model brands (Claude, ChatGPT, Gemini, Grok, DeepSeek, Perplexity, Mistral, Cohere, Llama) from the model name. For anything else — including models routed through a server runtime like Alfredo, LM Studio, Open WebUI, or Together — pick a default icon below or upload your own. If you skip this, the generic icon is used.

PNG/JPEG/WebP, 256×256 recommended · auto-resized · stored locally
What you'll need

Import from Model Server works with any AI platform that exposes an OpenAI-compatible chat completions API. Fill in the three fields on the left and click Fetch Models.

Chat Endpoint
The URL WaxFrame sends chat requests to. For Open WebUI this typically ends in /api/chat/completions. For Ollama and LM Studio it ends in /v1/chat/completions.
Models Endpoint
The URL WaxFrame queries for the list of available models. For Open WebUI this is /api/models. For Ollama it is /api/tags. For LM Studio it is /v1/models.
API Key
Required for most enterprise servers as a bearer token. Leave blank for local development servers that do not require authentication.
Not sure what to enter? Pick a preset from Quick Add to auto-fill a matching endpoint pattern, then adjust the base URL to match your server. If you are connecting to an enterprise platform at work, ask your IT team for the chat completions endpoint and the authentication method.
Endpoint
Status
Received
Something went wrong
Models will appear here
After you click Fetch Models, the available models from your server show up here so you can pick which ones to add to your hive.
Nothing is selected by default — most server lists contain models that aren't useful for document review. Pick the ones you want, then click the icon thumbnail on each row to customize it (auto-detected from the model name otherwise).
Choose an Icon
Pick a bundled icon or upload your own — your choice is saved with this AI.

Pick any image file (PNG, JPG, SVG, WEBP). It'll be resized to 256×256 max and stored inline with the AI — no external URL, safe for air-gapped networks.

Round History
Click any round to restore that version of the document
No completed rounds yet. Each round is saved here automatically.

🏁 Project Complete!

Export your document before starting a new project — your working document and round history will be cleared when you do. If you want to review which reviewers were still suggesting changes (the holdouts), make a manual edit, or run another round before exporting, click ← Back to Hive at the bottom.

WaxFrame Pro

Enter your license key to continue.

Don't have a key? Buy WaxFrame Pro →

Manage License

Your WaxFrame Pro license is active.

••••••••-••••••••-••••••••-••••••••

Change Builder

The Builder rewrites the document each round. Choose an AI with a paid API key and enough token capacity. Cost note: the Builder reads project setup, reference material, the full working document, and every reviewer's suggestions every round — switching to a premium model here can raise per-round cost significantly. If you've enabled billing on Google AI Studio, Gemini-as-Builder bills per token.

Confirm

⏸️

Auto paused

Auto stopped.

📏 Round exceeds length limit

Prior document
This round
Target limit
Trajectory
Distance from target

Discard rejects the round (default). Keep accepts this round's output as the new document, but the guard stays active for future rounds. Continue anyway accepts and disables the length guard for the rest of this project — useful when the guard's target doesn't match what the document actually needs to be.

🐝 Edit Hive

Toggle AIs on or off for this session. AIs without a saved API key are skipped automatically.

⚠️ Round Not Saved

Note: This round was not saved to your history, but your API request was still processed and tokens were consumed.

🩺 Something went wrong


        

🔬 Deep Dive Capture Viewer 0 rounds

Deep Dive is OFF — turn it on in the Dev Toolbar to start capturing rounds.

Time AI Provider Model Elapsed Chars Words Finish
No captures yet.

Remove this reference?

📊 Select sheets

What gets converted: Cell values (formulas evaluated to displayed values), merged cells flattened by repetition, embedded comments, defined names. What's skipped: Cell colors and conditional formatting, embedded images and charts (data labels are captured), pivot table source data (cached display values shown), hidden sheets, and macros.

⚠️ You haven't exported anything yet

If you start a new project now, your working document and round history will be permanently discarded. Export the document and / or full transcript first if you need them.

📋 Project Summary

Project setup (read-only — edit on the Project screen)
ⓘ

About Your Project Goal

This is the most important section of the entire setup. Every AI in your hive reads these six fields before touching your document — it is the only context they have about what you actually want. Vague fields produce a vague document. Specific, detailed fields produce something you can use.

You do not need to fill all six — even two or three give the hive a strong foundation. Fill them top to bottom. Each one controls a specific dimension of the output:

Document type Sets the format, length conventions, and depth. Be specific — cover letter not document, technical comparison not report. If there is one thing the AIs must never forget, put it here.
Target audience Calibrates tone, vocabulary, and how much to explain. IT Director and VP of Facilities produces very different results than business audience. Name the seniority, technical level, and any split audience.
Desired outcome The finish line. This is the field with the most impact on quality — every suggestion and every rewrite is working toward this. Approve the budget, schedule an interview, pick one of the three options. Vague here means vague everywhere.
Scope & constraints Draws the fence. AIs expand into adjacent topics unless you stop them. Cover both sides — what must be included and what must not be. Wireless only — no switching, routing, or security products.
Tone & voice Prevents style drift across rounds when different AIs are writing. Two or three words is enough — confident, direct, no jargon or warm, conversational, no bullet points.
Additional instructions Hard rules that must survive every round — things the AIs must always or never do. Do not add new sections. Never change the numbers in the cost table. Always use Oxford commas.

💡 The goal works the same way whether you are uploading a file, pasting text, or starting from scratch. The AIs have nothing else to work from — no internet access, no knowledge of your organisation, no understanding of what you want unless you put it here.

Testing API keys…
Click any row to see what was sent and received
AI
Sent
Click a row to see the request.
Received
Click a row to see the response.
ⓘ

Test All Keys — Troubleshooting

The Test All Keys check sends a one-word prompt (Reply with exactly one word: CONNECTED) to every saved AI and reports the result. A red ✗ means something blocked the request. Use the table below to identify the cause from the row's status code, then jump to the matching provider billing console at the bottom of this guide.

Red ✗ on a row The API call returned a non-2xx response, or the network call itself failed. Click the row to load the raw status and response body in the Received pane on the right — the error message there will be one of the cases below.
HTTP 401 — Unauthorized The API key is invalid, expired, revoked, or wasn't sent. Most often this means the key was copy-pasted with extra whitespace, or the provider rotated keys after a billing event. Open the provider's console (links below), generate a fresh key, paste it back into the AI's row in Setup 1.
HTTP 403 — Forbidden The key authenticated, but the provider refused to fulfill the request. Almost always a billing/permissions issue — payment method missing, credit balance exhausted, or organizational restrictions on the API key. Open the provider's billing console and confirm there's credit on file.
HTTP 429 — Rate Limited You've sent more requests than your plan allows in the current time window. Common error phrases: "rate limit exceeded", "Some resource has been exhausted", "quota exceeded". Wait a few minutes and retry. If you hit 429 during normal WaxFrame use, your plan tier is too low for your hive size — upgrade the plan or reduce the bee count.
CORS error The browser blocked the response because the API endpoint didn't return an Access-Control-Allow-Origin header that permits weirdave.github.io. WaxFrame runs entirely in your browser and cannot bypass CORS. You'll see this almost exclusively with custom endpoints — internal company gateways like Alfredo, self-hosted Open WebUI / Ollama, or other proxies that haven't whitelisted browser origins. Fix is on the gateway side: have the operator add Access-Control-Allow-Origin: * (or specifically https://weirdave.github.io) to the gateway's CORS configuration. The 6 default providers all have CORS pre-configured.
Network timeout / network error The browser couldn't reach the endpoint at all. Could be DNS, a corporate firewall, VPN interception, the network being down, or the endpoint server itself being unresponsive. Verify you're online, double-check the endpoint URL in Setup 1 is correct, then retry — most network errors are transient.
Empty / malformed response The endpoint returned 200 OK but the body was empty, truncated, or not in the JSON shape WaxFrame expected. Click the row to see what was actually returned. Usual culprits: rate-limit messages buried inside 200 responses, HTML error pages from misconfigured proxies, or model-name typos that cause provider-specific empty replies.

💡 Provider billing & console links — open the right one for whichever AI is failing.

💡 Custom AIs added via Add Custom AI or Import from Model Server won't appear above — only the 6 default providers have known billing URLs. For custom endpoints, billing/permissions are handled wherever you got the endpoint from.

Error Detail
Raw API Response

      
Testing API Key…
Sending a minimal test request…
AI
Sent
Endpoint
Request body
Received
Status
Response body
ⓘ

How the Hive Works

Every WaxFrame session has two AI roles and one document, processed in rounds. Each round is the same loop: reviewers read, Builder rewrites, you decide what to keep.

Reviewers (Worker Bees) Each reviewer reads the current document independently and produces a numbered list of specific suggestions — wording fixes, missing context, structural issues, factual concerns. Reviewers don't see each other's output. They write in parallel, which keeps their perspectives genuinely independent.
Builder The Builder reads all of the reviewers' suggestions plus the full document, then produces the rewritten version. It also flags any suggestions where reviewers disagreed (the Conflicts panel) so you can decide which option wins. Because the Builder rewrites the whole document every round, it uses significantly more tokens than reviewers — pick a paid plan with capacity.
Rounds A round runs all reviewers in parallel, then the Builder. You read the result, resolve any conflicts, optionally add Notes for the next round, and run again. Documents typically converge in 5–20 rounds depending on starting quality and complexity.
Convergence tip Starting from a blank page often converges faster than refining a heavily misaligned existing document. If your current draft fights the document's actual purpose, the hive will spend rounds debating reframing rather than building. When in doubt, start fresh and let the hive build it correctly the first time.
Notes & Reference Material Two ways to steer mid-stream: Notes are per-round directives (e.g., "lock the company name spelling exactly as written"). Reference Material is source-of-truth content the hive consults but never edits (job descriptions, style guides, prior drafts). Both are injected directly into every reviewer and Builder prompt for the round.

💡 Quoting exact contested text in Notes is more reliable than citing line numbers — line numbers shift as the document evolves.

ⓘ

What's in the Menu

The Menu is the navigation drawer you'll find at the top-left of every screen. The top section jumps you between setup screens and the Working Console; below that, four grouped sections hold tools, documentation, and advanced features. None of it is required to run a round, but most of it earns its place once you've used the app for a while.

🛒 Buy a License A pinned button at the bottom of the menu, shown while you're on the free trial. Buys a WaxFrame license key via Gumroad — every installation includes three free trial rounds, and a one-time license unlocks unlimited rounds. Once your license is active, this button disappears. Opens in a new tab.

Navigation

Home + Setup 1–5 + Working Console Direct jumps to every screen in the flow. Useful for going back to fix something — change the Builder, add another reviewer, edit the project goal — without rewinding through the rest of the setup. The active screen is highlighted so you always know where you are.

Tools

⏱ Round History Browse every completed round in the current session — see the document at each round, every reviewer response, the Builder's resolutions, and any USER DECISION blocks. Export the full transcript as a single file from here.
💾 Backup Session Save your full current state — hive, project, reference material, round history, work-in-progress document — to a single JSON file you can re-import later. Recommended before any risky operation or experimental round, and as a periodic safety net on long projects.
📂 Import Backup Restore from a previously-saved backup JSON. Replaces your current session entirely, so back up your current work first if you need to keep both.
🔑 License Key Manage your WaxFrame Professional license — replace, remove, or check status. Your trial round count is preserved across license changes, so removing a key can't escape an expired trial.

Documentation

🔑 API Key Guide How to get an API key from each of the six default providers (Anthropic, OpenAI, Google, DeepSeek, xAI, Perplexity), with direct billing links and the exact paid-plan tier you need for the Builder role.
📋 Document Playbooks Worked examples of WaxFrame on common document types — résumés, job descriptions, business proposals, thank-you letters, and more — with the exact Project Goal and Notes payload that converged the document, plus measured round counts and wall-clock times where available.
📖 User Manual Step-by-step walkthrough of every screen and feature, written like a long-form guide rather than a reference card. The best entry point if you're new.
🪙 What Are Tokens? Plain-English explanation of tokens — the unit each AI provider charges by — and how to read the round-cost numbers WaxFrame surfaces.

Advanced

✏️ Prompt Editor View and override the exact prompts WaxFrame sends to reviewers and the Builder. Most users never need it, but if you're tuning behavior or debugging an oddly-behaved AI, this is where you'd look.

💡 Documentation pages open in new browser tabs — your in-progress WaxFrame session won't be disturbed. The Menu also has an ℹ️ About button at the top with credits, build info, and license details.

ⓘ

Your Worker Bees

Your Worker Bees are the AI assistants that act as reviewers each round. They each read your document independently and submit a numbered list of specific suggestions for improvement. The Builder then reads all of those suggestions and rewrites the document.

How many do you need? At least two AIs with saved API keys. WaxFrame won't let you proceed until this requirement is met. The more reviewers you have, the more perspectives the Builder has to work with — but even two gives strong results.
API keys Each AI requires its own API key from its provider. WaxFrame connects directly to each AI on your behalf using these keys. You are billed by each provider for the tokens you use — WaxFrame itself does not charge per use.
What it costs One-time API credits, not monthly subscriptions. Gemini has a generous free tier (with billing left off your Google AI Studio account) — pair it with one paid provider (about $5 in credits) and you have the two AIs needed to start. The paid providers (ChatGPT, Claude, DeepSeek, xAI, Perplexity) start around $5 each in one-time credits. A 3-AI hive runs about $10; all six providers about $30 total — versus the $120+/month an equivalent stack of consumer subscriptions would cost. Heads up: once you enable billing on Google AI Studio, Gemini can start charging per token — watch your AI Studio usage page during longer runs, especially with Gemini as Builder. Per-provider pricing and billing links are in the API Key Guide.
AIs without keys AIs without a saved key are displayed but skipped automatically every round. They stay in your hive and are ready to use as soon as you add a key.
Toggling AIs per session On the Work screen you can toggle individual AIs on or off for the current session using the Edit Hive button — without losing their saved keys. Useful if you want a faster round or are testing specific reviewers.
Custom AIs & model servers Running WaxFrame against an internal gateway (Alfredo), self-hosted Open WebUI, Ollama, or any other custom endpoint? Use Add Custom AI or Import from Model Server to get those endpoints into your hive. If you want a clean workspace with only your imported models visible, use Hide All Defaults to clear the public AIs out of the way — they stay in the system and can be reset back in with one click.
Model diversity matters The reviewer hive works because each AI has different training, different biases, and a different sense of "good." A hive of six AIs that are all the same underlying model (or near-identical fine-tunes of the same family) is functionally one reviewer with six voices — convergence is fast because they were never going to disagree, but the result is no better than a one-shot. When using Recommend Models for All, check the picks afterward and override any that landed on the same family. Minimum: at least two distinct model families (e.g., ChatGPT + Claude). Three or more is better.
CORS errors CORS is a browser security rule that decides whether a webpage running at weirdave.github.io is allowed to read responses from a given API endpoint. The 6 default providers (Anthropic, OpenAI, Google, DeepSeek, xAI, Perplexity) all whitelist browser clients, so you'll never see CORS errors with default keys. You'll see them with custom endpoints — Open WebUI / Ollama / internal gateways like Alfredo — when the gateway operator hasn't added Access-Control-Allow-Origin for browser callers. The fix is on the gateway side, not on WaxFrame's side. Click the ⓘ on Test All Keys for the full troubleshooting reference.

💡 Don't have keys yet? Open the API Key Guide ↗ for step-by-step instructions and direct billing links for each provider.

ⓘ

The Builder

The Builder is the AI that actually rewrites your document each round. While your reviewers each read the document and give numbered suggestions, the Builder reads all of those suggestions plus the full document and produces the updated version.

The Builder's two roles In a full round (Smoke the Hive) the Builder is the synthesizer — taking every reviewer's suggestions and producing the new document. Between rounds it's also your handyman: write a directive in the Notes drawer ("rewrite the first paragraph," "stop saying 'refine' so much") and click Send to Builder to have it perform just that task without running the full hive. After the Builder finishes, click Smoke the Hive when you want the reviewers to weigh in on the change.
Why it uses more tokens Every round, the Builder processes the entire document plus every reviewer's suggestions in a single request. This is significantly more tokens than any individual reviewer uses. A paid API subscription with sufficient capacity is required — free-tier accounts will fail mid-round.
Which AI should I choose? Claude, ChatGPT, Gemini, and DeepSeek all handle large documents reliably. DeepSeek is the most cost-effective option by a wide margin. If a round fails with a missing output structure error, switch to ChatGPT or Gemini — they tend to be the most consistent at following strict formatting instructions under heavy load.
Can I change it later? Yes — you can change your Builder at any time from the Work screen using the Change Builder button. You are not locked in.

💡 See What Are Tokens? ↗ for a full breakdown of token costs across providers and how to keep your usage costs low.

ⓘ

Working Document

This is the live version of your document. Every round, the Builder rewrites it in full based on reviewer suggestions. You can edit it directly at any time between rounds — the AIs reference line numbers, so the numbering updates automatically as you make changes.

Editing directlyClick anywhere in the document and type. The hive will see your changes in the next round.
Line numbersAIs reference line numbers in their suggestions so the Builder can locate changes precisely. Don't worry about the numbers — they update automatically.
ⓘ

About Length Constraint

Pick a mode that matches what your document needs. The Builder is told the rule for the mode you choose, and round-end and convergence-time guards fire accordingly.

No limitNo length gating. The Builder gets no length instruction. Use when length is irrelevant or you want the hive to choose what fits.
Hard capCeiling only. The Builder is told "stay at or below the limit; shorter is fine." Round-end and convergence-time guards fire only when the document goes over. Use for tweets, cover letters, single-page summaries — anywhere there's a maximum but no minimum.
TargetAim to hit a specific value. Both ceiling and floor guards are armed against the same number. Round-end checks are trajectory-aware so you only get prompted on rounds that move away from the target. Use for strict word-count submissions, fixed-length essays, or any "exactly N" requirement.
RangeStay between a minimum and maximum that you supply. The Builder is told to aim for the middle of that range. Both guards armed against their respective bounds. Use for "between 800 and 1500 words", "3 to 5 paragraphs", or any document with both a floor and a ceiling.

Length is measured in your chosen unit — characters, words, paragraphs, or pages. Pages cannot be measured directly from text, so they're approximated using 600 words per single-spaced 12pt page; the other three are direct-counted.

CharactersCounted directly. Matches how web forms, SMS counters, and social media count. Accurate for plain English. Emoji and complex scripts can count differently than what appears on screen.
WordsCounted by whitespace separation. Matches how most submission forms count. Can differ from Microsoft Word by 1–2% on hyphenated terms or URLs.
ParagraphsCounted as blocks of text separated by blank lines. Headings and bullet lists count as paragraphs if they're separated by blank lines.
PagesApproximated using 600 words per single-spaced 12pt page (industry-standard typewriter math — Word's default and what most word processors round to). 1 page ≈ 600 words, 2 pages ≈ 1200 words, 5 pages ≈ 3000 words. WaxFrame cannot measure pages directly — actual page count depends on font, margins, and line spacing. For firm limits, aim slightly under.
ⓘ

Conflicts

When AIs disagree on something, the Builder flags it here rather than making an arbitrary call.

The panel always shows conflicts from the most recent round only — it is not a project-wide completion indicator. "No conflicts" can mean any of three things: the round was a Builder-Only round (no reviewers ran), the round was Round 1 of a from-scratch project (the Builder writes the first draft before reviewers have anything to evaluate), or the round was a full reviewer round and everyone happened to agree on the changes. None of those mean the document is finished.

The document is "done" when the hive reaches ✓ Converged — a majority of reviewers agree there are no more changes needed. Before that point, keep running rounds with Smoke the Hive, or click 🏁 Finish if you're already satisfied with the current draft.

User DecisionThe Builder found competing suggestions and needs you to choose. Pick one of the AI-generated options, type your own resolution, bypass if you've already fixed it directly, or decline to suppress it entirely. Your decision is applied immediately and locked.
Builder DecisionThe Builder made a judgment call on your behalf. Review what it chose. If you disagree, select a different option or type your own and hit Apply.

💡 Click the Current: label on any conflict card to jump directly to that line in the working document.

ⓘ

Live Console

The Live Console shows everything happening in real time — which AIs are sending, responding, succeeding, or failing, with timestamps and response previews.

Round entriesEach round starts with a divider showing the round number and phase. Sending, response, success, and error entries follow for each AI.
ErrorsAPI errors, rate limits, and connection failures appear in red with the HTTP status code and a plain-English explanation.

💡 Use the Copy button to grab the full console log for troubleshooting.

ⓘ

The Hive

Your hive is the team of AIs collaborating on your document each round. Every checked AI with a saved API key participates automatically. AIs without a key are skipped silently.

ReviewersEvery AI in your hive reviews the document each round — reading it in full and submitting specific numbered suggestions.
BuilderThe Builder both reviews and builds. In a full round it reads all reviewer suggestions and rewrites the document. Between rounds it also acts as your handyman — give it a directive in the Notes drawer ("rewrite the first paragraph", "stop saying 'refine'") and click Send to Builder to make a targeted change without running the full hive. Then Smoke the Hive to see if the reviewers agree. The Builder uses significantly more tokens than reviewers and should have a paid API key. DeepSeek is the best value. If a round fails with a missing output structure error, try switching to ChatGPT or Gemini.
Status indicatorsIdle → Reviewing → Done → Building. Each AI shows its current status live during a round.
ⓘ

Export Filename Mask

The filename mask lets you customise the name of your exported .txt file using tokens replaced automatically at export time.

{name}Replaced with your project name, sanitised for use in filenames.
{version}Replaced with your project version number. If no version is set, defaults to "v1".
ExampleA mask of {name}_final_{version} with project name "My Report" and version "v2" produces My_Report_final_v2.txt.

💡 Leave the mask blank to use the default format: ProjectName_version.txt

ⓘ

Starting Document

The three buttons — Upload File, Paste Text, and Start from Scratch — are mode selectors, not action buttons. Click one to choose how you want to provide your starting document.

Upload FileClick the drop zone to browse, or drag a file directly onto it. Supported: Word (.docx), PDF, PowerPoint (.pptx), plain text (.txt), Markdown (.md).
Paste TextClick inside the editor that appears and paste your text directly.
Start from ScratchNo further action needed — the hive will generate a first draft from your project goal.

💡 PDF tip: PDF extraction works best with digitally-created documents. Heavily designed or scanned PDFs may extract poorly — try Paste Text if that happens.

ⓘ

Notes

Notes are directions for the Builder only — not sent to reviewers. They apply to the next round only and are cleared automatically after that round runs. Use Notes for one-round-only instructions; for rules that must survive every round, put them in Additional instructions on the Project screen instead.

Notes pair powerfully with the Send to Builder button: write a directive ("rewrite the first paragraph," "stop saying 'refine'", "tighten the conclusion"), click Send to Builder, and the Builder performs just that task without running the full hive — like asking a handyman for a specific repair. After it's done, click Smoke the Hive to see if the reviewers agree with the change.

🔒 Lock a linePrevents the Builder or reviewers from changing a specific line. Paste the exact text between the quotes — paraphrasing or line numbers will not work because the AIs pattern-match against the document text.
🔒 Lock a sectionProtects a block of content starting at a specific heading or first line. Paste the section heading exactly as it appears.
↩ Reverted documentTells the Builder you have manually reverted the document to an earlier state. Instructs it to ignore all changes from the previous round and treat the current text as the new baseline.
🚫 No new sectionsCaps the Builder to working within the existing document structure. Stops it from adding headings or creating new sections during the next round.
Freeform notesType your own instructions below the template buttons. Good for targeted direction like tighten the third paragraph or the conclusion needs to be more decisive.
📋 CopyCopies the current Notes text to your clipboard. Useful if you want to reuse a complex instruction in a later round.
✕ ClearWipes the Notes field. Does not undo — use with intent.

💡 Quoting the exact text from the document is more reliable than citing line numbers — line numbers shift as the document evolves, but exact text is stable.

ⓘ

Reference Material

Reference material is source documentation the hive consults every round but never edits — job descriptions (rules and responsibilities), RFP requirements, style guides, scoring rubrics, prior decisions, vendor claims. It is sent to every reviewer and to the Builder so they can cite against it.

Distinct from NotesNotes are round-to-round directives for the Builder only and apply to the next round. Reference material is standing source material sent to every reviewer every round.
Distinct from Starting DocumentThe Starting Document is the document under construction — the hive rewrites it. Reference material is read-only source material the hive cites against.
When to use itRFPs, job descriptions, style guides, scoring rubrics, prior consensus decisions, vendor claims you need to cross-check against.
When to skip itMost short documents do not need it. A cookie recipe or thank-you note has no source material to cite against.
Editable mid-sessionUse the 📚 Reference button on the Work screen to edit reference material between rounds. Edits apply to the next round.
Multiple documents supportedAdd as many references as you need — paste your own text or upload files. Each one is independently named, reorderable, and removable. The hive sees them in array order with labeled section headers so AIs can cite specific documents by name.
Token cost realityReference material is sent to every reviewer every round. A 5,000-character RFP roughly doubles your prompt size, which roughly doubles per-round cost. Pick a cost-conscious Builder when reference material is large.

💡 Trim reference material to what is most important. The hive cannot read what you do not paste — but it also costs you money for every token.

ⓘ

Token Estimate

The token count shown is an estimate based on characters / 4, which is the standard rule of thumb for English text in OpenAI-family tokenizers. Real tokenizers vary by model, language, and content type.

Use this number to gauge cost order of magnitude — a 5,000-character reference doc is roughly 1,250 tokens per request, sent to every reviewer every round. A 6-bee hive running 4 rounds = 30,000 tokens just for reference material, before any document or response content.

Dev Tools

WaxFrame Unlocked!
Welcome to WaxFrame Pro!

WaxFrame

WaxFrame is built for desktop work. Minimum viewport is 1366 × 768 px; 1600+ wide is recommended for the multi-panel work screen.

Please resize your browser window, dock dev tools to the bottom, or open WaxFrame on a larger desktop or laptop display.

WaxFrame

WaxFrame is designed for desktop and laptop computers.

Please open it on a desktop or laptop browser for the full experience.

weirdave.github.io/WaxFrame-Professional

WaxFrame

About

Version — Build
LicenseAGPL-3.0 — open source, free to use and modify with attribution.
AuthorR David Paine III — weirdave.com
TestingCandy
StackVanilla HTML, CSS, JavaScript — no frameworks, no server, no install required.

Built with ❤️ by WeirDave and Claude.