Hyvmind Uploader
unlistedby anshuman-ecc-eth
Upload folders to Hyvmind ICP app as source graphs.
Hyvmind Uploader
Upload Obsidian folders to Hyvmind ICP app as source graphs.
Features
- Internet Identity Authentication - Secure login using delegation tokens with configurable expiry (1, 7, or 30 days)
- Folder Upload - Right-click any folder to upload to Hyvmind as a source graph
- Recursive Scanning - Includes all subfolders and markdown files
- Smart Mapping - Converts folder structure to Hyvmind's graph format:
- Root folder → Curation
- Level 1 subfolders → Swarm (tagged "obsidian-import")
- Level 2+ subfolders → Location
- Markdown files → Law Entity + Interpretation Entity (with full content)
- Batch Upload - Automatically splits large payloads (>2MB) into manageable batches
- Progress Tracking - Real-time upload progress with status modal
Installation
From Obsidian Community Plugins (Coming Soon)
- Open Settings → Community Plugins
- Turn off Safe Mode
- Click Browse and search for "Hyvmind Uploader"
- Click Install
- Enable the plugin
Manual Installation
- Download
main.js,manifest.json, andstyles.cssfrom the latest release - Create folder
VaultFolder/.obsidian/plugins/hyvmind-uploader/ - Copy the files to this folder
- Enable the plugin in Obsidian settings
Configuration
Settings
Open Settings → Hyvmind Uploader to configure:
- Canister ID - The Hyvmind backend canister (default provided)
- Identity Provider URL - Internet Identity URL:
- Mainnet:
https://id.ai - Local:
http://id.ai.localhost:8000
- Mainnet:
- ICP Host - Network endpoint:
- Mainnet:
https://icp-api.io - Local:
http://localhost:8000
- Mainnet:
- Display Name - Your name for the Hyvmind user profile
Use the Environment Presets buttons to quickly switch between mainnet and local configurations.
Authentication
This plugin uses delegation token authentication because Obsidian's embedded browser cannot directly sign in with Internet Identity.
How to Authenticate
-
Open https://hyvmind.app/obsidian-token in your browser (Chrome, Firefox, Safari, Edge — not inside Obsidian)
-
Sign in with your passkey, Apple, Google, or Microsoft account
-
Click "Copy" to copy your delegation token
-
In Obsidian, go to Settings → Hyvmind Uploader:
- Paste the token into the Delegation token field
- Click Import token
-
The token status will show "Valid" when authenticated
Token Expiry
Tokens are valid for 30 days. When yours expires, repeat the steps above to get a new one.
Deleting Your Token
Click Delete token in the settings to remove your authentication. You will need to re-authenticate to use the plugin again.
Usage
Upload a Folder
Method 1 - Right-click:
- Right-click any folder in the file explorer
- Select "Upload to Hyvmind"
Method 2 - Command:
- Open any markdown file
- Use command palette: "Hyvmind Uploader: Upload current folder"
Disconnect
Use command palette: "Hyvmind Uploader: Disconnect from ICP"
Status Bar
The status bar at the bottom shows:
- 🟢 Green - Connected (shows truncated principal)
- ⚪ Gray - Not connected
Requirements
- Obsidian v0.15.0 or higher
- Internet Identity for authentication (from https://id.ai)
- Connection to Internet Computer (mainnet or local)
Development
Local Development
-
Clone the repository:
git clone https://github.com/anshuman-ecc-eth/hm-obsidian.git cd hm-obsidian -
Install dependencies:
npm install -
Build the plugin:
npm run build -
For development with auto-rebuild:
npm run dev -
Copy
main.js,manifest.json, andstyles.cssto your vault's plugin folder
Local Testing with ICP
-
Start local ICP network:
icp network start -d -
Deploy Hyvmind canister locally
-
Configure plugin to use local URLs:
- Identity Provider:
http://id.ai.localhost:8000 - ICP Host:
http://localhost:8000
- Identity Provider:
Architecture
src/
├── main.ts # Plugin entry point
├── settings.ts # Settings UI
├── icp/
│ ├── auth.ts # Internet Identity auth (token-based)
│ ├── agent.ts # ICP agent/actor
│ └── uploader.ts # Folder-to-graph conversion
├── ui/
│ ├── status-bar.ts # Connection indicator
│ └── token-modal.ts # Token import instructions
└── types/
└── canister.ts # Candid types
Tech Stack
- Obsidian API - Plugin framework
- TypeScript - Type-safe development
- @icp-sdk/auth - Internet Identity authentication
- @icp-sdk/core - ICP agent and actor
- esbuild - Build tooling
License
MIT License - See LICENSE for details
Support
- Website: hyvmind.app
- Repository: github.com/anshuman-ecc-eth/hm-obsidian
Acknowledgments
Built for Hyvmind - Sanctuary tech for legal researchers
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.