Updates

Weekly updates from the Char team

Week 9 2026

Big week. v1.0.9 stable is out with local speech-to-text via our Cactus engine, keyboard-first navigation across settings, task-aware model routing on the server side, and a proper find-and-replace in the transcript view. A lot of internal plumbing was reworked too — the transcript accumulator was rebuilt, PostHog was migrated to the official client, and Restate was removed entirely.

Cactus: local speech-to-text in beta

The headline feature this week is Cactus, our local inference engine for speech-to-text. Cactus runs Whisper small directly on your Mac — no network requests, no API keys, no data leaving your device. It's English-only for now and still in beta, but it works.

The settings UI shows available Cactus models alongside cloud providers, with disabled models listed so you can see what's coming. Language-aware provider selection means Char automatically picks the best STT backend per language, falling back to cloud providers for non-English languages. Local provider status indicators show whether your engine is running, and model selection is disabled when it's not.

Under the hood, this required significant work on the Cactus bindings — we enforced Sync invariants, guarded callback aliasing, and added proper locking in Drop for soundness. The cactus-model crate was expanded with model metadata and the build system was cleaned up for better upstream portability. We also added end-to-end local STT tests and a CI workflow to keep them passing.

Keyboard-first settings navigation

Settings now supports full keyboard navigation. You can tab through every settings panel, use arrow keys to move between options, and press Enter to toggle or select. This applies across general settings, AI configuration, and lab toggles. It's the kind of thing that should have always been there — now it is.

Task-aware model routing

The LLM proxy now supports a x-char-task header that tells the server what the request is for — chat, enhance, title generation, etc. The server uses this to route requests to the most appropriate model for each task type. This means better results without users needing to manually pick different models for different operations. The API client was updated to pass this header from every call site in the desktop app.

Find and replace in transcripts

Transcript search got a major upgrade. You can now replace text, toggle match case, and filter by whole word — all with keyboard shortcuts. Search auto-scrolls to the active result and stays in sync between the transcript and editor views. If you're cleaning up transcripts after a meeting, this makes the workflow significantly faster.

AI improvements

Your selected default template in settings is now automatically applied to all new AI-generated summaries. No more picking the same template every time. We also added fuzzy matching for template headers to work around models with poor instruction following — if the model outputs a slightly different heading, Char still matches it to the right section.

AI-generated summaries now produce section headings in the correct language for non-English users. The model selectors filter out deprecated and non-chat models, giving you a cleaner list. Gemini 2.0 and 2.5 models (Flash, Pro) were incorrectly hidden and are now visible again. Local provider status for Ollama and LM Studio shows visual indicators so you know if your local setup is actually running.

A new Memory tab in AI settings lets you define custom vocabulary — useful if you have domain-specific terms that models consistently get wrong.

Calendar and contacts

Calendar got visual polish — cleaner header spacing, improved typography, and better weekend styling. Calendar onboarding shows a proper loading state while fetching calendars. Participant email resolution for Apple Calendar events was improved with a better fallback chain. Long event descriptions no longer overflow in metadata chips and popovers.

Contact avatars now show colored initials when no profile photo is set, making the contact list easier to scan at a glance.

Notes and editor

Cmd+Click on links in the note editor now opens them in your default browser. "Reveal in Finder" was added to the session overflow menu for quick file access. The contacts permission request was removed from onboarding — it was unnecessary friction.

Onboarding refresh

The onboarding flow was streamlined with clearer trial status after sign-in. The account step was split into distinct before-login, after-login, and trial components, making each step focused on one thing. The overall flow better guides users through getting started without unnecessary permission requests.

Infrastructure

We migrated to the official posthog-rs 0.4 client, replacing our custom PostHog and feature flag crates. The telemetry opt-out toggle now properly disables usage analytics via PostHog's enable/disable side effect.

All Restate-related code was removed — the app, crates, CI workflows, and data directories. This simplifies the codebase and removes infrastructure we were no longer using.

The transcript crate got a full rebuild. A new TranscriptAccumulator handles word-level merging, channel splitting, and view generation. The replay example was expanded with cloud correction support and Cactus metrics. The audio-mime crate was extracted to deduplicate content type handling across transcribe-cactus and transcribe-proxy.

