ReallyGood Research
approvedby reallygood83
Run NotebookLM/Tavily-style deep research and publish Markdown plus HTML into your vault. - This plugin has not been manually reviewed by Obsidian staff.
ReallyGood Research
Obsidian/CLI deep-research publisher for NotebookLM MCP and Tavily.
BRAT install
- Install the BRAT Obsidian plugin.
- Add this repository:
reallygood83/reallygood-research. - Enable
ReallyGood Researchin Obsidian. - Run
ReallyGood Research: Open deep research console.
The plugin is desktop-only because it writes files directly into your local vault.
Privacy and permissions
ReallyGood Research does not include client-side telemetry or ads.
The plugin uses network requests only when you run a provider that needs them:
- Tavily requests are sent to Tavily's API to create research reports, search, extract, and test usage.
- NotebookLM requests are handled by your configured local
notebooklm-mcpcommand, which uses your own NotebookLM/Google login. - Optional AI synthesis calls a local CLI you select, such as Claude Code, Codex, Gemini, Grok, Antigravity, or a custom command.
The plugin accesses files outside your vault only for local configuration and tools:
- Tavily keys are saved to
~/.reallygood-research.env, not to Obsidian settings. - NotebookLM and AI provider commands may run local CLIs installed on your machine.
Tavily requires your own API key. NotebookLM and optional AI synthesis require accounts or local CLI sessions that you manage outside this plugin.
Obsidian ribbon buttons
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.
Quick start
Tavily only
This is the easiest path after saving a Tavily API key.
- Paste a Tavily API key into
Tavily API key. - Click
Save key. - Keep
Providersastavily. - Choose an output folder.
- Run a research topic.
The plugin writes:
- a Markdown note
- an optional HTML report
- JSON history under
.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
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
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:
codexclaudegeminigrokantigravitycustom
Leave 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.
Local checkout example
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.
CLI
node bin/deep-research.mjs run \
--topic "Agentic AI vertical market" \
--providers notebooklm,tavily \
--vault-dir "/path/to/Obsidian/Vault/Research" \
--html
Outputs:
- Markdown note in the selected vault folder
- optional HTML report
- JSON history under
.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.
MCP
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_extract
Example 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.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.