TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Landing page for Wispra — voice dictation for any app
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Wispra is a desktop app for Windows and macOS that turns speech into finished text. A global hotkey opens a floating microphone over whatever you are working in; you speak, and Wispra transcribes, cleans up the text with AI and types it into the active app: email, chat, a code editor, a document, a browser. It also records and transcribes meetings, then turns them into summaries, mind maps, action items and posts.
This repository is wispra-web: the Wispra website and Wispra Cloud, the backend that lets a signed-in app transcribe and use AI through Wispra's own server instead of a personal API key, with monthly limits per plan, optional cloud sync, and a private link that connects AI assistants to your synced data.
Get the app at wispra-web.vercel.app: free to download.
Most people speak at around 150 words per minute and type at around 40. A large share of the working day goes to writing that is not hard, only slow: replies, status updates, meeting notes, tickets, comments.
Dictation should close that gap, but in practice it rarely does:
Global hotkey and floating microphone. Ctrl + Shift + Space by default, changeable in Settings. A small
microphone appears near the cursor while recording and shows when the text has been typed.
Typed where you are. The text is inserted into the active window at the cursor, including on multi-monitor setups and into maximized windows.
95+ languages, detected automatically. Speak in one language or switch mid-sentence; a language can also be pinned in Settings.
Voice commands and snippets. Say punctuation and formatting ("new paragraph", "comma"), expand your own keyword snippets into longer text, or say "delete that" to undo the last dictation.
History. Every dictation is kept on your computer with its time, topic and app, filterable by day and by topic, with a time-saved counter, AI summaries per topic, and export to TXT, Markdown or CSV.
File transcription. Drop an audio or video file into the Transcribe tab and get a transcript.
Finished text, not raw transcription. After transcription, an AI pass adds punctuation and capitals, removes fillers and fixes obvious mishearings. It is instructed never to summarise or merge sentences, and if its result is suspiciously short Wispra types your original words instead.
Modes. General, Professional, Vietnamese, Casual or your own instructions, switched from the tray menu. Wispra can pick the tone from the app you are dictating into, such as email or chat.
Record and transcribe. Record a meeting from the microphone, the computer's audio, or both, and get a transcript as it goes.
Four-column transcript. Time and speaker, topic, what was said, and action items side by side. Speakers are labelled from names said in the recording ("I'm Linh") and can be renamed; in "Both" mode paragraphs are marked You or Others. There is no voice recognition and nothing about anyone's voice is stored.
Summary, mind map and posts. A thorough summary with one section per topic; a clickable mind map that links every point back to the transcript; and draft posts for a website, Facebook, Instagram, LinkedIn and X.
Ask about the meeting. A chat panel answers questions about the transcript and highlights the part the answer came from.
Your words. Fix a misheard word once and the AI cleanup gets a hint; fix it again and it is corrected automatically. Every entry can be pinned, switched off or deleted.
Suggestions and auto-learned vocabulary. Wispra spots recurring names and terms in your History and meetings, suggests them, and uses accepted terms to prime speech recognition.
Writing style. Habits taken from your own corrections, plus your notes, guide the cleanup. A private scorecard shows whether learning is helping, and one switch turns it off.
Wispra works with your own Groq (or OpenAI) API key. Wispra Cloud is the alternative: sign in, and transcription and AI text go through this repository's server with Wispra's key.
ai_quota_exceeded error with the limit,
the amount used and the reset date, and the app shows it instead of failing. Dictation keeps working with the
uncleaned transcript.Retry-After until the minute or the day is over.Cloud sync (opt-in, off by default). Keeps a copy of your dictation History, Meetings and learned words in your Wispra account, updated a few seconds after something changes.
Connect your AI assistant. A private link lets ChatGPT, Claude, Grok, Perplexity, Cursor and other assistants that support the Model Context Protocol read your synced data, read-only. The assistant can list, search and open meetings, search dictation history, read your vocabulary and see usage statistics. The link can be given an expiry, rotated or revoked at any time; only a hash of it is stored on the server.
/api/transcribe on Wispra Cloud,
which checks the plan's minutes first and counts the seconds afterwards./api/chat/completions, which checks the monthly AI
allowance first and records the tokens Groq reports./api/sync, and
become readable by any AI assistant you have connected with your private link.| Part | Path | What it does |
|---|---|---|
| Website | app/page.tsx | Landing page: features, who it is for, comparison, FAQ, download |
| Updates | app/updates | One page per desktop release with its notes and screenshot; new releases come from GitHub by themselves |
| Sign-in hand-off | app/auth/callback, app/auth/relay | Completes sign-in in the browser and hands the session back to the desktop app through the wispra:// link |
| Transcription | app/api/transcribe | Forwards audio to Groq with the server key (whisper-large-v3-turbo, then whisper-large-v3 if turbo fails); enforces the Free plan's monthly minutes and the requests per minute and per day |
| AI text | app/api/chat/completions | Forwards chat completions to Groq with a whitelist of models; enforces the monthly AI allowance and the requests per minute and per day |
| Usage | app/api/usage | Plan, minutes and AI tokens used this month, limits and reset date, for the app's Account page |
| Cloud sync | app/api/sync | Receives the app's History, Meetings and learned words |
| AI assistant link | app/api/mcp/token, app/api/mcp/[token] | Creates, rotates and revokes the private link, and serves the read-only MCP endpoint behind it |
| Billing | app/api/webhook/polar, lib/polar-webhook.ts | Verifies Polar subscription webhooks (Standard Webhooks signature, 5-minute window), applies each delivery once (webhook_events, migration 011) and updates the account's plan |
| Database | supabase/migrations | Tables, row-level security and the functions that count usage |
The desktop app itself lives in a separate repository; its downloads and release notes are at github.com/sinhgiang/wispra-releases/releases.
Using Wispra with your own API key has no Wispra limits: only your provider's own limits apply. The limits below apply to Wispra Cloud, per account and per calendar month (UTC).
| Free | Pro | |
|---|---|---|
| Transcription through Wispra Cloud | 30 minutes per month | Unlimited |
| AI text through Wispra Cloud (cleanup, summaries, mind maps, posts, chat) | 300,000 tokens per month | 5,000,000 tokens per month |
Tokens count both what is sent to the AI and what it writes back, as reported by Groq. Pro is a subscription
handled by Polar. Both limits are set in one place in the code (lib/ai-quota.ts and
app/api/transcribe).
On every plan, Wispra Cloud also caps how many requests one account sends: 60 a minute and 2,000 a day for
transcription (a 30-second part of a recording is one request), 60 a minute and 3,000 a day for AI text. Past it
the server answers HTTP 429 with code rate_limited, the limit, and a Retry-After header; the desktop app waits
out a per-minute limit by itself. Accounts marked unlimited (subscriptions.unlimited) are not capped. The numbers
are in lib/api-call-limits.ts.
Do I need an account? No. With your own Groq API key, Wispra works without an account. An account is needed only for Wispra Cloud and cloud sync.
Is Wispra free? Yes, the app is free to download and use with your own API key. Groq offers a free tier. Wispra Cloud has a Free plan with monthly limits and a paid Pro plan.
Which languages does it understand? 95+ languages through Groq's Whisper models, detected automatically. The AI cleanup has dedicated handling for Vietnamese.
Which apps does it work in? Any app with a text field: Gmail, Slack, VS Code, Word, Notion, a browser, a terminal, on Windows and macOS.
Is my audio stored? Not by Wispra. With your own key, audio goes straight to the provider. Through Wispra Cloud, it is forwarded to Groq and not kept on Wispra's server. Dictation history is stored on your computer, and in your account only if you turn on cloud sync.
What happens when the monthly AI allowance runs out? The app says so, with the amount used and the reset date. Dictation keeps typing your words, without the AI cleanup, and nothing you said is lost. The allowance resets on the 1st of the next month.
Can an AI assistant change my data? No. The assistant link is read-only, and you can revoke it at any time.
Is the app signed? The Windows installer is not code-signed yet, so Windows SmartScreen may show a warning on first install: choose "More info", then "Run anyway".
More questions are answered on the website, or open an issue.
| Layer | Technology |
|---|---|
| Framework | Next.js 15 (App Router), React 19, TypeScript |
| UI | Tailwind CSS 3 |
| Database and auth | Supabase (Postgres with row-level security, Supabase Auth) |
| Speech and AI | Groq: Whisper for transcription, openai/gpt-oss-120b by default for AI text |
| AI assistant link | Model Context Protocol (@modelcontextprotocol/server 2.x, mcp-handler 2.x) |
| Billing | Polar (webhooks) |
| Hosting | Vercel |
| Tests | Vitest, with PGlite running the real migrations in an in-memory Postgres |
The desktop app is built with Electron, React and TypeScript.
This repository holds the website and the Wispra Cloud backend. It does not include an open-source licence; the code belongs to the owner of Wispra.
For development: npm install, copy .env.example to .env.local and fill in your own Supabase, Groq and Polar
values, then npm run dev. npm test runs the test suite, and npm run build checks a production build. The
production database differs from supabase/migrations/001_initial.sql in places; read
supabase/PRODUCTION_DRIFT.md before writing a migration.
wispra-web.vercel.app/updates reads the releases of
sinhgiang/wispra-releases from GitHub and re-checks them every hour. A
new version therefore appears there without any change to this repository and without a deploy, as long as
the release is published like this (the desktop app's release process does it on every release):
## New, ## Improved and
## Fixed with - bullets, each starting with a short bold lead.v0.6.6 — Mind maps you can edit.screenshot.png: 1600 × 1000, dark mode, showing what changed, with
sample content only (no real names, recordings, email addresses or file paths):
gh release upload v0.6.6 screenshot.png -R sinhgiang/wispra-releases.v0.6.6.The release is on the page, marked Latest, within an hour. Versions 0.1.0 to 0.6.5 are kept in this repository with hand-written text and images, and those entries take precedence over GitHub's. Details, and how to rewrite an entry here: docs/UPDATES.md.
Wispra is live at wispra-web.vercel.app.