What's next

Cactus is English-only today. More languages and larger models are coming. We're also expanding the transcript accumulator to handle more edge cases in live transcription. If you're on the nightly channel, you'll see these improvements landing daily.

As always, grab the latest from our changelog or let the app auto-update.

Read more

Week 8 2026

This was a big week. Hyprnote is now Char. Alongside the rebrand, we shipped v1.0.6 and v1.0.7 stable with a completely new search engine, two new speech-to-text providers, and a revamped chat experience — plus a bunch of reliability improvements under the hood.

Hyprnote is now Char

We've rebranded. All external-facing content, the website, GitHub repo links, and deeplink schemes have been updated to reflect the new Char name. The website banner now reads "Hyprnote is now Char", and char.com redirects are live. If you have existing bookmarks or links, they'll continue to work. You can read more about the reasoning in our dedicated blog post.

Search, powered by Tantivy

We replaced our search infrastructure with Tantivy, a Rust-native full-text search engine. Indexing is noticeably faster and search results are more accurate when you're looking across your sessions.

The search UI also got a refresh. The search bar now collapses to an icon by default and expands on click, giving you more screen real estate. Advanced filters let you narrow results by meeting notes, people, and organizations. Date presets like "Today", "This week", and "This month" are available too.

New transcription providers

Two new speech-to-text providers landed this week. Mistral is now available as a transcription provider, and we added a DashScope adapter for Alibaba's Qwen3-ASR model with real-time speech recognition support. You can optimize for cost, quality, or language support depending on your needs.

We also added a configurable mic active threshold for detection, so you can tune how long the microphone must be active before triggering notifications.

Chat gets a major overhaul

Chat is back as an experimental feature, rebuilt from the ground up. The old feedback modal is gone. You now report bugs and suggest features directly through chat. Under the hood, chat uses MCP (Model Context Protocol) tools that can create GitHub issues, add comments, and search existing issues on your behalf.

Chat can open as a full tab alongside your session tabs, and slash commands give you quick access to common actions. Chat now receives richer session context, so responses are more relevant to what you're working on. Search results within chat include full session context too.

Resilient transcription

Live transcription failures are no longer fatal. If the transcription provider goes down mid-session, the recorder keeps running and the session enters a degraded mode instead of crashing. A visual indicator in the transcript view shows when transcription is operating in degraded mode.

We also replaced the old ractor-based supervisor with a custom SessionActor that gives us finer-grained, per-actor-type supervision and better fault recovery.

Multi-session operations

You can now select multiple sessions in the timeline and delete them in bulk. The familiar undo toast from single-session delete extends to multi-select as well — hover to pause the countdown, press Cmd+Z to restore. Cleaning up old sessions is much faster this way.

Calendar and events

Calendar event sync is more reliable, especially for timeline and notification interactions. Event descriptions now show up in session metadata chips, so you can see the meeting agenda at a glance without opening the calendar.

UI and experience

  • Onboarding has been moved from a separate window into the main app flow, making it feel more integrated
  • macOS dock right-click menu now shows "New Note" for quick access
  • Context menus are available for creating new notes and tabs via right-click
  • Tab bar blur visibility and width have been polished
  • Settings UI has been simplified with cleaner labels, timezone selector, and week start configuration
  • Auto-focus on the title input when no title is set, so you can start typing immediately

Documentation

We published comprehensive data handling transparency documentation, giving you a clear picture of how Char processes and stores your data. We also added onboarding guides for Cursor and Claude Code in the developer handbook.

What's next

The Char rebrand is just the beginning. We're continuing to expand transcription provider support and polish the chat experience. If you're on the nightly channel, you'll see improvements landing daily. If you're on stable, v1.0.7 is available now.

As always, you can download the latest version from our changelog or let the app auto-update.

Read more

Week 7 2026

Two stable releases in one week. We shipped v1.0.4 and v1.0.5 back-to-back, bringing a redesigned calendar, backlink mentions, undo delete, and a bunch of quality-of-life improvements.

Calendar redesign

