MeetMind
MeetMind is a local-first meeting assistant for capturing, transcribing, summarizing, and searching meetings from your own machine. It records system audio and microphone input without adding a bot to the call, stores meeting data locally, and supports local or bring-your-own LLM providers for analysis.
Key capabilities
- Capture microphone and system audio without a meeting bot
- Transcribe meetings and organize speaker segments
- Generate summaries, decisions, and action items
- Search across meeting transcripts with an optional local index
- Export meeting notes to Obsidian, GitHub Issues, Slack, or a signed transcript bundle
- Keep audio, transcripts, voiceprints, and indexes on the local device by default
- Use a local LLM through Ollama by default, or configure a hosted provider explicitly
Requirements
- Python 3.12 or 3.13
- macOS for native system-audio capture
- Optional: Ollama for fully local summarization
- Optional: SQLCipher support for encrypted local storage
- Optional: LanceDB support for hybrid transcript search
Installation
Install from the latest GitHub release (MeetMind is not on PyPI yet):
pip install meetmind-ai
Or install from source:
git clone https://github.com/openintelligence-labs/meetmind.git
cd meetmind
pip install .
For the recommended local setup, install the API, dashboard, encrypted storage, search, and audio extras:
pip install 'meetmind-ai[api,encrypted,storage,audio]'
Available extras:
| Extra | Purpose |
|---|---|
api |
Local HTTP API, dashboard, and live event stream |
encrypted |
SQLCipher-backed encrypted local database |
storage |
LanceDB-backed transcript index and search |
audio |
Voice activity detection and voiceprint dependencies |
dev |
Test, lint, and contributor tooling |
Verify the installation:
meetmind selftest
If the encrypted extra is not installed, MeetMind uses plain SQLite and reports that mode in meetmind status.
Native capture sidecars (macOS)
Live capture and on-device transcription use small Swift sidecar binaries (capture, Parakeet STT, diarization). Get them one of two ways:
- Download
meetmind-sidecars-macos-arm64.tar.gzfrom the GitHub release, unpack it, and place the binaries on yourPATH(or pointMEETMIND_CAPTURE_SIDECAR/MEETMIND_STT_SIDECARat them). - Build from source (requires Xcode command line tools, macOS 14.4+):
cd sidecars/macos
swift build -c release
A source checkout is auto-discovered at sidecars/macos/.build/release/. meetmind selftest reports whether the sidecars are found. Without them, meetmind record --mock still exercises the full pipeline with synthetic audio. The STT sidecar downloads the Parakeet model (~690 MB, one time) on first use.
LLM configuration
MeetMind uses a local Ollama provider by default. To use Ollama:
brew install ollama
ollama serve &
ollama pull gemma3:4b
To use a hosted provider, configure it explicitly:
export MEETMIND_LLM_PROVIDER=openai
export MEETMIND_LLM_MODEL=gpt-4o-mini
export MEETMIND_LLM_API_KEY=sk-...
Supported provider configuration is controlled through environment variables. Run the following command to inspect the active provider, model, storage mode, and resolved paths:
meetmind status
Quick start
Open the dashboard
meetmind ui
The dashboard runs locally at http://127.0.0.1:7857. It provides meeting capture, transcript browsing, summaries, action items, decisions, search, and export controls.
Record a meeting
From the dashboard, choose a meeting title and capture mode, then start recording.
From the terminal:
meetmind record --duration 0 --emit-sse --persist-audio --title "Weekly sync"
Use Ctrl+C to stop an open-ended recording. The command prints the meeting ID on the last line.
For development or CI environments without native audio capture:
meetmind record --duration 60 --mock
Summarize a meeting
meetmind summarize "$MID"
This generates a meeting summary, action items, and decisions from the transcript.
Build the search index
meetmind index
meetmind search "snowflake migration"
Search can also be run from the dashboard. Results link back to matching transcript segments.
Export meeting output
meetmind export-obsidian "$MID" --vault ~/MyVault
meetmind export-github "$MID" --repo owner/name
meetmind export-slack "$MID"
Slack export requires a webhook URL:
export SLACK_WEBHOOK_URL=https://hooks.slack.com/services/...
To create a signed transcript bundle:
meetmind export-bundle "$MID" --out ./bundle.tar.gz
meetmind verify ./bundle.tar.gz
Common workflows
Record, summarize, index, and export
meetmind ui
meetmind record --emit-sse --persist-audio --title "Weekly sync"
MID=<meeting-id>
meetmind summarize "$MID"
meetmind index
meetmind export-slack "$MID"
Manage previous meetings
meetmind meetings
The dashboard also supports viewing transcripts, summaries, action items, decisions, and recorded audio when audio persistence is enabled.
Search one meeting
meetmind search "decided to ship in june" --meeting-id "$MID"
Speaker enrollment
Voiceprint identity is optional and should only be used with appropriate consent.
meetmind enroll "Alice" --audio ~/clips/alice.wav
meetmind speakers
meetmind diarize "$MID"
To remove an enrolled speaker:
meetmind forget "$SPEAKER_ID"
Privacy and security
MeetMind is designed for local-first meeting workflows.
- Audio, transcripts, voiceprints, local archives, and search indexes are stored on the device by default.
- The default LLM provider is local Ollama.
- Hosted LLM providers are opt-in and require explicit environment configuration.
- Local database encryption is available through the
encryptedextra. - Voiceprint enrollment is optional and should be consent-based.
- Retention controls are available for meetings and voiceprints.
- Redaction profiles are available before sharing transcripts externally.
Useful commands:
meetmind compliance dpia > dpia.md
meetmind compliance retention-sweep --dry-run
meetmind compliance retention-sweep
echo "Email Sam at sam@example.com" | meetmind redact --profile public_share
Redaction profiles:
| Profile | Behavior |
|---|---|
raw |
No redaction |
team_internal |
Light redaction for internal sharing |
public_share |
Aggressive redaction for external sharing |
Configuration
MeetMind is configured through environment variables.
| Variable | Default | Description |
|---|---|---|
MEETMIND_HOME |
~/.meetmind |
Root directory for local data, audio, indexes, and tokens |
MEETMIND_LLM_PROVIDER |
ollama |
LLM provider used for summaries and extraction |
MEETMIND_LLM_MODEL |
Auto-detected | Model name for the configured provider |
MEETMIND_LLM_BASE_URL |
Provider default | Custom provider endpoint |
MEETMIND_LLM_API_KEY |
Unset | API key for hosted providers |
MEETMIND_COACH_MODEL |
Falls back to MEETMIND_LLM_MODEL |
Model used by the live coaching workflow |
MEETMIND_PERSIST_AUDIO |
0 |
Set to 1 to persist recorded audio by default |
MEETMIND_RETENTION_MEETINGS_DAYS |
1095 |
Meeting retention period |
MEETMIND_RETENTION_VOICEPRINT_DAYS |
365 |
Voiceprint retention period |
MEETMIND_DISABLE_ENCRYPTION |
Unset | Set to 1 to disable encrypted storage lookup |
MEETMIND_DB_PASSPHRASE |
Unset | Explicit database passphrase override |
SLACK_WEBHOOK_URL |
Unset | Default Slack webhook for Slack export |
Run meetmind status to see the resolved configuration.
Architecture
macOS audio sidecar / mock capture
|
v
Python recording pipeline
|
+--> voice activity detection
+--> speech-to-text
+--> speaker segmentation and diarization
+--> local storage
+--> dashboard event stream
+--> optional search index
|
v
Analysis layer
|
+--> summary generation
+--> action item extraction
+--> decision extraction
+--> export integrations
The project separates capture, transcription, storage, analysis, and export layers so each part can be developed or replaced independently.
Integrations
| Integration | Status | Notes |
|---|---|---|
| Obsidian | Available | Filesystem export |
| GitHub Issues | Available | Uses authenticated gh CLI |
| Slack | Available | Uses Incoming Webhook |
| Signed transcript bundles | Available | Verifiable archive export |
| Notion | Planned | Requires OAuth setup |
| Linear | Planned | Requires OAuth setup |
Platform support
| Platform | Status |
|---|---|
| macOS | Primary supported platform for native capture |
| Linux | Native capture sidecar planned |
| Windows | Native capture sidecar planned |
Mock recording is available for testing and development on unsupported environments.
Troubleshooting
| Issue | Resolution |
|---|---|
capture-sidecar or stt-sidecar warning in selftest |
Build the native sidecars or use --mock for development capture |
| Database opens unencrypted | Install meetmind[encrypted] or check encryption configuration |
| Dashboard opens with no meetings | Record a test meeting and refresh the dashboard |
| Search returns no results | Run meetmind index to build or refresh the transcript index |
| Slack export reports no webhook | Set SLACK_WEBHOOK_URL or pass a webhook URL explicitly |
GitHub export fails because gh is missing |
Install the GitHub CLI and run gh auth login |
| LLM calls do not complete | Run meetmind status and verify provider, model, API key, and base URL |
For a diagnostic report:
meetmind selftest --json
Development
Install development dependencies:
pip install -e '.[dev]'
Run checks:
pytest
ruff check .
Security-sensitive changes should preserve the local-first defaults and avoid silent network egress.
Contributing
Issues and pull requests are welcome. Before proposing a feature, check whether it changes the local-first privacy model or introduces external data transfer. Any external service integration should be explicit, configurable, and documented.
Security disclosures should be sent to security@openintelligence-labs.dev rather than filed as public issues.
License
MIT
Metadata
Release files for meetmind-ai 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| meetmind_ai-1.0.2.tar.gz | 138.1 kB | With provenance | Details for meetmind_ai-1.0.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| meetmind_ai-1.0.2-py3-none-any.whl | Python 3 | none | any | Details for meetmind_ai-1.0.2-py3-none-any.whl |
Total release size: 294.8 kB
Release files / meetmind_ai-1.0.2.tar.gz
| Download URL | meetmind_ai-1.0.2.tar.gz |
|---|---|
| Size | 138.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4c1d706c0b9ec889cedabe105f905fd4b8aef478b24bccd2ca438b5333bb3185
|
|
BLAKE2b-256 checksum How to use checksums |
3dec907f029cd2b23d330e667a7f90791b5f2c8abfbd26784f29044f34a0996e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 30, 2026.
Transparency logRelease files / meetmind_ai-1.0.2-py3-none-any.whl
| Download URL | meetmind_ai-1.0.2-py3-none-any.whl |
|---|---|
| Size | 156.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c5163333ffa862052fcdebf5574b66bd947c52a6cd65c5299dc05211ba5e7f5e
|
|
BLAKE2b-256 checksum How to use checksums |
3813aa7e3365e9453730049b70724e0eb38f17e95fd91667d3060077836fafc3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 30, 2026.
Transparency logSecurity for meetmind-ai 1.0.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for meetmind_ai-1.0.2.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 30, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.