Specialized AI tools. One workspace.

Turn rough thoughts into results you can use.

Type, paste, or speak. Pick the job you need help with. HatVox’s specialized AI tools—called hats—turn your input into a result shaped for that task.

 Save relevant background as Situations and reuse it across tasks.

Different problem, different hat. Here's each one at work.

This is the app. Rough words on the left, the hat's artifact on the right.

Switch hats

Extract · structured notes

Create · revision brief

Create · incident summary

Create · task brief

Refine · work email

Create · engineered prompt

Meeting Notes

Example

A quick multi-topic status update recounted from memory — a couple of done items, a bug, and a thought about next week.

What you saidspoken, unedited

So um quick update on where things are. The auth migration is done, Sarah merged it yesterday, all tests passing. The uh the admin dashboard is like 80 percent there, I still need to wire up the snapshot restore button but the UI is all built out. Oh and Jake found a bug with the live recording on Safari, something about the websocket dropping after like 30 seconds? I told him to file an issue. And then for next week I think we should prioritize the hat management UI because people keep asking about it in the Discord.

What you gotready to paste

Summary

Sarah merged the auth migration yesterday — all tests passing. The admin dashboard is about 80% done; I still need to wire up the snapshot restore button. Jake found a Safari bug with live recording, and I told him to file an issue. For next week, I think we should prioritize the hat management UI given the Discord requests.

Action Items

  • [Me]: Wire up the snapshot restore button on the admin dashboard
  • [Jake]: File an issue for the Safari WebSocket live recording bug

Discussion Notes

Admin Dashboard

The UI is fully built out. The one remaining piece is the snapshot restore button, which I still need to wire up.

Safari Live Recording Bug

Jake found a bug where the WebSocket drops after about 30 seconds during live recording on Safari. I told him to file an issue.

Next Week Priorities

I think we should prioritize the hat management UI — people keep asking about it in the Discord. This is a proposal, not a confirmed decision yet.

Assumptions

  • I'm reading "I think we should prioritize the hat management UI" as a proposal, not a confirmed decision — no clear commitment language was used, so I left it out of Decisions.
Created by Meeting NotesSee this hat

What the hat did

The recap is grouped by topic instead of replayed in order, and each task became an action item owned by the right person — the Safari fix is Jake's because you asked him to file it, the dashboard work is yours. "I think we should prioritize" is correctly kept as a proposal, not promoted to a decision. It's all in your own voice ("Sarah merged it," "I told him"), and nothing was invented.

A think-aloud that weighs options, reverses course, and lands on a decision — the kind of recap where it's easy to lose what was actually decided.

What you saidspoken, unedited

So I've been going back and forth on the database thing. Right now we use localStorage which is fine for MVP but like what happens when someone clears their browser data and loses everything. That's bad. So we need server-side storage. I was thinking Postgres through Drizzle since we already have that for auth. But then I read that SQLite might be better for this because it's like, each user's data is pretty small and SQLite is way simpler to operate. But wait we're on Neon already so Postgres is basically free and we don't have to manage anything. I think — yeah actually let's just use Postgres. But here's the thing, we need to think about the migration. We can't just flip a switch because people have data in localStorage already. So we need like a sync or import flow. And we should probably keep localStorage as a cache or fallback? I don't know, maybe that's overcomplicating it. Let me think about that more. Actually no, just do Postgres with a one-time import and drop localStorage after.

What you gotready to paste

Summary

I've been working through the database storage decision. We're currently using localStorage, which works for MVP but is fragile — if a user clears their browser data, they lose everything. After considering SQLite vs. Postgres, I landed on Postgres via our existing Neon/Drizzle setup. The migration path is the main thing that still needs attention.

Decisions

  • We're going with Postgres (via Drizzle on Neon) for server-side storage — not SQLite.
  • We'll do a one-time import of existing localStorage data, then drop localStorage entirely. No hybrid cache/fallback.

Action Items

  • [Me]: Design and build the localStorage → Postgres one-time import/sync flow for existing users.

Discussion Notes

Storage Backend

I considered two options before deciding:

  • SQLite — appealing because each user's data footprint is small and it's simpler to operate.
  • Postgres — we're already on Neon for auth, so it's effectively free and requires no additional infrastructure. This won the argument.

Migration Strategy

The main constraint is that users already have data sitting in localStorage, so we can't just flip a switch. I floated keeping localStorage as a cache or fallback layer during transition, but ruled it out as overcomplicating things. The plan is a clean one-time import and then localStorage is gone.

