Satset Sync
pendingby Satset Note-taking
Sync your Satset notes with automatic decryption.
Satset Sync for Obsidian
Synchronize your Satset Note-taking notes directly into your Obsidian vault — including encrypted notes with automatic decryption.
✨ Features
- One-way sync (Satset → Obsidian) — your notes in Obsidian are read-only copies
- End-to-end encryption support — encrypted notes are decrypted locally using your credentials
- Automatic sync — configurable interval (default: every 5 minutes)
- Manual sync — via ribbon icon or command palette
- Frontmatter metadata — each note includes
satset_id,created_at,updated_at, tags, pinned/archived status - Force resync — button to re-download all notes from scratch
- Deduplication — existing notes are updated in-place, never duplicated
📦 Installation
From Community Plugins (Recommended)
- Open Settings → Community Plugins → Browse
- Search for "Satset Sync"
- Click Install, then Enable
Manual Installation
- Download the latest release from GitHub Releases
- Create the plugin folder (if it doesn't exist):
<your-vault>/.obsidian/plugins/satset-sync/ - Copy these files into the folder:
main.jsmanifest.jsonstyles.css
- Restart Obsidian
- Enable the plugin in Settings → Community Plugins
- Go to Settings → Satset Sync and enter your API Key (see Getting Started)
- Click Connect and verify the status shows "Connected"
[!NOTE] The plugin stores its configuration in
data.jsoninside the plugin folder.
If you update the plugin files manually, the olddata.jsonis preserved — which means previously saved settings (including API keys) will persist.
If you experience authentication errors (e.g., 401) after an update, check that theapiKeyvalue indata.jsonis correct, or deletedata.jsonto reset all settings.
🚀 Getting Started
1. Create a Satset Account
If you don't have one, sign up at satset-notetaking.pages.dev.
2. Get Your API Key
- Log in to Satset Note-taking
- Go to Settings → API Keys
- Generate a new API key and copy it
Important: Keep your API key secure. Do not share it publicly.
3. Connect in Obsidian
- Open Settings → Satset Sync
- Paste your API Key into the API Key field
- Click Connect
- You should see ✅ Connected as your-email@example.com
Note: Your API key is stored locally in the plugin's
data.jsonfile. It is never sent to any third-party service.
4. Sync Your Notes
- Click the 🔄 icon in the left ribbon, or
- Use the command palette:
Satset Sync: Sync notes from Satset
Your notes will appear in the Satset/ folder (configurable in settings).
⚙️ Settings
| Setting | Description | Default |
|---|---|---|
| API Key | Your Satset API key for authentication | — |
| Sync Folder | Vault folder for synced notes | Satset |
| Auto-sync Interval | Minutes between auto-syncs (0 = manual only) | 5 |
| Include Archived | Also sync archived notes | false |
| Force Full Resync | Clear sync history and re-download everything | — |
🔐 Encryption & Privacy
[!WARNING] Important Security Note:
When you sync notes to Obsidian using this plugin, they are decrypted and stored as standard Markdown (.md) files in your vault.These files are NOT encrypted at rest by the plugin.
"End-to-end encryption" in Satset applies to transmission (HTTPS) and server-side storage (AES-GCM 256-bit). Once notes reach your device, the plugin decrypts them and writes plaintext Markdown files.
If you require security for your local notes, you must use full-disk encryption (e.g., BitLocker, FileVault, LUKS) or an encrypted container (e.g., VeraCrypt) for your Obsidian vault.
For a detailed explanation, see Security Overview.
- All notes in Satset are encrypted using AES-GCM 256-bit with PBKDF2 key derivation
- The decryption key is derived locally from your credentials — it never leaves your device
- The plugin communicates directly with Supabase (the backend) using HTTPS
- No third-party servers or analytics are involved
🏗 How It Works
Satset Web App → Supabase (encrypted) → Obsidian Plugin (decrypt locally) → Markdown files
- Plugin authenticates using your API key via a Supabase Edge Function
- Fetches notes updated since the last sync
- Encrypted notes are decrypted locally using your encryption key
- Notes are written as
.mdfiles with YAML frontmatter
🔧 Troubleshooting
401 Unauthorized Error on Connect
Cause: The API key stored in data.json is invalid or outdated.
Fix:
- Close Obsidian completely (check Task Manager / System Tray)
- Navigate to
<your-vault>/.obsidian/plugins/satset-sync/ - Open
data.jsonin a text editor - Verify the
apiKeyfield contains your current, valid API key - Save the file, then reopen Obsidian
- Go to Settings → Satset Sync → Connect
Alternatively, delete data.json entirely to reset all plugin settings, then reconfigure.
"Decrypt failed" on Some Notes
A small number of notes may have been created with a different encryption format. This is rare and won't affect other notes. These notes will be skipped during sync.
Sync Completes But Notes Are Missing
- Check if the notes are archived — enable Include Archived in settings
- Try Force Full Resync to re-download all notes from scratch
- Verify you are connected with the correct account
Plugin Not Appearing After Manual Install
- Ensure the folder is named exactly
satset-sync(notsatset-obsidian-sync) - Verify all three files (
main.js,manifest.json,styles.css) are present - Restart Obsidian completely and enable the plugin in Community Plugins
❓ FAQ
Q: Will editing/deleting notes in Obsidian affect my Satset data?
A: No. Sync is one-way (Satset → Obsidian). Your original notes are always safe.
Q: What happens if I sync again?
A: Only notes updated since the last sync are downloaded. Existing files with matching titles are updated in-place.
Q: Are my notes encrypted in Obsidian?
A: No. Notes are decrypted by the plugin and stored as plaintext Markdown files. Use full-disk encryption on your device for local security. See Security Overview.
Q: What is stored in data.json?
A: Your plugin configuration including API key, sync folder, sync interval, last sync timestamp, and authentication tokens. This file persists across plugin updates.
🛠 Development
# Install dependencies
npm install
# Build the plugin
npm run build
# Watch for changes during development
npm run dev
📄 License
🔗 Links
- Satset Note-taking — The web app
- GitHub Repository — Source code & issues
- Security Overview — Detailed security documentation
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.