reallygood83242 downloadsRun NotebookLM/Tavily-style deep research and publish Markdown plus HTML into your vault.
Obsidian/CLI deep-research publisher for NotebookLM MCP and Tavily.
reallygood83/reallygood-research.ReallyGood Research in Obsidian.ReallyGood Research: Open deep research console.The plugin is desktop-only because it writes files directly into your local vault.
ReallyGood Research does not include client-side telemetry or ads.
The plugin uses network requests only when you run a provider that needs them:
notebooklm-mcp command, which uses your own NotebookLM/Google login.The plugin accesses files outside your vault only for local configuration and tools:
~/.reallygood-research.env, not to Obsidian settings.Tavily requires your own API key. NotebookLM and optional AI synthesis require accounts or local CLI sessions that you manage outside this plugin.
When the plugin is enabled, it automatically adds two ribbon buttons:
ReallyGood Research: opens the deep research console.Open ReallyGood HTML report: opens the HTML report matching the active generated Markdown note, or opens the active HTML report directly.After updating through BRAT, toggle the plugin off and on or reload Obsidian if the new ribbon button does not appear immediately.
This is the easiest path after saving a Tavily API key.
Tavily API key.Save key.Providers as tavily.The plugin writes:
.deep-research-publisher/The key can be saved from the research console or from plugin settings. It is written to ~/.reallygood-research.env, not to Obsidian settings. Tavily reports use the Tavily Research API; keyless Search output is not used for research notes.
NotebookLM uses uvx by default, so users do not need to install nlm before clicking Login NotebookLM.
Default commands:
NotebookLM login command: uvx --from notebooklm-mcp-cli nlm login
NotebookLM MCP command: uvx --from notebooklm-mcp-cli notebooklm-mcp
For faster repeat use, the plugin also shows this optional install command in the console and settings as Copy install.
uv tool install notebooklm-mcp-cli
After installing permanently, advanced users may change the settings to:
NotebookLM login command: nlm login
NotebookLM MCP command: notebooklm-mcp
Click Login NotebookLM in the console or Open login popup in settings, approve the browser login, then set Providers to either:
notebooklm
or:
notebooklm,tavily
If uv is not on the Obsidian shell path, use the full path to uvx in those two command fields.
AI synthesis is optional. It uses a local CLI that the user has already logged into, not an API key stored by this plugin.
Supported built-in choices:
codexclaudegeminigrokantigravitycustomLeave AI provider as None if no local AI CLI is installed or logged in.
The plugin searches common macOS/Linux paths, NVM/Bun/Cargo user bins, and Windows CLI names such as .exe, .cmd, and .ps1. On Windows it also checks common npm/AppData install locations. For Antigravity, both agy and antigravity command names are supported.
If you are developing against a local notebooklm-cli checkout, use commands like:
cd /path/to/notebooklm-cli && uv run nlm login
cd /path/to/notebooklm-cli && uv run notebooklm-mcp
On macOS Homebrew installs, Obsidian may not inherit /opt/homebrew/bin. In that case, use /opt/homebrew/bin/uv instead of uv.
node bin/deep-research.mjs run \
--topic "Agentic AI vertical market" \
--providers notebooklm,tavily \
--vault-dir "/path/to/Obsidian/Vault/Research" \
--html
Outputs:
.deep-research-publisher/Use --mock only for local test output. Tavily mode always uses the Tavily Research API and requires TAVILY_API_KEY. NotebookLM mode uses the notebooklm-mcp stdio server from notebooklm-mcp-cli.
NotebookLM example with a custom MCP command:
node bin/deep-research.mjs run \
--topic "미국 AI 에듀테크 트렌드" \
--providers notebooklm \
--vault-dir "/path/to/Obsidian/Vault/Research" \
--html \
--notebooklm-mcp-command "uvx --from notebooklm-mcp-cli notebooklm-mcp"
To save a Tavily API key locally:
node bin/deep-research.mjs setup tavily
The key is saved to ~/.reallygood-research.env with file mode 600. You can override the path with --env-path.
To synthesize the research with an AI subscription you already use, call a local CLI instead of storing an API key:
node bin/deep-research.mjs run \
--topic "AI search workflow comparison" \
--providers tavily \
--vault-dir "/path/to/Obsidian/Vault/Research" \
--html \
--ai-provider claude
Supported built-in CLI providers are codex, claude, gemini, grok, and antigravity. The plugin resolves common Homebrew, local-bin, npm-global, Bun, Cargo, and NVM paths so Obsidian can find CLIs that your terminal can use. For any other logged-in CLI, use --ai-provider custom --ai-command "<command>". The research prompt is passed through stdin.
In the Obsidian plugin, choose AI provider from the console or settings. This uses your existing local CLI login/OAuth session; it does not ask for or store AI provider API keys.
The same package can run as a local stdio MCP server:
node /path/to/reallygood-research/bin/deep-research.mjs mcp
It exposes:
run_researchsetup_tavilytavily_searchtavily_extractExample MCP server config shape:
{
"mcpServers": {
"reallygood-research": {
"command": "node",
"args": ["/path/to/reallygood-research/bin/deep-research.mjs", "mcp"]
}
}
}
run_research uses Tavily Research API output for saved reports. tavily_search and tavily_extract remain utility MCP tools, but they also require the configured Tavily API key; keyless mode is not supported.