mirror of
https://github.com/anshuman-ecc-eth/hm-obsidian.git
synced 2026-07-22 14:00:28 +00:00
No description
- Remove console.log from onload/onunload (Rule 21) - Fix settings headings to use sentence case (Rule 15) - Update LICENSE to proper MIT with Hyvmind copyright - Add comprehensive CSS with accessibility features - Use registerDomEvent for automatic cleanup - Add ARIA attributes for screen reader support - Add XSS sanitization helper for Notices |
||
|---|---|---|
| .github/workflows | ||
| src | ||
| .editorconfig | ||
| .gitignore | ||
| .npmrc | ||
| AGENTS.md | ||
| esbuild.config.mjs | ||
| eslint.config.mts | ||
| LICENSE | ||
| manifest.json | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| styles.css | ||
| tsconfig.json | ||
| version-bump.mjs | ||
| versions.json | ||
Hyvmind Uploader
Upload Obsidian folders to Hyvmind ICP app as source graphs.
Features
- Internet Identity Authentication - Secure login using Internet Identity with 8-hour session expiry
- 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.
Usage
Connect to ICP
- Click the cloud upload icon in the left ribbon, or
- Use command palette: "Hyvmind Uploader: Connect to ICP"
- Complete Internet Identity authentication in the popup
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
- 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
│ ├── agent.ts # ICP agent/actor
│ └── uploader.ts # Folder-to-graph conversion
├── ui/
│ └── status-bar.ts # Connection indicator
└── 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
0BSD 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