The calendar got a complete overhaul. There's now a full calendar interface with a week view, event popovers, and improved navigation controls. You can see your week at a glance and jump directly into upcoming sessions without scrolling through day view.

We also added the ability to unignore calendar events directly from the sidebar timeline via context menu. If you previously dismissed an event and changed your mind, you can restore it without digging through settings.

You can now mention notes, people, and companies inline using backlink mentions. Each mention displays a type badge--person, company, or note--so you can see what you're linking to at a glance. This creates a connected knowledge graph across your sessions.

Undo delete

Deleted notes now show a dissolving animation with a 5-second countdown timer. Hover to pause the countdown and reveal a "Restore" button, or press Cmd+Z to instantly restore. You won't lose work to an accidental delete.

Hold-to-quit

We redesigned the Cmd+Q behavior, inspired by Chrome. Instead of immediately hiding the app, you now hold Cmd+Q to quit with a visual overlay showing the progress. This replaces the previous Cmd+Shift+Q shortcut and prevents accidental quits.

In-meeting reminder

There's a new experimental notification that alerts you when another app has been using your microphone for 3+ minutes while Char isn't listening. If you forgot to start recording, this nudge will catch it. It's opt-in in the lab settings and still early, but we think it'll be useful.

Performance and stability

Under the hood, we fixed memory leaks from actor subscriptions and timer accumulation, and resolved high CPU usage caused by a MutationObserver watching the entire document tree. We also upgraded to Tauri 2.10.1 and updated several core dependencies including cpal 0.17 for audio handling.

Other improvements

  • Cmd+Shift+N hotkey to create a new note and start listening in one action
  • Recently opened notes now appear in the Open Note dialog (Cmd+O) for quick access
  • Manual timezone override in Settings for sidebar timeline display
  • Fallback support for local AI models without tool calling (e.g., Gemma via LM Studio)
  • Fix for "invalid Refresh Token: Already Used" authentication error
  • Fix for opening a note now switching to an existing tab instead of creating a duplicate

What's next

We're working on the next round of features. If you're on the nightly channel, you'll see improvements landing daily. If you're on stable, v1.0.5 is available now.

You can download the latest version from our changelog or let the app auto-update.

Read more

Week 6 2026

This was a big week for Char. We shipped our v1.0.2 stable release, introduced a new Git plugin, and made several quality-of-life improvements.

v1.0.2 stable release

The v1.0.2 stable release brings months of work from our nightly builds into a production-ready release.

Acoustic Echo Cancellation (AEC) is the standout feature. Previously, we used heuristics-based mic-only mode to avoid feedback loops when recording both microphone and speaker audio. AEC eliminates that complexity. You can now record both audio sources simultaneously without echo or feedback.

PDF export now includes a metadata cover page with the session title, date, and participants. PDFs save directly to your Downloads folder and open automatically.

Table support landed in the editor. You can insert and edit tables directly in your notes, useful for meeting minutes with action items or comparison notes.

Other improvements in v1.0.2 include sleep detection that stops recording when you close your laptop lid, a redesigned settings panel, and improved authentication that persists across app updates.

Git plugin

We introduced a new Git plugin built on gix, a pure Rust implementation of Git. The plugin provides core Git operations with a modular architecture. It's not user-facing yet, but it sets up infrastructure for future version control and collaboration features.

Persistent pinned tabs

Pinned tabs now persist across app restarts. If you pin a session tab, it stays pinned when you reopen the app.

Smarter notification filtering

We centralized our notification policy with explicit skip conditions. Mic notification filtering now reduces noise by avoiding alerts when the app already knows what's happening.

Bug fixes

We fixed a startup issue on macOS where a stale single-instance socket could prevent the app from launching. We also fixed timeline sorting to use event start time as a fallback, improved the feedback submission flow with direct log attachment, and made video chat link visibility adapt to editor width.

What's next

We're continuing to polish the experience and work on some features we're not ready to announce yet. If you're on the nightly channel, you'll see these improvements land incrementally. If you're on stable, v1.0.2 is available now.

You can download the latest version from our changelog or let the app auto-update.

Read more

Get updates in your inbox

Subscribe to get weekly updates from the Char team.