Capability-based multi-tool matrix for research, note-taking, document authoring, and publishing. Agents compose providers (CLI-Anything harnesses, public CLIs, Python libs, native binaries, cloud APIs) per capability.
Knowledge / Office / Research Matrix (S2 — v2 capability-based)
Scenario S2. Strongest coverage in the current ecosystem: search, reference management, notes, synthesis, documents, and diagrams all have first-party harnesses; Python/native fallbacks fill the rest.
Use preflight as an availability report, not as a provider selector.
Treat provider order as documentation order only.
Choose from user requirements, output quality bar, offline needs, credential state, install cost, and provider notes.
Escalate to paid or metered APIs only when credentials are already present or the user explicitly consents.
Offline context? Filter to offline: true providers.
Preflight
Run cli-hub matrix preflight knowledge-research --json first. Use the manual block below for extra probes or older cli-hub versions.
cli-hub list --json
python - <<'PY'
import importlib.util
for m in ("pyzotero","bibtexparser","trafilatura","readability","httpx","playwright",
"python_docx","openpyxl","pptx","reportlab","pypdf","pdfplumber","weasyprint",
"langchain","llama_index","haystack"):
print(m, importlib.util.find_spec(m) is not None)
PYfor b in pandoc qpdf pdftk exiftool latexmk tex dot mermaid plantuml hugo mkdocs jekyll;docommand -v "$b" >/dev/null &&echo"$b: yes"||echo"$b: no"donefor e in OPENAI_API_KEY ANTHROPIC_API_KEY GOOGLE_API_KEY PERPLEXITY_API_KEY TAVILY_API_KEY \
SERPAPI_API_KEY BRAVE_API_KEY FIRECRAWL_API_KEY \
NOTION_API_KEY SEMANTIC_SCHOLAR_API_KEY WORDPRESS_TOKEN GHOST_ADMIN_KEY;do[ -n "${!e}"]&&echo"$e: set"||echo"$e: unset"done
Suggest-to-user template
To enable <capability> via <provider>, please set <ENV_VAR>.
Cost: <cost notes>
Quality: <quality tier>
Reply 'skip' to fall back to <next provider>.
Example: To enable live Notion sync via the Notion API, please set NOTION_API_KEY. Cost: free tier suffices for most users. Quality: sota (round-trips block/page IDs). Reply 'skip' to fall back to local Obsidian vault + manual paste.
Capabilities
research.search — web / literature search
Provider
Kind
Requires
Cost
Quality
Offline
cli-anything-exa
harness-cli
EXA_API_KEY
metered
sota
no
cli-anything-browser / safari / clibrowser
harness-cli
browser installed
free
high
no
duckduckgo-search
python
pkg
free
good
no
googlesearch-python
python
pkg
free
good
no
Perplexity API
api
PERPLEXITY_API_KEY
paid
sota
no
Tavily
api
TAVILY_API_KEY
metered
high
no
Brave Search
api
BRAVE_API_KEY
metered
good
no
Google Custom Search
api
GOOGLE_API_KEY
metered
high
no
research.retrieve — fetch article text / scrape pages
meeting-to-doc — turn a recorded meeting into a structured document.
Uses: text.transcribe (via S1 matrix), knowledge.synthesize, document.author, document.format.