Assumptions

  • I'm reading "let's just use Postgres" as a firm decision, not just a leaning — the self-correction from the SQLite tangent and the immediate pivot to migration planning supports that.
  • I treated "drop localStorage after" as a confirmed decision to remove it entirely, not just deprioritize it.
Created by Meeting NotesSee this hat

What the hat did

The decision you actually landed on — Postgres, one-time import, drop localStorage — is pulled cleanly into Decisions, while the options you weighed and discarded (SQLite, keeping localStorage as a cache) are kept in Discussion Notes for the record instead of muddying what was decided. The reversals ("actually no…") resolve to your final answer, and it's all in your voice with nothing invented.

Design Revision Director

Pricing Page Quick Pass

A quick spoken review of a pricing-page draft, handed to the designer who has the file.

What you saidspoken, unedited

Okay quick one on the pricing page. The headline font feels too small, bump it up. And the second button, the outline one, can we make it filled like the first one so they match. That's it, the rest is good.

What you gotready to paste

Changes

  1. [DIRECTIVE] Increase the headline font size on the pricing page. The current size reads as too small — bump it up. (Exact size not specified; use judgment or check with the reviewer before shipping.)
  2. [DIRECTIVE] Change the second button (the outline-style one) to a filled style to match the first button.

Leave Alone

  • Everything else on the pricing page.
Created by Design Revision DirectorSee this hat

What the hat did

Two rambled asks become two tagged directives in priority order, the “rest is good” turns into an explicit Leave Alone so nothing else is touched, and the unspecified font size is flagged instead of invented.

Bug Report

Example

A quick spoken report of a bug hit mid-work, with no environment or severity stated.

What you saidspoken, unedited

So the save button on the settings page doesn't actually save when I click it. It just does nothing, no spinner, no error, nothing. I tried refreshing the page and clicking it again and it's the same thing. Um, I'm pretty sure it was working last week.

What you gotready to paste

Save button on settings page does nothing on click

Summary

Clicking the Save button on the settings page produces no response — no spinner, no error, and no confirmation. The issue persists after a page refresh. The speaker believes it was working as recently as last week.

Steps to Reproduce

  1. Navigate to the settings page.
  2. Click the Save button.

Actual Behavior

Nothing happens. No spinner, no error message, and no confirmation is shown. Changes do not appear to be saved.

Notes

Reported as a regression — the Save button was working as recently as last week.

Assumptions

  • Environment: Not specified. The affected version, build, browser, OS, and whether this is on staging or production are all unknown.
  • Severity: Not stated. Given that saving settings is non-functional, this may be high priority, but severity has not been confirmed by the reporter.
  • Blast radius: Unclear whether this affects all users or a specific account, and whether it is consistent or intermittent.
Created by Bug ReportSee this hat

What the hat did

Every fact you gave survives — the dead Save button, the failed refresh, the "worked last week" regression hint — restructured into a titled, scannable ticket. And the three things you did not say (which environment, how severe, how wide the blast radius) come back as explicit Assumptions for the triager to confirm, not as invented values. Nothing is fabricated; nothing actionable is dropped.

A spoken report that includes the speaker's own guess at the root cause.

What you saidspoken, unedited

OK so the live recording keeps dropping the connection after about, I don't know, thirty seconds or so. The websocket just dies on you. I think — and I'm really not sure about this — I think it might be the auth token expiring and the server killing the connection? That's just my guess though. It's pretty annoying because you lose your whole recording when it happens. This is on the live page. I haven't really nailed down the exact steps to trigger it but it's pretty consistent, like always around the half a minute mark.

What you gotready to paste

Live recording WebSocket drops connection after ~30 seconds, losing the recording

Summary

On the live page, an active recording consistently drops its WebSocket connection at approximately the 30-second mark. When this happens, the entire recording is lost.

Actual Behavior

The WebSocket connection dies roughly 30 seconds into a live recording. The full recording is lost when this occurs.

Steps to Reproduce

Not specified — see Assumptions.

Notes

Speaker suspects the auth token may be expiring server-side and triggering the disconnection, but flagged this explicitly as a guess with no supporting evidence.

