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.1.0.tar.gz (590.8 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.1.0-py3-none-any.whl (111.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for parallect-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e5a688f38430872eeb4dc8d8c6efdb3377c84256942650c31daa079a36a27e62
MD5 9b7ed1b124eb5304687a1012ceb02bd7
BLAKE2b-256 68b980cd410cb2858b391af3eaf8bacb10d1e76366db84e98307fb6989897379

See more details on using hashes here.

Provenance

The following attestation bundles were made for parallect-0.1.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.1.0-py3-none-any.whl.

File metadata

  • Download URL: parallect-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 111.7 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 58d28299688729a127e696b4985c9d2ddb559ec4d1819b91a1e4e30b2725abd1
MD5 016bc9608f45cf8660accd876250ece3
BLAKE2b-256 9b622735503c0ba7e2ee72139b649c3dcbd4e4f32f1394a470b5c91675e24e05

See more details on using hashes here.

Provenance

The following attestation bundles were made for parallect-0.1.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