Releases: Hugelidus/Pointcast
Release list
pointcast 0.6.0
Extension, CLI and integrations at 0.6.0. The CLI package now declares mcpName (io.github.Hugelidus/pointcast) for the MCP Registry.
pointcast setup: one command, whatever your agent and stack (D14)
npx pointcast@latest setup, run in your project, finds Claude Code, Codex, Gemini CLI and Cursor and adds Pointcast to each one its documented way: the plugin for Claude Code and Codex, the extension for Gemini CLI, the MCP server (pinned to the CLI's exact version) in the project's.cursor/mcp.jsonfor Cursor, merged with the servers already there. Agents that already have it are skipped.- It says what your stack needs: the
pointcast-djangoinstall line and theINSTALLED_APPSline for a Django project (your Python files are never edited), and that React, Vue and Svelte dev builds need nothing. It prints how to add the browser extension, then runspointcast doctor. - Asks
y/Nbefore each change and shows the exact command or file first.--yesaccepts all,--dry-runshows the plan only,--jsonreports for agents. Without a terminal and without--yesit is a dry run.
pointcast 0.5.0
Extension, CLI and integrations at 0.5.0.
Debug capture: the errors around what you point at (D13)
- While you record, Pointcast keeps what fails on the page: uncaught errors and unhandled rejections (message, file:line, first stack lines),
console.errorandconsole.warn, and requests that fail or answer 400+ (method, path, status). When you point at something broken, the spec lists the errors from 5 s before to 3 s after, under the element:- network: `POST /api/export` → 500 (0.6 s before),- uncaught: `TypeError: …` at `src/OrdersTable.tsx:31`. Nothing is added when nothing failed. - Works in voice and typed mode, on local dev hosts and on sites you enabled, and on pages loaded during the recording. The page is only hooked while recording, and its behaviour is unchanged.
- Privacy: never a request or response body, a header or a query value; sensitive field values are replaced everywhere; on enabled sites personal data is redacted as in the page text. Popup → Settings → Capture console and network errors (on by default) turns it off. See PRIVACY.md.
- Session format: events and
session.jsongain an optionalerrorslist (schemaVersionstays 2).pointcast process,get_sessionandget_elementread and render them; older sessions and readers are unaffected. - Playground:
dev/playground/errors.html, a page of broken buttons.
Code pointer: library code stays out of the spec (D9)
- The
find:line names a library component by its package, never by its node_modules path:component `TabItem` (svelte, package `flowbite-svelte`)instead of… in `node_modules/.pnpm/flowbite-svelte@…/dist/tabs/TabItem.svelte:42`. Older sessions render this way too. - Library wrappers (Radix's Primitive, Slot, SlotClone, Presence, Portal…) are skipped before the chain's cap of 3 frames, so the places go to your app's own components, in capture (React, Vue, the bridge) and in rendering.
pointcast 0.4.0
Typed mode: type instead of talking (D12)
- The popup has a 🎤 Voice / ⌨️ Typed choice above Record, remembered for the next recordings. Typed never opens the microphone: no permission page, no speech model download, no audio.
- While recording in Typed mode the pill says ● Notes, and each Alt+click (or text selection) opens a small note box next to the element: Enter saves, Shift+Enter starts a new line, Esc drops that gesture, a click outside saves what you typed (or drops an empty box), and pointing at the next element (Alt+click or a selection) saves the open one. Keys typed into the box never reach your app, and its scripts cannot read the note. The box also works inside modal dialogs and focus-trapped panels.
- Stop turns the notes into the spec right away, with the same result as a voice recording: copied, sent to your agent's MCP server or saved to Downloads, and announced in the popup. Each note becomes a request (
> This button should export only the filtered orders. [a]) followed by its element and code pointer as before. - Session format:
session.jsongains an optionalinputMode("typed") and events an optionalnote. Both are optional, so older sessions and readers are unaffected. A typed session has nowords.jsonor audio;pointcast process,get_sessionandpointcast issuerender it from its notes without transcribing.
pointcast 0.3.0
Extension, CLI and integrations at 0.3.0.
Django templates get the code pointer (integrations/django)
pointcast-django, one line inINSTALLED_APPSunderDEBUG: in development it marks each rendered template (includes, HTMX partials, blocks inherited from a base template) with invisible HTML comments. It never changes production output, JSON, text emails, attributes or<title>, and never writes an absolute path.- The extension reads the markers when you Alt+click, and the resolver finds the element's text in its template:
text at: templates/pim/partials/row.html:42. It searches the innermost template first, prefers the hit in the element's own tag, and ignores<script>, attribute values, template comments and{% if %}operands. On a real 1,358-template Django + HTMX app it placed ~94 % of sampled elements on their exact line, with no wrong answer; the rest stay silent.
CLI
pointcast doctor: checks your setup in a few lines (Node, the sessions folder, whether an MCP server is receiving recordings, local transcription, the Linux clipboard) and says how to fix each problem.--jsonfor agents,--onlineto compare with npm.- Releases are built by CI from a version tag, as a draft with the zip, the CLI package and checksums (CONTRIBUTING).
pointcast 0.2.1 — transcription you can trust
Transcription you can trust. Silence and room noise no longer turn into invented words, and Whisper can no longer loop.
- Speech detection first (Silero VAD, 2 MB, downloaded once like the Whisper model): only the parts where you speak are transcribed. Pauses and background noise that used to become "¡Adiós!", "Gracias." or "Thank you." now give nothing.
- No repetition loops: output is limited by the audio's length, repeated phrases are kept once, and words with impossible times are dropped. When a stretch had to be dropped, the spec and the popup say where.
- Word accuracy on normal speech is unchanged, and long recordings transcribe a little faster.
- Locked dependencies: the CLI ships an
npm-shrinkwrap.json, and the Claude Code / Codex plugin and the Gemini CLI extension start exactlypointcast@0.2.1.
Update: the extension from pointcast-0.2.1-chrome.zip below (replace the folder's contents and press reload on the extension card; the id stays the same since 0.2.0), and claude plugin marketplace update pointcast for the plugin. Checksums in SHA256SUMS.txt. Changes: CHANGELOG.
pointcast 0.2.0 — recordings go straight to your agent
Recordings now go straight to your coding agent. While the pointcast MCP server runs (the Claude Code or Codex plugin, the Gemini CLI extension, or npx -y pointcast@0.2 mcp), the extension hands it each recording after Stop: no downloads, no Save dialogs, even with Chrome's "Ask where to save each file" on. Without a server, Chrome's downloads save it as before.
Highlights
- Direct handoff to the MCP server on
127.0.0.1only, from the pointcast extension only (exact host, pinned extension id, custom header). Web pages cannot inject recordings. - Gemini CLI:
gemini extensions install https://github.com/Hugelidus/pointcast, then/pointcast. - Codex CLI:
codex plugin marketplace add Hugelidus/pointcast, thencodex plugin add pointcast@pointcast. - Microsoft Edge supported (the whole test suite passes in Edge).
- Fixed: the popup's Time went back to 00:00 after processing.
Install
- Extension: download
pointcast-0.2.0-chrome.zipbelow, unzip it, and inchrome://extensions(oredge://extensions) turn on Developer mode → Load unpacked. The Chrome Web Store listing is in review. - One-time step if you loaded 0.1.x unpacked: remove it and load 0.2.0 as a new extension. Its id is now fixed, so allow the microphone again; the speech model downloads once more.
- Claude Code:
claude plugin marketplace add Hugelidus/pointcastandclaude plugin install pointcast@pointcast(orclaude plugin marketplace update pointcastif you already have it).
Checksums in SHA256SUMS.txt. Full list of changes: CHANGELOG.
Pointcast extension 0.1.2
pointcast extension 0.1.1 — new logo
Extension update for the public beta: a new logo, and the extension packaged for the Chrome Web Store (listing in review).
- New logo, drawn for every size, with a simplified version for the 16 px toolbar icon.
- Store listing, images and privacy policy.
- No behavior change. The CLI and MCP server stay at 0.1.0 (
npx pointcast);pointcast-0.1.0.tgzis on the 0.1.0 release.
Install: download pointcast-0.1.1-chrome.zip below, unzip it, then in chrome://extensions turn on Developer mode, choose Load unpacked and pick the folder. If you already loaded 0.1.0, replace its folder's contents and press the reload button on the extension's card. Full steps and the Claude Code plugin: README.
pointcast 0.1.0 — public beta
Narrate UI changes while you point at your web app. Your coding agent gets the exact elements, and the code behind them.
This is the first public release, a beta: Chrome on desktop, developed and tested on Windows. Feedback and bug reports are very welcome in the issues.
Install
- Extension: download
pointcast-0.1.0-chrome.zipbelow and unzip it. In Chrome, openchrome://extensions, turn on Developer mode, choose Load unpacked and pick the unzipped folder. - Claude Code (optional): the plugin fetches your latest recording and applies it with
/pointcast, resolving each element to its line in your repository.claude plugin marketplace add Hugelidus/pointcast claude plugin install pointcast@pointcast
- CLI and MCP server (optional, Node ≥ 22.12):
npx pointcast --help. Other MCP clients (Cursor, Windsurf): see the CLI's README.
Turn off Chrome's Ask where to save each file before downloading (
chrome://settings/downloads): with it on, Chrome asks where to save every file of every recording, and the sessions missDownloads/pointcast/, where the plugin and the CLI look for them.
What it does
- Record your voice while you Alt+click or select the elements you are talking about. On local dev hosts out of the box; on any other site after you enable it, one host at a time.
- Stop, and a few seconds later the spec is on your clipboard: Whisper runs locally in the browser while you record, and each sentence you said becomes a request with the elements you pointed at while saying it.
- Point at the code: on React, Vue 3 and Svelte 5 dev builds, each element leads with where that instance is used and the line of its text or data, with the source line quoted. Nothing is added when a match is ambiguous.
- Private by default: audio and transcription stay on your machine, sensitive fields are never captured, and personal data is redacted on non-local sites.
Known limitations
- Chrome only (no Firefox yet).
- The code pointer needs a dev build of React, Vue 3 or Svelte 5; Angular and other frameworks get the DOM description only.
- Code lines on the clipboard need a Vite dev server. With webpack or Next.js, the plugin, the MCP server and
pointcast processstill resolve them in your local repository. - The first recording downloads the Whisper model (291 MB, once).
Full changelog: CHANGELOG.md.