A simple CLI that exports meetings from Meetily as portable markdown files. macOS only.
Meetily is an open-source, local-first meeting assistant that records audio, transcribes it, and generates AI summaries — all stored in a local SQLite database.
This tool reads that database (read-only) and for each meeting with a completed summary, builds a markdown file containing YAML front matter, the AI summary, and a timestamped transcript with speaker labels. Files are date-prefixed with human-readable titles, designed to work well with Obsidian and other markdown-based note systems.
- Meetily installed with at least one completed summary
- macOS
- Python 3.12+
brew tap dino-rodriguez/meetily-exporter https://github.com/dino-rodriguez/meetily-exporter
brew install meetily-exporterpipx install git+https://github.com/dino-rodriguez/meetily-exporteruv tool install git+https://github.com/dino-rodriguez/meetily-exportergit clone https://github.com/dino-rodriguez/meetily-exporter
cd meetily-exporter
uv sync
uv run meetily-exporter --helpConfigure where meetings are exported, then start the background service:
meetily-exporter config --output ~/Obsidian/Meetings # set output directory
brew services start meetily-exporter # start and run on loginThat's it — new meetings will be exported automatically and a macOS notification will appear for each one. Settings are stored in ~/.config/meetily-exporter/config.toml.
brew services info meetily-exporter # check status
brew services stop meetily-exporter # stopYou can also export manually or run the watcher in the foreground:
meetily-exporter export # one-time export of all meetings
meetily-exporter export --force # re-export, overwriting existing files
meetily-exporter watch # poll for new meetings in the foregroundMeetily uses templates to control how its AI structures meeting summaries. You can create custom templates and manage them with the CLI:
meetily-exporter template create my_template # generate a scaffold markdown file
# edit my_template.md in your editor...
meetily-exporter template import my_template.md # import into Meetilymeetily-exporter template list # list installed templates
meetily-exporter template show <id> # view a template as markdown
meetily-exporter template remove <id> # delete a templateRun meetily-exporter <command> --help for all available flags.
Each meeting becomes a markdown file named by its date and title (e.g. 2025-01-07 1400 - Design Review.md):
---
meeting-id: meeting-fa7efe8b-c721-4396-8630-20d91fdcd1aa
---
## Summary
The team reviewed the latest mockups for the dashboard redesign...
## Action Items
- Update color palette based on brand guidelines
- Schedule follow-up with design team
---
## Transcript
[00:00] (You) Let's look at the mockups for the dashboard
[00:12] (Others) I think option B is the strongest
[00:25] (You) Agreed, let's go with that directionExisting files are detected by the meeting-id in front matter, so renaming a file won't cause duplicates. Re-exporting with --force after a title change in Meetily will rename the file to match.