Rapture Inbox
pendingby NoiseMeld
Import Rapture voice notes from Google Drive. Uses a mailbox pattern: notes are downloaded and then removed from Drive.
Rapture Inbox for Obsidian
Automatically sync your Rapture voice notes from Google Drive to your Obsidian vault.
Rapture is a hands-free voice capture app for Android that records your thoughts and transcribes them using AI. Rapture Inbox is the official Obsidian plugin that brings those voice notes into your personal knowledge management system.
Features
- Mailbox Sync Pattern: Notes are downloaded from Drive and then removed, keeping your Drive folder clean
- Automatic Sync: Configurable polling intervals (1, 5, 10, 15, or 30 minutes)
- Sync on Vault Open: Optionally sync when you open your vault
- Manual Sync: Trigger sync anytime via command palette or settings
- YAML Frontmatter: Preserves all metadata from Rapture (date, duration, title, content types, source)
- Duplicate Handling: Automatically handles filename conflicts by appending timestamps
- Secure Authentication: OAuth 2.0 with Google, tokens stored locally
How It Works
Rapture Android App
|
v
Google Drive (Rapture/Obsidian folder)
|
v
Rapture Inbox Plugin (downloads files)
|
v
Your Obsidian Vault (files appear here)
|
v
Google Drive (files deleted after successful download)
This "mailbox" pattern ensures:
- Your Drive folder stays clean (no duplicate management needed)
- Notes appear in your vault automatically
- No data loss (files only deleted after successful vault write)
- One-way sync keeps things simple and predictable
Installation
From Obsidian Community Plugins (Recommended)
- Open Obsidian Settings
- Go to Community Plugins
- Click Browse and search for "Rapture Inbox"
- Click Install, then Enable
Manual Installation
- Download
main.js,styles.css, andmanifest.jsonfrom the latest release - Create a folder called
rapture-inboxin your vault's.obsidian/plugins/directory - Copy the downloaded files into this folder
- Restart Obsidian
- Enable the plugin in Settings > Community Plugins
BRAT Installation (Beta Testing)
- Install BRAT plugin
- Add this repo:
NoiseMeldOrg/rapture-obsidian-plugin - Enable Rapture Inbox in Community Plugins
Quick Start
Step 1: Enable Obsidian in Rapture
- Open the Rapture app on your Android device
- Go to Settings > Obsidian
- Enable the Obsidian destination toggle
- Rapture will create a
Rapture/Obsidianfolder in your Google Drive
Step 2: Connect Obsidian Plugin
- Open Obsidian Settings > Rapture Inbox
- Click Connect to sign in with your Google account
- Authorize access to Drive files created by Rapture
- Verify your email appears in settings
Step 3: Configure Sync
- Set your destination folder (default:
Rapture/) - Choose your preferred sync interval
- Optionally enable sync on vault open
- Click Sync Now to test
Step 4: Start Capturing
- Use Rapture to record a voice note
- Wait for Rapture to process and upload to Drive
- Your note will automatically appear in Obsidian at the next sync
Settings
| Setting | Description | Default |
|---|---|---|
| Google Account | Connect/disconnect your Google account | - |
| Destination folder | Where synced files go in your vault | Rapture/ |
| Sync interval | How often to check for new notes | 5 minutes |
| Sync on vault open | Sync when you open Obsidian | Enabled |
Commands
Access these via the command palette (Ctrl/Cmd + P):
- Rapture: Sync now - Manually trigger a sync
- Rapture: Open settings - Quick access to plugin settings
File Format
Rapture creates markdown files with YAML frontmatter containing metadata:
---
date: 2025-12-24T10:30:00-05:00
duration: 45
title: Meeting Notes
content_types:
- MEETING_NOTES
- TASKS
source: rapture-android
---
## Meeting Notes
- Discussed project timeline
- [ ] Follow up with team
- [x] Review documentation
Frontmatter Fields
| Field | Description | Example |
|---|---|---|
date | Recording timestamp (ISO 8601) | 2025-12-24T10:30:00-05:00 |
duration | Recording length in seconds | 45 |
title | AI-extracted title | Meeting Notes |
content_types | Detected content categories | MEETING_NOTES, TASKS, IDEAS, etc. |
source | Origin of the note | rapture-android |
Requirements
- Obsidian: Version 1.0.0 or later (desktop only)
- Rapture app: Download from Google Play
- Google account: With Google Drive access
- Obsidian destination: Enabled in Rapture settings
Privacy & Security
- Local token storage: OAuth tokens are stored locally in your vault's plugin data (
data.json) - Minimal permissions: Uses
drive.filescope - only accesses files created by Rapture - No external servers: Direct communication with Google Drive API
- No data collection: NoiseMeld never sees your notes or credentials
- Easy revocation: Sign out anytime to clear tokens, or revoke via Google Account settings
Troubleshooting
Notes not appearing
- Check Rapture settings: Ensure Obsidian destination is enabled
- Verify Drive folder: Check that
Rapture/Obsidianfolder exists in Google Drive - Check for files: Verify files appear in the Drive folder after recording
- Try manual sync: Use "Rapture: Sync now" command
- Check destination folder: Ensure the vault folder path is correct
Authentication issues
- Sign out and back in: Settings > Rapture Inbox > Sign Out, then Connect
- Check internet connection: OAuth requires network access
- Revoke and reauthorize: Go to Google Account permissions, revoke Rapture Inbox, then reconnect
Sync failures
- Check console: Open DevTools (Ctrl+Shift+I) and check for errors
- Verify permissions: Ensure the destination folder is writable
- Check token expiry: Sign out and reconnect if tokens might be invalid
- Reduce sync frequency: If rate limited, try a longer sync interval
Files not deleted from Drive
- Check sync result: If download fails, files won't be deleted
- Manual cleanup: Files can be manually deleted from Drive
- Check permissions: Ensure the plugin has delete permission (should be included in
drive.filescope)
Duplicate files appearing
- This is expected behavior when the same filename already exists
- Duplicate files get a timestamp suffix (e.g.,
meeting-1703453400000.md) - Consider using unique titles in Rapture to avoid duplicates
FAQ
Why do I need a plugin? Why doesn't Rapture write directly to my vault?
This is a common question! The short answer: Google Drive API limitations.
Rapture uses the drive.file OAuth scope, which only grants access to files/folders that:
- The app itself created
- The user explicitly selected via Google Picker API
The problem: Most Obsidian vaults are stored locally (not in Google Drive), and even if your vault IS in Drive, the Rapture Android app cannot write to folders it didn't create. The Google Picker API (which would grant this access) is web-only with no native Android SDK.
The solution: This two-component architecture:
- Rapture creates files in its own
Rapture/Obsidianfolder (which it created, so it has access) - This plugin runs on your computer with its own OAuth credentials and can download those files
- The plugin places files wherever you want in your vault
This approach:
- Avoids requesting broad
drivescope (which would access all your Drive files) - Works with any vault location (local, synced, wherever)
- Keeps the Android app's permissions minimal and secure
For more technical details, see ARCHITECTURE.md.
Why isn't there bidirectional sync?
By design, Rapture Inbox uses a one-way "mailbox" pattern. Voice notes flow from Rapture to Obsidian, not the other way around. This simplifies the architecture and prevents sync conflicts.
Can I use this on mobile Obsidian?
The plugin is desktop-only for now. Mobile support may work but is untested. Use Obsidian Sync or another solution to sync your vault to mobile.
What happens if sync fails mid-way?
Successfully downloaded files are saved to your vault. Files that fail to download remain in Drive for the next sync attempt. Files are only deleted from Drive after successful vault write.
Can I sync to multiple vaults?
Currently, the plugin stores settings per-vault. You would need to authenticate separately in each vault, but they would download from the same Drive folder.
Does this work with Obsidian Sync?
Yes! Rapture Inbox writes files to your local vault. Obsidian Sync (or any other sync solution) can then sync those files across devices.
Development
# Clone repository
git clone https://github.com/NoiseMeldOrg/rapture-obsidian-plugin.git
cd rapture-obsidian-plugin
# Install dependencies
npm install
# Development mode (watches for changes)
npm run dev
# Run tests
npm test
# Production build
npm run build
# Lint
npm run lint
Project Structure
rapture-obsidian-plugin/
├── src/
│ ├── main.ts # Plugin entry point
│ ├── settings.ts # Settings tab UI
│ ├── driveApi.ts # Google Drive API wrapper
│ ├── syncEngine.ts # Sync logic
│ └── oauth.ts # OAuth flow
├── tests/ # Jest tests
├── manifest.json # Plugin metadata
├── package.json
└── README.md
Testing
# Run all tests
npm test
# Run with coverage
npm test -- --coverage
# Run specific test file
npm test -- tests/syncEngine.test.ts
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
See CONTRIBUTING.md for detailed guidelines.
Support
- Rapture Website: noisemeld.com/rapture
- GitHub Issues: Report bugs or request features
- Rapture Android App: Google Play Store
License
MIT License - see LICENSE for details.
Made with voice by NoiseMeld
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.