NutEgg icon NutEgg Docs
← Back to Website GitHub

Obsidian Plugin Setup & Configuration

The NutEgg Obsidian plugin hosts the local sync server, manages AI communication, matches incoming content to your knowledge trees, and maintains your vault files.

Installation

Option 1: Obsidian Community Plugins (Recommended)

NutEgg is officially listed in the Obsidian Community Plugins directory:

  1. In Obsidian, open Settings → Community plugins.
  2. Ensure Restricted mode is turned off, then click Browse.
  3. Search for NutEgg (or visit NutEgg on Obsidian Community Plugins).
  4. Click Install, then click Enable.

Option 2: Manual Installation

  1. Download main.js, manifest.json, and styles.css from the NutEgg Obsidian Plugin Releases.
  2. In your Obsidian vault, open .obsidian/plugins/ (show hidden folders in your OS if needed).
  3. Create a new directory named nutegg and place the three files inside:
    your-vault/.obsidian/plugins/nutegg/
    ├── main.js
    ├── manifest.json
    └── styles.css
  4. In Obsidian, open Settings → Community plugins, click Reload, and toggle NutEgg on.

Option 3: Using BRAT

  1. Install the BRAT community plugin in Obsidian.
  2. Go to Settings → BRAT → Add Beta plugin.
  3. Enter staff-000/nutegg-obsidian-release and click Add Plugin.
  4. Enable NutEgg once installed.

AI Execution Architecture

NutEgg uses an intelligent dual execution architecture (Protocol 3) that gives you full flexibility between bring-your-own-API-key privacy and zero-key subscription convenience:

🔒 Core Privacy Invariant: API Keys Never Leave Chrome

In Connected API Mode, Obsidian orchestrates vault operations, prompt assembly, and egg indexing, but delegates all AI calls back to Chrome via an authenticated local WebSocket. Chrome executes the call using its locally stored API key. Your API keys are never transmitted to Obsidian, never written to vault notes, and never leave the browser.

┌─────────────────────────────────────────────────────────────────────────────┐
│                           CONNECTED API MODE (Default)                      │
│                                                                             │
│  Chrome Profile A ──(1) HTTP /analyze /confirm──►  Obsidian Plugin          │
│  (Holds API Key A)                                 (127.0.0.1:27123)        │
│                                                            │                │
│                   ◄─(2) WebSocket AI Call /socket──────────┤ Reads _index.md│
│  Calls Provider A                                          │ Assembles prompt│
│  (OpenAI / Claude / Gemini / DeepSeek)                     │                │
│                   ──(3) Authenticated Result─────────────► │                │
│                                                            ▼                │
│  Receives Final Result ◄──────(4) HTTP Result────── Saves to Vault          │
│                                                     (_raw/ & <egg>.md)      │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│                       SHARED SUBSCRIPTION MODE (Zero API Keys)              │
│                                                                             │
│  Chrome Profile A ────┐                                                     │
│                       ├──► Obsidian Plugin (127.0.0.1:27123)                │
│  Chrome Profile B ────┘        │                                            │
│                                ▼                                            │
│                       SubscriptionService (Local CLI or OAuth)              │
│                       ├── ChatGPT Sign-In (OpenAI Responses API)            │
│                       ├── Codex CLI (@openai/codex)                         │
│                       ├── Claude Code CLI (claude auth login)               │
│                       └── Google Gemini (Antigravity CLI: agy)              │
└─────────────────────────────────────────────────────────────────────────────┘

Mode 1: Connected API Mode (Default)

In this mode, you configure your AI provider and API key directly in Chrome Extension Options. Obsidian coordinates the knowledge workflow while Chrome acts as the secure local AI runner.

Mode 2: Shared Subscription Mode & ChatGPT Sign-In

Don't want to manage API keys or pay-per-token credits? NutEgg supports direct sign-in and local developer CLI subscriptions managed inside Obsidian:

Option A: Direct ChatGPT Sign-In (No CLI needed)

  1. In Obsidian, open Settings → NutEgg.
  2. Under AI connection, select ChatGPT sign-in.
  3. Click Continue with ChatGPT, complete the browser authorization flow, and allow plan usage.
  4. Choose your account model (e.g. gpt-4o).
  5. All connected Chrome profiles immediately follow this connection with zero API key setup. Credentials live securely in per-installation OS keychain storage and are never sent to Chrome or stored in vault files.

Option B: Local CLI Subscriptions (Codex, Claude, Gemini)

NutEgg can run official developer CLI tools already installed and logged in on your machine:

Provider CLI Installation Authentication Model Discovery
Codex CLI npm install -g @openai/codex codex login Automatic via app-server
Anthropic Claude Claude Code claude auth login --claudeai Sonnet, Opus, Haiku, or custom ID
Google Gemini Antigravity CLI agy browser flow Automatic via agy models

In Obsidian Settings → NutEgg, simply select your CLI under AI connection. NutEgg's internal SubscriptionService runs inference in a bounded serial queue locally. No separate bridge server or port 27124 is needed.

Local Sync Server & Security

When the plugin is enabled, it automatically boots a background HTTP and WebSocket listener on 127.0.0.1:27123.

🔒 Privacy & Origin Security

The local server binds strictly to the localhost loopback address (127.0.0.1). It enforces strict X-NutEgg-Extension-Origin and token validation, preventing ordinary web pages from accessing your vault. WebSocket connections authenticate on their very first frame.

Workflow & Prompt Customization

NutEgg powers its AI analysis through modular, editable Markdown prompts stored directly in your vault under nutegg/_workflow/: