This plugin allows you to synchronize your notes and transcripts from Granola (https://granola.ai) directly into your Obsidian vault. It fetches documents from Granola, converts them from ProseMirror JSON format to Markdown, and saves them as .md
files.
Inspired by Automatt/obsidian-granola-sync/
- Sync Granola notes to your Obsidian vault
- Sync Granola transcripts to your vault, with flexible destination options
- Support for syncing to daily notes, a dedicated folder, or a daily note folder structure
- Option to create links between notes and their transcripts
- Periodic automatic syncing with customizable interval
- Granular settings for notes and transcripts
- Customizable sync settings and destinations
- Platform support: This plugin only works on macOS. It is not supported on iOS.
- Download the latest release from the releases page
- Extract the zip file into your Obsidian plugins folder
- Enable the plugin in Obsidian settings
Note: Granola credentials are fetched by the plugin using a local web server that temporarily serves your credentials file to the plugin. You can review the implementation of this mechanism in
src/services/credentials.ts
.
- Set the path to your Granola token file in the plugin settings
- Configure note syncing:
- Choose whether to sync notes
- Select the destination: a specific folder, daily notes, or daily note folder structure
- Optionally set a section heading for daily notes
- Configure transcript syncing:
- Choose whether to sync transcripts
- Select the destination: a dedicated transcripts folder or daily note folder structure
- Optionally enable linking from notes to their transcripts
- Set up periodic sync and adjust the interval as desired
- Node.js 18 or later
- npm
- Clone the repository
- Install dependencies:
npm install
To build the plugin:
npm run build
The plugin uses Jest for testing. To run the tests:
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:coverage
The plugin uses a combination of unit and integration tests:
-
Unit Tests:
- Test individual service classes and utilities in isolation
- Mock external dependencies
- Focus on business logic
-
Integration Tests:
- Test interactions between components
- Test file system operations
- Test API integration
- Create a new test file in the appropriate test directory
- Follow the existing test patterns
- Use Jest's mocking capabilities for external dependencies
- Run tests to ensure they pass
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Submit a pull request
MIT