sales-char
Char (formerly Hyprnote) platform help — open-source, bot-free, local-first AI meeting notepad with system audio capture, markdown output, plugin SDK, and optional cloud STT/LLM (GPL-3.0). Use when setting up Char on macOS for the first time, speaker identification not working in group meetings, configuring local-only transcription with Cactus or Ollama for full offline use, choosing between Char's cloud STT providers (Deepgram, AssemblyAI, Soniox, OpenAI, etc.), app not launching or bouncing on dock without opening, telemetry concerns with PostHog or Sentry in a local-first app, building a Char plugin or using the automation hooks system, comparing Char to Granola or Meetily or Fathom for privacy, or configuring the CLI for template management. Do NOT use for picking between note-takers generally (use /sales-note-taker) or reviewing a single call for coaching (use /sales-call-review).
What this skill does
# Char Platform Help
## Step 1 — Gather context
If `references/learnings.md` exists, read it first for accumulated platform knowledge.
1. **What do you need help with?**
- A) Installing Char or first-time setup on macOS
- B) Transcription provider selection (local Cactus vs 10 cloud STT providers)
- C) LLM configuration (OpenRouter, BYOK, Ollama/LM Studio for offline)
- D) Speaker identification not working in group meetings
- E) Building a plugin or using automation hooks
- F) CLI usage (template management, database operations)
- G) Comparing Char to other note-takers
- H) Privacy, telemetry, or GPL licensing questions
2. **Which plan are you on?**
- A) Free (on-device transcription, BYOK)
- B) Lite ($8/mo — cloud STT + LLM, speaker ID, integrations)
- C) Pro ($25/mo — advanced sharing, team features, selective sync)
- D) Team (custom)
- E) Not sure / evaluating
Skip-ahead rule: if the user's prompt already contains enough context, skip to Step 2.
## Step 2 — Route or answer directly
| Problem domain | Route to |
|---|---|
| Comparing Char to other note-takers | `/sales-note-taker {user's question}` |
| Reviewing a specific call for coaching feedback | `/sales-call-review {user's question}` |
| Building a coaching program | `/sales-coaching {user's question}` |
| General tool integration patterns (Zapier, webhooks, iPaaS) | `/sales-integration {user's question}` |
When routing, provide the exact command.
## Step 3 — Char platform reference
**Read `references/platform-guide.md`** for the full platform reference — modules, pricing, STT/LLM providers, plugin SDK, hooks, CLI, integrations.
Answer the user's question using only the relevant section. Don't dump the full reference.
## Step 4 — Actionable guidance
You no longer need the platform guide — focus on the user's specific situation.
**First-time setup priority**: Download from char.com → grant macOS audio permissions → select audio devices → test a short recording → choose STT provider (Cactus for local, Deepgram/AssemblyAI for cloud) → configure LLM (Ollama for offline, OpenRouter for cloud).
**Fully offline setup**: Free plan + Cactus local STT + Ollama local LLM. No cloud calls, no API keys needed.
**Speaker ID requires Lite+** — the Free plan does not include speaker identification. If group meeting attribution matters, budget for Lite ($8/mo) minimum.
If you discover a gotcha, workaround, or tip not covered in `references/learnings.md`, append it there.
## Gotchas
> *Best-effort from research — review these, especially items about plan-gated features and integration gotchas that may be outdated.*
- **Speaker identification is Lite+ only and still maturing** — multiple HN users reported it failing in group meetings. The team acknowledged outdated marketing. Test with your meeting size before committing.
- **"Local-first" includes telemetry by default** — Char ships with PostHog analytics and Sentry error tracking. Opt-out exists but isn't surfaced during onboarding. Check Settings → Privacy.
- **GPL-3.0 license has copyleft implications** — unlike MIT-licensed Meetily, corporate legal teams may flag GPL. Self-hosted enterprise use is fine; distributing modified binaries triggers copyleft.
- **macOS only until Q2 2026** — Windows and Linux builds are in progress but not publicly available yet. Don't plan a cross-platform deployment today.
- **Public REST API is "coming soon"** — no programmatic access to meetings/transcripts beyond the CLI `char db` commands. The hooks system (beforeListeningStarted, afterListeningStopped) is the only automation surface.
- **AudioTap API issues on some Macs** — M4 Pro Mini users reported the app bouncing on the dock without opening. No workaround beyond waiting for a fix.
- **CRM integrations are planned, not shipped** — HubSpot, Salesforce, Slack, Notion appear on the roadmap but are not available yet.
## Related skills
- `/sales-note-taker` — Comparing Char to other note-takers (Fathom, Fireflies, Avoma, Gong, etc.) or wiring transcript APIs into CRM/warehouse
- `/sales-meetily` — Meetily: MIT-licensed open-source alternative with Whisper/Parakeet transcription
- `/sales-granola` — Granola: another bot-free AI notepad, closed-source with HubSpot/Attio CRM sync
- `/sales-call-review` — Review a specific call for coaching feedback and scoring
- `/sales-coaching` — Build coaching programs that consume call data
- `/sales-integration` — General CRM/tool integration patterns (Zapier, webhooks, iPaaS)
- `/sales-do` — Not sure which skill to use? The router matches any sales objective to the right skill. Install: `npx skills add sales-skills/sales --skill sales-do`
## Examples
### Example 1: Setting up fully offline meeting notes
**User says**: "I need meeting transcription that works 100% offline — no data leaving my machine."
**Skill does**:
1. Confirms Char Free plan supports fully local operation
2. Guides through Cactus local STT engine setup (no API keys needed)
3. Configures Ollama as the LLM provider for local summarization
4. Tests with a short recording to verify end-to-end local processing
5. Notes that speaker identification requires Lite plan (cloud)
**Result**: Fully air-gapped meeting transcription and summarization.
### Example 2: Speaker identification not working
**User says**: "I have a 4-person team call and Char can't tell who said what."
**Skill does**:
1. Confirms the user is on Lite+ plan (speaker ID is plan-gated)
2. Explains speaker ID is still maturing — known issues with group meetings
3. Suggests workarounds: separate audio devices per speaker, post-meeting manual attribution
4. Notes this is a known pain point the Char team is actively improving
**Result**: Realistic expectations set, workarounds provided.
### Example 3: Building a custom plugin
**User says**: "I want to build a Char plugin that sends meeting summaries to Slack."
**Skill does**:
1. Reads the plugin SDK reference — plugins register as tabs via `window.__char_plugins.register()`
2. Notes that plugins are tab-based UI extensions, not background automations
3. For Slack integration, recommends the hooks system instead: `afterListeningStopped` hook triggers a shell script that reads the transcript and posts to Slack via webhook
4. Provides the hooks.json configuration path and format
**Result**: Correct architecture choice (hooks, not plugins) for the integration.
## Troubleshooting
### App bounces on dock but won't open
**Symptom**: Clicking Char shows a dock bounce animation but the window never appears, no error messages.
**Cause**: AudioTap API incompatibility on certain Mac models (particularly M4 Pro Mini reported).
**Solution**: Check GitHub Issues for your Mac model. Try running from Terminal (`/Applications/Char.app/Contents/MacOS/Char`) to see error output. Update to the latest version — AudioTap fixes ship frequently.
### Speaker identification fails in group meetings
**Symptom**: All speech attributed to one speaker or speakers randomly swapped.
**Cause**: Speaker diarization is still maturing in Char. System audio capture (vs per-participant streams) makes diarization harder.
**Solution**: Ensure you're on Lite+ plan (Free has no speaker ID). For critical meetings, consider a bot-based tool (Fathom, Fireflies) that captures per-participant audio streams for better diarization.
### Transcription quality poor or missing words
**Symptom**: Transcripts have gaps, wrong words, or low accuracy.
**Cause**: Local Cactus engine trades accuracy for privacy. Cloud providers vary in quality.
**Solution**: Switch from Cactus to a cloud STT provider (Deepgram or AssemblyAI recommended for accuracy). If staying local, ensure good microphone input and minimal background noise. Check that the correct audio device is selected in Settings.
Related in Image & Video
watch
IncludedWatch a video (URL or local path). Downloads with yt-dlp, extracts auto-scaled frames with ffmpeg, pulls the transcript from captions (or Whisper API fallback), and hands the result to Claude so it can answer questions about what's in the video.
physical-ai-defect-image-generation
IncludedUse when the user wants to orchestrate defect image generation, run associated setup, or handle outputs on OSMO. The Day 0 path handles cold-start with USD-to-ROI, image-edit augmentation, and AnomalyGen to create initial PCBA datasets. The Day 1 path performs inference and labeling on real images. This skill helps with first-time asset setup, creation of finetuning checkpoints, and configuring deployment. Trigger keywords: defect image generation, dig workflow, dig pipeline, defect image detection workflow, aoi pipeline, aoi anomalygen, usd2roi anomalygen, day 0 pcba, day 1 pcba, day 1 real-photo alignment, day 1 manual roi, metal surface anomaly, glass defect, anomalygen finetune, setup_pcb, setup_metal, setup_glass, setup_pretrained, dig setup, dig datasets, dig pretrained checkpoint, dig image-edit endpoint.
accelint-react-best-practices
IncludedReact performance optimization and best practices. ALWAYS use this skill when working with any React code - writing components, hooks, JSX; refactoring; optimizing re-renders, memoization, state management; reviewing for performance; fixing hydration mismatches; debugging infinite re-renders, stale closures, input focus loss, animations restarting; preventing remounting; implementing transitions, lazy initialization, effect dependencies. Even simple React tasks benefit from these patterns. Covers React 19+ (useEffectEvent, Activity, ref props). Triggers - useEffect, useState, useMemo, useCallback, memo, inline components, nested components, components inside components, re-render, performance, hydration, SSR, Next.js, useDeferredValue, combined hooks.
elevenlabs-agents
IncludedBuild conversational AI voice agents with ElevenLabs Platform using React, JavaScript, React Native, or Swift SDKs. Configure agents, tools (client/server/MCP), RAG knowledge bases, multi-voice, and Scribe real-time STT. Use when: building voice chat interfaces, implementing AI phone agents with Twilio, configuring agent workflows or tools, adding RAG knowledge bases, testing with CLI "agents as code", or troubleshooting deprecated @11labs packages, Android audio cutoff, CSP violations, dynamic variables, or WebRTC config. Keywords: ElevenLabs Agents, ElevenLabs voice agents, AI voice agents, conversational AI, @elevenlabs/react, @elevenlabs/client, @elevenlabs/react-native, @elevenlabs/elevenlabs-js, @elevenlabs/agents-cli, elevenlabs SDK, voice AI, TTS, text-to-speech, ASR, speech recognition, turn-taking model, WebRTC voice, WebSocket voice, ElevenLabs conversation, agent system prompt, agent tools, agent knowledge base, RAG voice agents, multi-voice agents, pronunciation dictionary, voice speed control, elevenlabs scribe, @11labs deprecated, Android audio cutoff, CSP violation elevenlabs, dynamic variables elevenlabs, case-sensitive tool names, webhook authentication
humanizer
IncludedHumanize AI-generated text by detecting and removing patterns typical of LLM output. Rewrites text to sound natural, specific, and human. Uses 28 pattern detectors, 560+ AI vocabulary terms across 3 tiers, and statistical analysis (burstiness, type-token ratio, readability) for comprehensive detection. Use when asked to humanize text, de-AI writing, make content sound more natural/human, review writing for AI patterns, score text for AI detection, or improve AI-generated drafts. Covers content, language, style, communication, and filler categories.
generating-mermaid-diagrams
IncludedSalesforce architecture diagrams using Mermaid with ASCII fallback. Use this skill when generating text-based diagrams for Salesforce architecture, OAuth flows, ERDs, integration sequences, or Agentforce structure. TRIGGER when: user says "diagram", "visualize", "ERD", or asks for sequence diagrams, flowcharts, class diagrams, or architecture visualizations in Mermaid. DO NOT TRIGGER when: user wants PNG/SVG image output (use generating-visual-diagrams), or asks about non-Salesforce systems.