Insurgently

Obsidian plugin· Active · beta · not yet released

Model Hub

Named roles mapped to provider and model, keys kept in secret storage, and a cost ledger with the billed cost of every call. Other plugins call it for their AI.

Model Hub roadmap

What's planned for Model Hub, release by release. Each item links to an issue; comment there if it matters to you or if you'd like to build it. Items labelled help wanted are good places to start. The order can change as people use the Hub.

  1. 0.1Beta7 items
  2. 0.2Community directory5 items
  3. 0.3On your notes8 items
  4. 0.4For plugin developers6 items
  5. 1.0Tools, inside and outside Obsidian4 items
  6. 2.0Agents5 items
Built so far

providers (OpenRouter, Anthropic, Ollama, LM Studio, any OpenAI-compatible endpoint, TypeSafe for decisions), keys in Obsidian's secret storage, seven tiers plus tiers of your own, ordered fallbacks, per-call ceilings and monthly budgets, roles owned by the plugins that register them, a cost ledger with billed-vs-listed checks, typed refusals, complete / stream / embed / decide / batch, per-call routing, skills, optional OpenTelemetry export, a note chat panel, and the same core as a Node library for programs outside Obsidian.

0.1 — Beta

next

A public beta through BRAT, during Obsidian October.

  • OpenAI as a provider, through its own API#31
  • Google Gemini as a provider#32
  • Azure OpenAI as a provider#33
  • Your ChatGPT subscription through the Codex command-line tool. Built for the beta, and included in a release only once OpenAI's terms for this use are clear#34
  • README screenshots and a short demo#10
  • A week of real use with correct costs in the ledger and no unexplained refusals#11
  • Tag 0.1.0; beta thread on the Obsidian forum

0.2 — Community directory

planned
  • Submission to the Obsidian community directory, and fixes from its review#12
  • Provider presets: a tile for xAI, Mistral, DeepSeek, Groq, Cerebras, llama.cpp and LiteLLM over the OpenAI-compatible module, once there is a price source for their models#35
  • Searchable settings with Obsidian 1.13's settings API#13
  • Router models (openrouter/auto and similar) as candidates: the ceiling goes through OpenRouter's max_price, and the billed cost is counted afterwards#14
  • Skill suggestion in the chat panel: decide() picks at most one skill for the question#15

0.3 — On your notes

planned

The panel becomes a place to work on notes, not only ask about them.

  • Apply a reply: insert, replace the selection, append or make a new note, with a diff first#36
  • Selection commands: rewrite, summarize, continue or translate from the command palette or the right-click menu#37
  • Saved prompts as notes: each note in a prompts folder becomes a command with its own tier and skills#38
  • Wider context: several notes, links and backlinks, a folder, a Base's rows, images and PDFs#39
  • Fill a note's properties from structured output, against a schema you choose#43
  • Compare tiers: one question, two tiers, side by side with cost and time#40
  • Saved conversations as notes#41
  • Budget in the panel: the session's spend and what is left this month#42

0.4 — For plugin developers

planned
  • API types on npm, so npm i gives you getHub() and the types#16
  • A developer guide and an example plugin: registering roles, calling a tier, handling refusals, reading usage#17
  • AI Providers compatibility: plugins built on the AI Providers API get roles, the ledger and ceilings unchanged, and providers configured there can be imported#18
  • Provider modules from other plugins: a plugin can register its own provider through the API#19
  • A headless command (model-hub complete <role>): the core already runs outside Obsidian as a Node library, with keys from the OS keychain or the environment and the same ledger; the command and a published package remain#20
  • Scheduled live tests against OpenRouter in CI, with a spend cap#21

1.0 — Tools, inside and outside Obsidian

planned

What a plugin on the Hub can do, you can ask for: in the Hub's panel, in a workflow, or from the agent you already use outside Obsidian. This is the release the other plugins' "in Claude" releases wait for.

  • A tool registry: a plugin registers what it can do (make a shelf, search a collection) the way it registers roles, and the Hub's panel can ask for it#45
  • The Hub's own tools over your vault: read a note, search, propose a change you approve#55
  • Permissions and run budgets: tools allowed per role, read-only by default, writes as proposed changes you approve, folder scopes, a spending limit per run#44
  • Your vault, shelves and collections in Claude Code, Claude Desktop or Codex: the Hub runs an MCP server on your machine. Add it once, and every tool above, the Hub's and the plugins', is there under the same permissions and counted in the same ledger. The one server for the family: no plugin runs its own#49

2.0 — Agents

planned

Agent runs with a budget and a permission record, for other plugins and in the Hub's own panel.

  • A multi-turn harness as an API: tool loops, steering and follow-up, reasoning handoff between providers, a save after every step (resume after a reload), sessions saved as notes#22
  • MCP client: tools from MCP servers, HTTP servers first#46
  • Workflows as notes: a workflow is a note naming its tiers, tools, folders and budget, run and steered from the panel. Built in to start: research into a sourced note, vault housekeeping, inbox processing, a job over a folder with review#47
  • Ask other plugins' indexes from the panel: Clusters' collections first, then shelves through Books & Shelves#52
  • External agents over ACP (Agent Client Protocol): drive Claude Code, Gemini CLI and others through the Hub#23

Exploring

Not scheduled. Research or a design comes first.

  • Ask the vault: answers from the whole vault through an embeddings index #48
  • Memory: a Hub memory interface with pluggable backends, plain notes by default #24
  • Durable workflows for long jobs #25
  • The MCP server with Obsidian closed: the core already runs as a Node library, so a headless server could serve the tools whose data sits on disk, with the same ledger; writes stay inside Obsidian #53
  • The Hub as an OpenAI-compatible endpoint, so programs that speak that API use your roles, limits and ledger #54
  • Role evaluation: your own examples against several models, to choose which serves a role #50
  • Web research for local models through a search API as a tool (Exa, Tavily, Brave, SearXNG) #26
  • More built-in skills: Dataview, Tasks, Templater #27
  • Mobile: an HTTP-only Hub could run on mobile #28
  • Amazon Bedrock and Google Vertex as providers #51
  • OpenRouter's Decisions API as a second native decision provider, once it leaves alpha #29
  • The Claude Code provider (your Claude subscription through the claude you installed). Built, but left out of releases until Anthropic's terms for this use are clear #30

Not planned

So you know before you ask.

  • A general coding agent or a terminal. Tools built for that already exist; the Hub will drive them over ACP instead.
  • Any telemetry sent to the author.

Read from ROADMAP.md in the plugin's repo.

How the plugins feed each other →