Assumptions

  • Repro path: No specific steps to trigger the issue were given. It is reported as highly consistent (~always at the 30-second mark), so a reliable repro may be straightforward to find — but it has not been documented yet.
  • Environment: No browser, OS, device, build, or deployment target (staging vs. production) was specified.
  • Severity: The speaker described losing the full recording as "pretty annoying," but did not assign a severity or indicate whether this is blocking. Severity should be confirmed by the triager.
  • Blast radius: Unclear whether this affects all users on the live page or is isolated to a specific account, session type, or configuration.
Created by Bug ReportSee this hat

What the hat did

You guessed the auth token might be expiring — and the report keeps that as exactly what it is: a suspected cause, attributed to you and marked unverified, that "should not drive investigation without verification." A generic formatter would promote your hunch to the diagnosis and send a developer down a false trail. The missing repro steps and environment are flagged rather than invented, and the real signal — drops at ~30 seconds, recording lost — leads the report.

Delegate

Example

A quick spoken delegation with an owner, a deadline, and one scoping detail.

What you saidspoken, unedited

Um okay so can you have Priya put together the Q3 social calendar, just the posting schedule not the actual copy, and I need it by end of day Thursday so I can review it before the client call on Friday morning.

What you gotready to paste

Task

Priya to put together the Q3 social calendar — posting schedule only, no copy.

Owner

Priya

Requirements

  • A posting schedule covering Q3
  • Schedule only — no post copy or creative required

Timeline

End of day Thursday (to allow owner review before Friday morning client call)

Done When

Priya has delivered the completed Q3 posting schedule by end of day Thursday and it is ready for review.

Created by DelegateSee this hat

What the hat did

The filler is gone and the one task is crisp — owner, deadline, and the "schedule only, no copy" scope all preserved. It stays a short brief instead of padding out every section, and the one thing you didn't specify — which channels the schedule covers — is surfaced as a question to confirm, not invented into the brief.

A rambling feature request with several constraints buried in it.

What you saidspoken, unedited

So when someone deletes a transcript, we show a confirmation modal, that's fine. But after it deletes, there's no feedback and if they deleted wrong one, it's gone. I want like a toast at the bottom that says deleted and has undo for like 5 seconds. If they click undo it restores it. But we also must not mess up if they delete multiple transcripts fast. Also should work in light and dark themes and not be annoying.

What you gotready to paste

Task

Build a toast notification with an undo action that appears after a transcript is deleted, allowing the user to restore it within 5 seconds.

Owner

Unassigned

Context

Currently, deleting a transcript gives no post-confirmation feedback. If a user deletes the wrong one, there is no recovery path. This adds a safety net without adding friction to the deletion flow.

Requirements

  • Display a toast at the bottom of the screen immediately after a transcript is deleted
  • Toast message reads "Deleted" (or equivalent) and includes an Undo button
  • Undo is available for 5 seconds; after that, the deletion is committed
  • Clicking Undo restores the transcript to its previous state
  • Multiple rapid deletions must be handled correctly — each delete gets its own independent undo timer and must not interfere with others
  • Toast must render correctly in both light and dark themes
  • Toast must be unobtrusive

Done When

After a transcript is deleted, the toast appears at the bottom of the screen with an active Undo button. Clicking Undo within 5 seconds fully restores the transcript. After 5 seconds without Undo, the transcript is permanently removed. Deleting multiple transcripts in quick succession produces independent, correctly functioning toasts for each. The toast displays correctly in light and dark themes.

Created by DelegateSee this hat

What the hat did

Every constraint you actually said is captured — the 5-second undo, restoring on click, not breaking on rapid deletes, light and dark themes. "Not annoying" stays "unobtrusive" instead of being expanded into specifics you didn't ask for, and no implementation mechanism is invented — the brief tells the developer the WHAT and leaves the HOW to them.

Work Email

Example

A one-line spoken note to a colleague.

What you saidspoken, unedited

Tell Sarah I'll be about 10 minutes late to the standup. Something came up with the deploy and I need to watch it.

What you gotready to paste

Hi Sarah,

I'll be about 10 minutes late to standup — something came up with the deploy and I need to keep an eye on it.

Talk soon,

Created by Work EmailSee this hat

What the hat did

A two-line note stays a two-line email — greeting, the point up front, a quick sign-off. It reads as warm and professional without being padded into a formal message, and nothing is invented.

A spoken status update covering several topics at once.

What you saidspoken, unedited

