Skip to main content

Open-source multi-provider AI deep research CLI (BYOK)

Project description

parallect

PyPI version Python License CI

Multi-provider AI deep research from the command line. Bring your own keys.

parallect fans a research query out to multiple frontier AI providers in parallel — Perplexity, Gemini, OpenAI, Grok, Anthropic, plus local models via Ollama and LM Studio — then synthesizes their outputs into a single report with cross-referenced citations, extracted claims, and consensus/conflict detection. The result is packaged as a portable, signed .prx archive you can read in any text editor, diff against another run, or publish to prxhub.

$ parallect research "What are the leading theories on dark matter?"

  Fanning out to: perplexity, gemini, openai, anthropic
  [████████████████] 4/4 providers  4m 32s  $0.18
  Synthesizing with anthropic ...
  Extracting 47 claims from 4 reports ...

   Saved to research.prx  (127 KB, signed)

  $ parallect research "..."  - dark matter theories
   4 providers  · 47 claims  · 23 sources  · 92% consensus

Why?

  • No single provider knows everything. Different models see different sources, reason differently, and disagree in useful ways. Ask several at once, then see where they agree.
  • Portable, signed output. Every run saves to an open .prx archive — plain text under the hood, verifiable via Ed25519, shareable via prxhub.
  • BYOK. Your API keys, your bill, your data. No intermediate service sees your queries.
  • Local-first option. Run entirely offline against Ollama or LM Studio if you don't want to call frontier APIs.
  • Scriptable. Stable CLI, structured output, clean exit codes. Pipe it, chain it, call it from your editor.

Install

From PyPI:

pip install parallect

Or with uv:

uv tool install parallect

Requires Python 3.10+.

Quick start

# One-time setup — interactive TUI configures providers, keys, and defaults
parallect config

# Run research
parallect research "What are the leading theories on dark matter?"

# Pick specific providers
parallect research "quantum computing progress 2025" -p perplexity,openai,anthropic

# Deep research mode — premium models, higher cost, deeper reasoning
parallect research "CRISPR gene therapy developments" --deep

# Offline — Ollama or LM Studio only
parallect research "explain transformers" --local

# Follow-on research rooted in a prior bundle
parallect continue output.prx "What about practical applications?"

Commands

Command Purpose
parallect config Interactive TUI for providers, API keys, backends, plugins
parallect research <query> Run a new research query
parallect continue <bundle> <query> Follow-on research rooted in an existing bundle
parallect enhance <bundle> Send a bundle to the hosted Parallect API for claim extraction + evidence graph
parallect jobs <subcommand> Manage async SaaS-mode jobs (status, download)
parallect plugins <subcommand> Manage data-source and pipeline plugins (list, status, index, config)

Run parallect <command> --help for full flags.

Providers

Provider Default model Deep model Env var
Perplexity sonar-deep-research PARALLECT_PERPLEXITY_API_KEY
OpenAI gpt-4o-mini o3-deep-research PARALLECT_OPENAI_API_KEY
Gemini gemini-2.5-flash gemini-2.5-pro PARALLECT_GOOGLE_API_KEY
Anthropic claude-sonnet-4 claude-opus-4 PARALLECT_ANTHROPIC_API_KEY
Grok grok-3 grok-4 PARALLECT_XAI_API_KEY
Ollama llama3.2 (local, no key)
LM Studio default (local, no key)
LDR llama3.2 (local; pip install "parallect[ldr]")

Install optional provider SDKs with the all extra:

pip install "parallect[all]"

Configuration

parallect config writes to ~/.config/parallect/config.toml (or the platform equivalent). Precedence, highest to lowest:

  1. Explicit CLI flags
  2. Environment variables (PARALLECT_* prefix)
  3. Project-local parallect.toml
  4. User config
  5. Defaults

Data source plugins

Plugins let parallect search and cite your local content alongside web sources. Built-in plugins:

Plugin Purpose
filesystem Index a directory of markdown / text / PDF
obsidian Index an Obsidian vault, respecting links and graph ranking
prior_research Reuse prior .prx bundles as a knowledge base
prxhub Pull from a prxhub collection

Add one via parallect config → "Data source plugins" → "Add", or edit config.toml directly.

Pipeline plugins

External Python packages can hook into the research pipeline at four points:

class ResearchPlugin:
    async def pre_research(self, query: str, providers: list[str]) -> str: ...
    async def post_provider(self, provider: str, result: Any) -> Any: ...
    async def post_synthesis(self, synthesis: Any) -> Any: ...
    async def post_bundle(self, bundle: Any) -> Any: ...

Register via the parallect.plugins entry point. See docs/PLUGINS.md for the full protocol.

Output format

Every run saves to a .prx bundle — a gzipped tar archive:

research.prx
├── manifest.json          JSON-LD envelope: providers, cost, provenance
├── manifest.jws           Ed25519 signature of manifest hash
├── public-key.jwk         Public key for standalone verification
├── query.md               The research question
├── providers/
│   ├── perplexity/report.md + meta.json
│   ├── gemini/report.md + meta.json
│   └── ...
├── synthesis/
│   ├── report.md          Unified cross-provider synthesis
│   └── claims.json        Extracted atomic claims with provider attribution
├── sources/registry.json  Deduplicated, quality-scored sources
├── evidence/graph.json    Claim-to-source graph
└── provenance/graph.jsonld  W3C PROV-O provenance

Every file is human-readable text or JSON — tar -xzf research.prx and read in any editor.

Use the prx CLI to read, validate, diff, merge, sign, and publish bundles.

Documentation

Development

git clone https://github.com/parallect/parallect.git
cd parallect
uv sync --group dev
uv run pytest tests/
uv run ruff check src/ tests/

Contributing

Contributions welcome — see CONTRIBUTING.md. For security reports, email security@parallect.ai.

License

MIT — see LICENSE.


Built by SecureCoders. A hosted managed version is available at parallect.ai — same multi-provider pipeline, with billing, team workspaces, and a web dashboard.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

parallect-0.2.0.tar.gz (602.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

parallect-0.2.0-py3-none-any.whl (115.4 kB view details)

Uploaded Python 3

File details

Details for the file parallect-0.2.0.tar.gz.

File metadata

  • Download URL: parallect-0.2.0.tar.gz
  • Upload date:
  • Size: 602.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for parallect-0.2.0.tar.gz
Algorithm Hash digest
SHA256 10c0c676243af63a1b699de45e76dfa04b9481b4849afde3ac16443d479f8c83
MD5 0c8b6237c47d296d37b645d6023c70d0
BLAKE2b-256 dd46e718da0247d5448ed4593aa2f4f1bfb35fee68e745881fc158e6ea7c9fee

See more details on using hashes here.

Provenance

The following attestation bundles were made for parallect-0.2.0.tar.gz:

Publisher: release.yml on parallect/parallect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file parallect-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: parallect-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 115.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for parallect-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a6816bdca3b94f496add4302c072e3eb80e44adf31e78ffc6644505dac8b4a92
MD5 1788ad8f9f73dfcf12a20c700efd5d1b
BLAKE2b-256 6de96c08e9da314b7698d59bd860106c6d9aa401aff2f47c810b79b6ddfa2e8d

See more details on using hashes here.

Provenance

The following attestation bundles were made for parallect-0.2.0-py3-none-any.whl:

Publisher: release.yml on parallect/parallect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page