No description
Find a file
anshuman-ecc-eth 00a8e5a31c fix: address Obsidian plugin guidelines violations
- 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
2026-04-16 15:18:11 +00:00
.github/workflows update sample plugin with eslint instructions 2025-11-10 12:26:07 +01:00
src fix: address Obsidian plugin guidelines violations 2026-04-16 15:18:11 +00:00
.editorconfig use LF instead of CRLF (#28) 2022-04-15 14:13:31 -04:00
.gitignore Update .gitignore (#25) 2022-01-28 10:34:53 -05:00
.npmrc add version bump script (#10) 2022-01-22 16:13:50 -05:00
AGENTS.md language 2025-09-05 09:10:47 -07:00
esbuild.config.mjs update eslint plugin version 2025-11-14 14:28:33 +01:00
eslint.config.mts update sample plugin with eslint instructions 2025-11-10 12:26:07 +01:00
LICENSE fix: address Obsidian plugin guidelines violations 2026-04-16 15:18:11 +00:00
manifest.json fix: remove Obsidian from description to follow guidelines 2026-04-16 14:46:25 +00:00
package-lock.json update eslint plugin version 2025-11-14 14:28:33 +01:00
package.json feat: implement Hyvmind Uploader plugin with II auth and folder upload 2026-04-16 14:35:39 +00:00
README.md fix: correct license reference from MIT to 0BSD 2026-04-16 14:52:39 +00:00
styles.css fix: address Obsidian plugin guidelines violations 2026-04-16 15:18:11 +00:00
tsconfig.json update eslint plugin version 2025-11-14 14:28:33 +01:00
version-bump.mjs build: only write new minAppVersion requirements to versions.json 2025-04-28 08:38:38 +02:00
versions.json Update for 0.15 2022-08-09 13:38:50 -04:00

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)

  1. Open Settings → Community Plugins
  2. Turn off Safe Mode
  3. Click Browse and search for "Hyvmind Uploader"
  4. Click Install
  5. Enable the plugin

Manual Installation

  1. Download main.js, manifest.json, and styles.css from the latest release
  2. Create folder VaultFolder/.obsidian/plugins/hyvmind-uploader/
  3. Copy the files to this folder
  4. 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
  • ICP Host - Network endpoint:
    • Mainnet: https://icp-api.io
    • Local: http://localhost:8000
  • 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

  1. Click the cloud upload icon in the left ribbon, or
  2. Use command palette: "Hyvmind Uploader: Connect to ICP"
  3. Complete Internet Identity authentication in the popup

Upload a Folder

Method 1 - Right-click:

  1. Right-click any folder in the file explorer
  2. Select "Upload to Hyvmind"

Method 2 - Command:

  1. Open any markdown file
  2. 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

  1. Clone the repository:

    git clone https://github.com/anshuman-ecc-eth/hm-obsidian.git
    cd hm-obsidian
    
  2. Install dependencies:

    npm install
    
  3. Build the plugin:

    npm run build
    
  4. For development with auto-rebuild:

    npm run dev
    
  5. Copy main.js, manifest.json, and styles.css to your vault's plugin folder

Local Testing with ICP

  1. Start local ICP network:

    icp network start -d
    
  2. Deploy Hyvmind canister locally

  3. Configure plugin to use local URLs:

    • Identity Provider: http://id.ai.localhost:8000
    • ICP Host: http://localhost:8000

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

Acknowledgments

Built for Hyvmind - Sanctuary tech for legal researchers