So um quick update on where things are. The auth migration is done, Sarah merged it yesterday, all tests passing. The uh the admin dashboard is like 80 percent there, I still need to wire up the snapshot restore button but the UI is all built out. Oh and Jake found a bug with the live recording on Safari, something about the websocket dropping after like 30 seconds? I told him to file an issue. And then for next week I think we should prioritize the hat management UI because people keep asking about it in the Discord.

What you gotready to paste

Hi,

Here's a quick status update:

  • Auth migration is done — Sarah merged it yesterday and all tests are passing.
  • Admin dashboard is about 80% there. The UI is fully built out; I still need to wire up the snapshot restore button.
  • Safari bug: Jake found an issue with live recording dropping the websocket connection after around 30 seconds. I asked him to file an issue.

For next week, I think we should prioritize the hat management UI — it keeps coming up in the Discord.

Thanks,

Created by Work EmailSee this hat

What the hat did

Three topics said in one breath become clean, scannable bullets led by a clear opening line — and the speaker's "I think we should prioritize" stays a considered suggestion, not hardened into a decision. The filler ("um," "uh," "like") is gone; the substance and the hedge are intact.

Prompt Builder

Example
What you saidspoken, unedited

OK so I want a prompt for, um, generating blog post ideas. For a, it’s a B2B SaaS company that does, uh, expense management software. The audience is finance teams, like CFOs, controllers, that kind of person. I want like ten ideas, no wait, give me maybe eight, and each one should have a working title and a one sentence angle. And keep it, you know, not too salesy, more educational. Oh and it should avoid topics we’ve already covered so I’ll give it a list of our existing posts.

What you gotrun it in your AI tool

You are an experienced B2B content strategist specializing in fintech and SaaS.

Task: Generate 8 blog post ideas for a B2B SaaS company that makes expense management software. The target audience is finance professionals — CFOs, controllers, and similar roles.

Context: The content should be educational and informative in tone, not promotional or salesy. The ideas must not duplicate any topics already covered in the existing post list below.

Existing posts: [paste your list of existing blog post titles here]

Output: Return exactly 8 blog post ideas. For each, provide:

  1. A working title
  2. A one-sentence angle explaining the editorial focus or key insight

Present the ideas as a numbered list.

Created by Prompt BuilderSee this hat

What the hat did

The mid-sentence correction (ten → eight) resolves cleanly, the existing-posts list you will supply becomes a placeholder, and the scattered ask lands as a structured task / context / output prompt you can run as-is.

What you saidspoken, unedited

Summarize a bunch of customer reviews and pull out like the top five complaints and the top five things people love. And group it by theme.

What you gotrun it in your AI tool

You are an expert qualitative researcher specializing in customer feedback analysis.

Task: Analyze the customer reviews below and produce a structured summary that identifies the top 5 complaint themes and the top 5 praise themes.

Input: [Paste your customer reviews here]

Instructions:

  • Read all reviews and identify recurring themes — patterns that appear across multiple reviews, not one-off mentions.
  • Organize your output into two sections: Top 5 Complaints and Top 5 Things Customers Love.
  • Within each section, group findings by theme, label each theme with a short descriptive name, and write a brief summary of what customers are saying about it.
  • Support each theme with a representative quote or two drawn directly from the reviews.
  • Order themes within each section from most to least frequently mentioned.

Output: Two clearly labeled sections (Complaints / Loves), each containing 5 named themes with a short summary and supporting quotes. No preamble.

Created by Prompt BuilderSee this hat

What the hat did

You described the task, not “write me a prompt” — and still got a prompt that runs it, with a placeholder for your reviews, instead of a one-off answer you cannot reuse.

Browse all 20 hats

FAQ

Is this a transcription app?

No. Transcription is a step, not the product. HatVox transforms your speech into role-specific output.

Who is HatVox for?

Anyone who turns rough thoughts into finished writing. Developer Elite is one hat; Meeting Notes, Casual Convo, Work Email and others each transform differently.

Is this a one-time thing, or daily use?

Daily. The value compounds with use, and HatVox is designed for repeated use in a real workflow.

Do I need to configure anything first?

No. Pick a hat, then speak or type. Sub-contexts are optional power-ups.

Is my data safe?

Authentication is self-hosted with Better Auth. Audio is processed for transcription and is not stored by HatVox after transcription completes.

Does it work with Claude CLI and Codex CLI?

Yes. Developer Elite output is structured for direct paste into both.

Say the thing once. See what comes back.

Start with any hat in the catalog. The one that matches today's job will prove itself faster than any description of it.