agent-browser
Browser automation using Vercel's agent-browser CLI. Use when you need to interact with web pages, fill forms, take screenshots, or scrape data. Alternative to…
Connect Wispr Flow so meeting captures arrive in your vault on their own. Use when the user says 'connect Wispr', 'set up Wispr Flow', 'my Wispr meetings aren't in Dex'. Not for Granola; use `granola-setup`. Not for processing meetings already in the vault; use
$ npx -y skills add davekilleen/Dex --skill wispr-setup --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/wispr-setupContext preview
The summary Claude sees to decide when to auto-load this skill.
Connect Wispr Flow so meeting captures arrive in your vault on their own. Use when the user says 'connect Wispr', 'set up Wispr Flow', 'my Wispr meetings aren't in Dex'. Not for Granola; use `granola-setup`. Not for processing meetings already in the vault; use
name: wispr-setup
description: "Connect Wispr Flow so meeting captures arrive in your vault on their own. Use when the user says 'connect Wispr', 'set up Wispr Flow', 'my Wispr meetings aren't in Dex'. Not for Granola; use `granola-setup`. Not for processing meetings already in the vault; use `process-meetings`."
integration:
id: wispr
name: Wispr Flow
auth: oauth2
credential: dex-held
transport: remote-mcp
enhances:
- skill: process-meetings
capability: "Wispr captures become meeting notes, person page updates and tasks"
- skill: daily-plan
capability: "Yesterday's captures are already in the vault before the day starts"
entities: meetings, transcripts, calendar eventsWispr Flow records meetings and writes a summary. This connects it to Dex so those captures arrive in `00-Inbox/Meetings/` by themselves, and `/process-meetings` treats them exactly like any other meeting note.
Dex holds the credential itself rather than borrowing one from whichever app you happen to be running. That is the difference between a source that works while you are sitting in a session and one that works overnight. Once connected:
open Dex in the morning.
anything else that runs Dex, because nothing depends on that app's own connector store.
You need a Wispr Flow account with the notetaker enabled. There is no key to paste and nothing to copy: you authorise once in a browser.
python3 -c "from pathlib import Path; from core.meeting_sources.wispr_setup import connect; print(connect(Path('.')))"This registers Dex with Wispr, opens your browser, and waits for you to approve. When you do, it stores the credential in `System/.dex/wispr-credential.json` with owner-only permissions.
**If the browser does not open**, the command prints the URL. Open it yourself.
python3 -c "from pathlib import Path; from core.meeting_sources import wispr_client; print(wispr_client.list_tools(Path('.')))"You should see the tools Wispr exposes. If this fails, say what the error was rather than assuming the connection is fine.
python3 -m core.meeting_sources.wispr_sync
It reports what it did in one line. Then run `/process-meetings` to turn the new notes into person page updates and tasks.
To have captures arrive on their own, schedule the same command. On macOS that is a launch agent running `python3 -m core.meeting_sources.wispr_sync` with `VAULT_PATH` set to your vault.
**Your captures may arrive without attendee names.** Wispr titles and attributes a capture from the calendar it is connected to, and its calendar sync is Google only. On Microsoft 365 the capture arrives with no title and no attendees, so Dex derives a title from the summary and marks the note as unresolved. Speaker labels in the summary are turns in a recording, not people. Do not let anything downstream assign an action or a quote on the strength of that note alone; match it against the calendar entry for that time first.
**The credential is in your vault.** `System/.dex/wispr-credential.json` holds a refresh token. If your backups include `System/`, exclude that file, in the same way `.env` is excluded. Anyone who can read it can read your meetings.
Wispr's access tokens last five minutes and the refresh token is replaced every time it is used, so the stored file is rewritten constantly. If the credential is lost or corrupted, re-run Step 1: there is nothing to recover and re-authorising takes one browser click.
Say plainly when the connection is broken. A meeting source that quietly returns nothing looks exactly like a quiet week, and that is the failure this setup is built to avoid.
One personal Dex, built around your work. Keep your priorities, people, meeting notes and tasks in a folder you own. Work with Dex through your AI app to plan the day, prepare for a meeting or follow through on a promise.
Repo: davekilleen/Dex
Browser automation using Vercel's agent-browser CLI. Use when you need to interact with web pages, fill forms, take screenshots, or scrape data. Alternative to…
Build applications where agents are first-class citizens. Use this skill when designing autonomous agents, creating MCP tools, implementing self-modifying…
This skill should be used when writing Ruby gems following Andrew Kane's proven patterns and philosophy. It applies when creating new Ruby gems, refactoring…
This skill should be used before implementing features, building components, or making changes. It guides exploring user intent, approaches, and design…
Capture solved problems as categorized documentation with YAML frontmatter for fast lookup
Expert guidance for creating, writing, and refining Claude Code Skills. Use when working with SKILL.md files, authoring new skills, improving existing skills,…