# Building a free CLI agent with Pi, Ollama, Gemma 4, and Parallel

Tags:Cookbook
Reading time: 4 min
Fully Free CLI with Pi, Ollama, Gemma 4, Parallel

When building software, I’ve often focused on different outcomes: speed, quality, ease of use. In the age of AI, cost is often overlooked. Now, in 2026, I wanted to see: could I vibe-code a CLI that uses AI completely for free? No LLM subscription, no per-token API bills, no hosted inference. Just a local model, a local agent harness, and Parallel's Free Search MCP[Parallel's Free Search MCP](/blog/free-web-search-mcp).

The result: `brief`, a single-file CLI that takes a topic and prints a morning-coffee summary with sources. It was _written by_ a local agent (Pi + gemma4:26b on Ollama) using the Parallel Search MCP to pull docs into context, and it _runs on_ the same free building blocks at runtime, `gemma4:e4b` on local Ollama for summarization and Parallel Search MCP for the news lookup. Full stack, on one machine, at my desk — $0 in API charges, zero API keys in my shell history. (Cost of the laptop not included.)

Here's how it went and where the rough edges were.

## The development stack

  • - **Agent harness:** Pi[Pi](https://github.com/badlogic/pi-mono) (`@mariozechner/pi-coding-agent`). Billed as a _minimal terminal coding harness_ — four built-in tools (`read`, `write`, `edit`, `bash`), everything else via extensions. "Adapt pi to your workflows, not the other way around." MCP support comes from a third-party extension, `pi-mcp-adapter`[`pi-mcp-adapter`](https://github.com/nicobailon/pi-mcp-adapter).
  • - **Model runtime:** Ollama[Ollama](https://ollama.com/)
  • - **Model:** `gemma4:26b` — the 26B Mixture-of-Experts variant with 4B active parameters from Google DeepMind's Gemma 4 family (Apache 2.0 license).
  • - **Search:** Parallel Search MCP[Parallel Search MCP](https://docs.parallel.ai/integrations/mcp/search-mcp) at `https://search.parallel.ai/mcp`. Two tools: `web_search` and `web_fetch`. No auth required.

## Getting it running

Four files end up on disk — two in the project, two global:

### File structure
1
2
3
4
5
6
7
pi_coder/ ├── .mcp.json # Parallel Search MCP endpoint └── .pi/ └── settings.json # pointer to the Ollama provider ~/.pi/agent/ └── models.json # defines the Ollama provider itself```
pi_coder/
├── .mcp.json # Parallel Search MCP endpoint
└── .pi/
└── settings.json # pointer to the Ollama provider
 
~/.pi/agent/
└── models.json # defines the Ollama provider itself
```

### Adding MCP support to Pi

Pi intentionally doesn't ship with MCP support. To use MCP, install the following:

### Install the Pi MCP adapter
1
pi install npm:pi-mcp-adapter```
pi install npm:pi-mcp-adapter
```

### Adding the Parallel Search MCP to Pi

There's nothing to set up server-side — Parallel[Parallel](/) hosts the endpoint. Drop the URL into `.mcp.json`:

### Parallel Search Free MCP Server
1
2
3
4
5
6
7
8
{ "mcpServers": { "parallel-search": { "url": "https://search.parallel.ai/mcp", "directTools": ["web_search", "web_fetch"] } } }```
{
"mcpServers": {
"parallel-search": {
"url": "https://search.parallel.ai/mcp",
"directTools": ["web_search", "web_fetch"]
}
}
}
```

That's the whole add. `directTools` registers `web_search` and `web_fetch` as first-class Pi tools alongside `read`/`write`/`edit`/`bash` — roughly 300–600 tokens of system-prompt overhead for the pair.

To verify it's wired up: `/mcp` inside Pi opens a panel showing every configured server, its connection status, and its tools. You should see `parallel-search` connected with `web_search` and `web_fetch` available.

### Pointing Pi at Ollama

Pi resolves providers globally, so the Ollama definition goes in `~/.pi/agent/models.json`:

### Point Pi at Ollama
1
2
3
4
5
6
7
8
9
10
{ "providers": { "ollama": { "baseUrl": "http://localhost:11434/v1", "api": "openai-completions", "apiKey": "ollama", "models": [{ "id": "gemma4:26b" }] } } }```
{
"providers": {
"ollama": {
"baseUrl": "http://localhost:11434/v1",
"api": "openai-completions",
"apiKey": "ollama",
"models": [{ "id": "gemma4:26b" }]
}
}
}
```

Then the project-local .pi/settings.json just picks it:

### Default provider settings
1
2
3
4
{ "defaultProvider": "ollama", "defaultModel": "gemma4:26b" }```
{
"defaultProvider": "ollama",
"defaultModel": "gemma4:26b"
}
```

Full install:

### Installation
1
2
3
4
5
6
7
8
npm install -g @mariozechner/pi-coding-agent pi install npm:pi-mcp-adapter ollama pull gemma4:26b ollama pull gemma4:e4b ollama serve & # write ~/.pi/agent/models.json (see above) cd pi_coder # contains .mcp.json + .pi/settings.json pi```
npm install -g @mariozechner/pi-coding-agent
pi install npm:pi-mcp-adapter
ollama pull gemma4:26b
ollama pull gemma4:e4b
ollama serve &
# write ~/.pi/agent/models.json (see above)
cd pi_coder # contains .mcp.json + .pi/settings.json
pi
```

## What I asked it to build

I gave Pi a detailed spec for a CLI called `brief`:

### Spec for Pi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# `brief` — a terminal news briefing CLI A tiny CLI that turns a topic into a morning-coffee briefing in your terminal. You type a topic, it fetches what happened recently, and prints a short summary with sources. ## Usage ```bash brief "ai agents" brief "openai" --since 24h brief "rust web frameworks" --bullets 5 ``` Output (stdout, plain text with minimal ANSI): ``` 🗞 ai agents — last 24h • Anthropic shipped Opus 4.7 with 1M-token context… [1] • LangChain released v1.0 with a rewritten runtime… [2] • Researchers at CMU published a paper on… [3] Sources [1] https://… [2] https://… [3] https://… ``` ## Flags | Flag | Default | Purpose | | --- | --- | --- | | `--since <duration>` | `24h` | Recency window (`6h`, `24h`, `7d`) | | `--bullets <n>` | `5` | Number of bullets | | `--json` | off | Emit structured JSON instead of prose | ## How it works Three steps, one file: 1. **Search** — use `@modelcontextprotocol/sdk` with `StreamableHTTPClientTransport` to connect to `https://search.parallel.ai/mcp`, then `client.callTool({ name: "web_search", arguments: { ... } })`. Do **not** hand-roll JSON-RPC over `fetch` — the Streamable HTTP transport has an initialize handshake, session headers, and SSE framing that the SDK handles. When developing, run await client.listTools() once and log the web_search input schema before the first callTool — don't guess argument names; also log the results so you know the shape of the response. Pass `--since` in the search objective. 2. **Summarize** — hand the results to an LLM with a tight prompt: "Return N bullets. One sentence each. Cite each bullet with `[n]` matching the source index. No fluff." The LLM only produces text — it does not call tools, so any Ollama chat model works regardless of its tool-calling maturity. 3. **Print** — render bullets + a numbered source list. In `--json` mode, skip rendering and dump the structured object, e.g.: ```json { "topic": "ai agents", "since": "24h", "bullets": [ { "text": "Anthropic shipped Opus 4.7…", "source": 1 } ], "sources": [ { "n": 1, "url": "https://…", "title": "…" } ] } ``` ## Stack - **Language:** TypeScript (Node), single file, `npx`-runnable. - **Search:** Parallel Search MCP. Docs: `https://docs.parallel.ai/integrations/mcp/search-mcp`. No API key required. - **LLM:** Use ollama + gemma4:e4b (already installed). - **Config:** No config required. - **Install**: installable as a brief command on PATH (e.g. via npm link) ## Non-goals - No caching, no database, no daemon. Run it, read it, close it. - No scheduling or delivery (cron + `brief ... | mail` is the user's job). - No multi-topic dashboards. One topic per invocation keeps the code tiny. ## Tips - **Parallel Search MCP** Use Parallel Search MCP yourself to find the latest documentation for any packages. Use it to look up anything you have a question on. - **No tool-calling from the LLM** The CLI code orchestrates: it calls the MCP, then passes results as plain text to the LLM for summarization. The LLM never calls tools, so Ollama's tool-call parsing quirks are irrelevant here. - **Test** You have all that you need to do a full end-to-end test on your own. Do this before marking as complete. After fixing any bugs, test again until you have determined `brief` is working well.```
# `brief` — a terminal news briefing CLI
 
A tiny CLI that turns a topic into a morning-coffee briefing in your terminal. You type a topic, it fetches what happened recently, and prints a short summary with sources.
 
## Usage
 
```bash
brief "ai agents"
brief "openai" --since 24h
brief "rust web frameworks" --bullets 5
```
 
Output (stdout, plain text with minimal ANSI):
 
```
🗞 ai agents — last 24h
 
• Anthropic shipped Opus 4.7 with 1M-token context… [1]
• LangChain released v1.0 with a rewritten runtime… [2]
• Researchers at CMU published a paper on… [3]
 
Sources
[1] https://…
[2] https://…
[3] https://…
```
 
## Flags
 
| Flag | Default | Purpose |
| --- | --- | --- |
| `--since <duration>` | `24h` | Recency window (`6h`, `24h`, `7d`) |
| `--bullets <n>` | `5` | Number of bullets |
| `--json` | off | Emit structured JSON instead of prose |
 
## How it works
 
Three steps, one file:
 
1. **Search** — use `@modelcontextprotocol/sdk` with `StreamableHTTPClientTransport` to connect to `https://search.parallel.ai/mcp`, then `client.callTool({ name: "web_search", arguments: { ... } })`. Do **not** hand-roll JSON-RPC over `fetch` — the Streamable HTTP transport has an initialize handshake, session headers, and SSE framing that the SDK handles. When developing, run await client.listTools() once and log the web_search input schema before the first callTool — don't guess argument names; also log the results so you know the shape of the response. Pass `--since` in the search objective.
2. **Summarize** — hand the results to an LLM with a tight prompt: "Return N bullets. One sentence each. Cite each bullet with `[n]` matching the source index. No fluff." The LLM only produces text — it does not call tools, so any Ollama chat model works regardless of its tool-calling maturity.
3. **Print** — render bullets + a numbered source list. In `--json` mode, skip rendering and dump the structured object, e.g.:
 
```json
{
"topic": "ai agents",
"since": "24h",
"bullets": [
{ "text": "Anthropic shipped Opus 4.7…", "source": 1 }
],
"sources": [
{ "n": 1, "url": "https://…", "title": "…" }
]
}
```
 
## Stack
 
- **Language:** TypeScript (Node), single file, `npx`-runnable.
- **Search:** Parallel Search MCP. Docs: `https://docs.parallel.ai/integrations/mcp/search-mcp`. No API key required.
- **LLM:** Use ollama + gemma4:e4b (already installed).
- **Config:** No config required.
- **Install**: installable as a brief command on PATH (e.g. via npm link)
 
## Non-goals
 
- No caching, no database, no daemon. Run it, read it, close it.
- No scheduling or delivery (cron + `brief ... | mail` is the user's job).
- No multi-topic dashboards. One topic per invocation keeps the code tiny.
 
## Tips
- **Parallel Search MCP** Use Parallel Search MCP yourself to find the latest documentation for any packages. Use it to look up anything you have a question on.
- **No tool-calling from the LLM** The CLI code orchestrates: it calls the MCP, then passes results as plain text to the LLM for summarization. The LLM never calls tools, so Ollama's tool-call parsing quirks are irrelevant here.
- **Test** You have all that you need to do a full end-to-end test on your own. Do this before marking as complete. After fixing any bugs, test again until you have determined `brief` is working well.
```

## Where the rough edges were

There were a few issues I ran into when doing this setup.

  1. **Errors from Ollama’s tool-call parser.** I ran into several issues where Pi stopped making progress. Looking at the `ollama` logs, I found there was a parsing error when trying to read a file. Politely asking Pi to continue resolved the issue.
  2. **Infinite Thinking loops.** Late in a session, after a lot of back-and-forth and a few file reads, the model's thinking stream would occasionally collapse into spamming the same token. Starting a fresh session fixed it every time.
  3. **Some sessions weren’t productive**. ****The model sometimes went down the wrong path and got stuck. Updating the spec with specific packages we found using Parallel Search helped. Restarting from scratch with the updated spec worked.
  4. **Models biased not to look up information.** I needed to add some extra prompts to use the search MCP to look up package information and/or documentation to ensure the code followed best practices and used the latest packages.

## Takeaways

  • - **Pi is a good fit when you want a minimal harness.** Four tools, extensions for everything else, and a documented event system.
  • - **The Parallel Search MCP is a genuinely nice shape for this.** Free, no auth, two tools, clean interface, and the results are already concise enough for local-model context windows. Drop in for any MCP-aware client. This is a great way to make smaller models smarter by providing updated context from the web.
  • - **The whole stack is $0.** Local inference on hardware you already own, a free and open-source agent harness, and a free search endpoint. For solo projects, prototyping, or any workflow where you don't want a metered API hanging over every keystroke, this is hard to beat.
Matt Harris avatar

By Matt Harris

April 24, 2026

## Related Posts62

Parallel Search is now free via MCP

- [Parallel Search is now free for agents via MCP](https://parallel.ai/blog/free-web-search-mcp)

Reading time: 2 min
Search & Extract Benchmarks

- [Upgrades to the Parallel Search & Extract APIs](https://parallel.ai/blog/parallel-search-extract-ga)

Tags:Benchmarks
Reading time: 5 min
How Finch is scaling plaintiff law with AI agents that research like associates

- [How Finch is scaling plaintiff law with AI agents that research like associates](https://parallel.ai/blog/case-study-finch)

Tags:Case Study
Reading time: 3 min
Genpact and Parallel Web Systems Partner to Drive Tangible Efficiency from AI Systems

- [Genpact and Parallel Web Systems Partner to Drive Tangible Efficiency from AI Systems](https://parallel.ai/blog/genpact-parallel-partnership)

Tags:Partnership
Reading time: 4 min
Genpact & Parallel

- [How Genpact helps top US insurers cut contents claims processing times in half with Parallel ](https://parallel.ai/blog/case-study-genpact)

Tags:Case Study
Reading time: 4 min
DeepSearchQA: Parallel Task API benchmarks deepresearch

- [A new deep research frontier on DeepSearchQA with the Task API Harness](https://parallel.ai/blog/deepsearchqa-taskapi-harness)

Tags:Benchmarks
Reading time: 7 min
How Modal saves tens of thousands annually by building in-house GTM pipelines with Parallel

- [How Modal saves tens of thousands annually by building in-house GTM pipelines with Parallel](https://parallel.ai/blog/case-study-modal)

Tags:Case Study
Reading time: 4 min
Opendoor and Parallel Case Study

- [How Opendoor uses Parallel as the enterprise grade web research layer powering its AI-native real estate operations](https://parallel.ai/blog/case-study-opendoor)

Tags:Case Study
Reading time: 6 min
Introducing stateful web research agents with multi-turn conversations

- [Introducing stateful web research agents with multi-turn conversations](https://parallel.ai/blog/task-api-interactions)

Tags:Product Release
Reading time: 3 min
Parallel is now live on Tempo via the Machine Payments Protocol (MPP)

- [Parallel is live on Tempo, now available natively to agents with the Machine Payments Protocol](https://parallel.ai/blog/tempo-stripe-mpp)

Tags:Partnership
Reading time: 4 min
Kepler | Parallel Case Study

- [How Parallel helped Kepler build AI that finance professionals can actually trust](https://parallel.ai/blog/case-study-kepler)

Tags:Case Study
Reading time: 5 min
Introducing the Parallel CLI

- [Introducing the Parallel CLI](https://parallel.ai/blog/parallel-cli)

Tags:Product Release
Reading time: 3 min
Profound + Parallel Web Systems

- [How Profound helps brands win AI Search with high-quality web research and content creation powered by Parallel](https://parallel.ai/blog/case-study-profound)

Tags:Case Study
Reading time: 4 min
How Harvey is expanding legal AI internationally with Parallel

- [How Harvey is expanding legal AI internationally with Parallel](https://parallel.ai/blog/case-study-harvey)

Tags:Case Study
Reading time: 3 min
Tabstack + Parallel Case Study

- [How Tabstack by Mozilla enables agents to navigate the web with Parallel’s best-in-class web search](https://parallel.ai/blog/case-study-tabstack)

Tags:Case Study
Reading time: 5 min
Parallel | Vercel

- [Parallel Web Tools and Agents now available across Vercel AI Gateway, AI SDK, and Marketplace](https://parallel.ai/blog/vercel)

Tags:Product Release
Reading time: 3 min
Product release: Authenticated page access for the Parallel Task API

- [Authenticated page access for the Parallel Task API](https://parallel.ai/blog/authenticated-page-access)

Tags:Product Release
Reading time: 3 min
Introducing structured outputs for the Monitor API

- [Introducing structured outputs for the Monitor API](https://parallel.ai/blog/structured-outputs-monitor)

Tags:Product Release
Reading time: 3 min
Product release: Research Models with Basis for the Parallel Chat API

- [Introducing research models with Basis for the Parallel Chat API](https://parallel.ai/blog/research-models-chat)

Tags:Product Release
Reading time: 2 min
Parallel + Cerebras

- [Build a real-time fact checker with Parallel and Cerebras](https://parallel.ai/blog/cerebras-fact-checker)

Tags:Cookbook
Reading time: 5 min
DeepSearch QA: Task API

- [Parallel Task API achieves state-of-the-art accuracy on DeepSearchQA](https://parallel.ai/blog/deepsearch-qa)

Tags:Benchmarks
Reading time: 3 min
Product release: Granular Basis

- [Introducing Granular Basis for the Task API](https://parallel.ai/blog/granular-basis-task-api)

Tags:Product Release
Reading time: 3 min
How Amp’s coding agents build better software with Parallel Search

- [How Amp’s coding agents build better software with Parallel Search](https://parallel.ai/blog/case-study-amp)

Tags:Case Study
Reading time: 3 min
Latency improvements on the Parallel Task API

- [Latency improvements on the Parallel Task API ](https://parallel.ai/blog/task-api-latency)

Tags:Product Release
Reading time: 3 min
Product release: Extract

- [Introducing Parallel Extract](https://parallel.ai/blog/introducing-parallel-extract)

Tags:Product Release
Reading time: 2 min
FindAll API - Product Release

- [Introducing Parallel FindAll](https://parallel.ai/blog/introducing-findall-api)

Tags:Product Release,Benchmarks
Reading time: 4 min
Product release: Monitor API

- [Introducing Parallel Monitor](https://parallel.ai/blog/monitor-api)

Tags:Product Release
Reading time: 3 min
Parallel raises $100M Series A to build web infrastructure for agents

- [Parallel raises $100M Series A to build web infrastructure for agents](https://parallel.ai/blog/series-a)

Tags:Fundraise
Reading time: 3 min
How Macroscope reduced code review false positives with Parallel

- [How Macroscope reduced code review false positives with Parallel](https://parallel.ai/blog/case-study-macroscope)

Reading time: 2 min
Product release - Parallel Search API

- [Introducing Parallel Search](https://parallel.ai/blog/introducing-parallel-search)

Tags:Benchmarks
Reading time: 7 min
Benchmarks: SealQA: Task API

- [Parallel processors set new price-performance standard on SealQA benchmark](https://parallel.ai/blog/benchmarks-task-api-sealqa)

Tags:Benchmarks
Reading time: 3 min
Introducing LLMTEXT, an open source toolkit for the llms.txt standard

- [Introducing LLMTEXT, an open source toolkit for the llms.txt standard](https://parallel.ai/blog/LLMTEXT-for-llmstxt)

Tags:Product Release
Reading time: 7 min
Starbridge + Parallel

- [How Starbridge powers public sector GTM with state-of-the-art web research](https://parallel.ai/blog/case-study-starbridge)

Tags:Case Study
Reading time: 4 min
Building a market research platform with Parallel Deep Research

- [Building a market research platform with Parallel Deep Research](https://parallel.ai/blog/cookbook-market-research-platform-with-parallel)

Tags:Cookbook
Reading time: 4 min
How Lindy brings state-of-the-art web research to automation flows

- [How Lindy brings state-of-the-art web research to automation flows](https://parallel.ai/blog/case-study-lindy)

Tags:Case Study
Reading time: 3 min
Introducing the Parallel Task MCP Server

- [Introducing the Parallel Task MCP Server](https://parallel.ai/blog/parallel-task-mcp-server)

Tags:Product Release
Reading time: 4 min
Introducing the Core2x Processor for improved compute control on the Task API

- [Introducing the Core2x Processor for improved compute control on the Task API](https://parallel.ai/blog/core2x-processor)

Tags:Product Release
Reading time: 2 min
How Day AI merges private and public data for business intelligence

- [How Day AI merges private and public data for business intelligence](https://parallel.ai/blog/case-study-day-ai)

Tags:Case Study
Reading time: 4 min
Full Basis framework for all Task API Processors

- [Full Basis framework for all Task API Processors](https://parallel.ai/blog/full-basis-framework-for-task-api)

Tags:Product Release
Reading time: 2 min
Building a real-time streaming task manager with Parallel

- [Building a real-time streaming task manager with Parallel](https://parallel.ai/blog/cookbook-sse-task-manager-with-parallel)

Tags:Cookbook
Reading time: 5 min
How Gumloop built a new AI automation framework with web intelligence as a core node

- [How Gumloop built a new AI automation framework with web intelligence as a core node](https://parallel.ai/blog/case-study-gumloop)

Tags:Case Study
Reading time: 3 min
Introducing the TypeScript SDK

- [Introducing the TypeScript SDK](https://parallel.ai/blog/typescript-sdk)

Tags:Product Release
Reading time: 1 min
Building a serverless competitive intelligence platform with MCP + Task API

- [Building a serverless competitive intelligence platform with MCP + Task API](https://parallel.ai/blog/cookbook-competitor-research-with-reddit-mcp)

Tags:Cookbook
Reading time: 6 min
Introducing Parallel Deep Research reports

- [Introducing Parallel Deep Research reports](https://parallel.ai/blog/deep-research-reports)

Tags:Product Release
Reading time: 2 min
BrowseComp / DeepResearch: Task API

- [A new pareto-frontier for Deep Research price-performance](https://parallel.ai/blog/deep-research-benchmarks)

Tags:Benchmarks
Reading time: 4 min
Building a Full-Stack Search Agent with Parallel and Cerebras

- [Building a Full-Stack Search Agent with Parallel and Cerebras](https://parallel.ai/blog/cookbook-search-agent)

Tags:Cookbook
Reading time: 5 min
Webhooks for the Parallel Task API

- [Webhooks for the Parallel Task API](https://parallel.ai/blog/webhooks)

Tags:Product Release
Reading time: 2 min
Introducing Parallel: Web Search Infrastructure for AIs

- [Introducing Parallel: Web Search Infrastructure for AIs ](https://parallel.ai/blog/introducing-parallel)

Tags:Benchmarks,Product Release
Reading time: 6 min
Introducing SSE for Task Runs

- [Introducing SSE for Task Runs](https://parallel.ai/blog/sse-for-tasks)

Tags:Product Release
Reading time: 2 min
A new line of advanced Processors: Ultra2x, Ultra4x, and Ultra8x

- [A new line of advanced Processors: Ultra2x, Ultra4x, and Ultra8x ](https://parallel.ai/blog/new-advanced-processors)

Tags:Product Release
Reading time: 2 min
Introducing Auto Mode for the Parallel Task API

- [Introducing Auto Mode for the Parallel Task API](https://parallel.ai/blog/task-api-auto-mode)

Tags:Product Release
Reading time: 1 min
A linear dithering of a search interface for agents

- [A state-of-the-art search API purpose-built for agents](https://parallel.ai/blog/search-api-benchmark)

Tags:Benchmarks
Reading time: 3 min
Parallel Search MCP Server in Devin

- [Parallel Search MCP Server in Devin](https://parallel.ai/blog/parallel-search-mcp-in-devin)

Tags:Product Release
Reading time: 2 min
Introducing Tool Calling via MCP Servers

- [Introducing Tool Calling via MCP Servers](https://parallel.ai/blog/mcp-tool-calling)

Tags:Product Release
Reading time: 2 min
Introducing the Parallel Search MCP Server

- [Introducing the Parallel Search MCP Server ](https://parallel.ai/blog/search-mcp-server)

Tags:Product Release
Reading time: 2 min
Starting today, Source Policy is available for both the Parallel Task API and Search API - giving you granular control over which sources your AI agents access and how results are prioritized.

- [Introducing Source Policy](https://parallel.ai/blog/source-policy)

Tags:Product Release
Reading time: 1 min
The Parallel Task Group API

- [The Parallel Task Group API](https://parallel.ai/blog/task-group-api)

Tags:Product Release
Reading time: 1 min
State of the Art Deep Research APIs

- [State of the Art Deep Research APIs](https://parallel.ai/blog/deep-research)

Tags:Benchmarks
Reading time: 3 min
Introducing the Parallel Search API

- [Parallel Search API is now available in alpha](https://parallel.ai/blog/parallel-search-api)

Tags:Product Release
Reading time: 2 min
Introducing the Parallel Chat API - a low latency web research API for web based LLM completions. The Parallel Chat API returns completions in text and structured JSON format, and is OpenAI Chat Completions compatible.

- [Introducing the Parallel Chat API ](https://parallel.ai/blog/chat-api)

Tags:Product Release
Reading time: 1 min
Parallel Web Systems introduces Basis with calibrated confidences - a new verification framework for AI web research and search API outputs that sets a new industry standard for transparent and reliable deep research.

- [Introducing Basis with Calibrated Confidences ](https://parallel.ai/blog/introducing-basis-with-calibrated-confidences)

Tags:Product Release
Reading time: 4 min
The Parallel Task API is a state-of-the-art system for automated web research that delivers the highest accuracy at every price point.

- [Introducing the Parallel Task API](https://parallel.ai/blog/parallel-task-api)

Tags:Product Release,Benchmarks
Reading time: 4 min
![Company Logo](https://parallel.ai/parallel-logo-540.png)

Contact

  • hello@parallel.ai[hello@parallel.ai](mailto:hello@parallel.ai)

Products

  • Search API[Search API](https://docs.parallel.ai/search/search-quickstart)
  • Extract API[Extract API](https://docs.parallel.ai/extract/extract-quickstart)
  • Task API[Task API](https://docs.parallel.ai/task-api/task-quickstart)
  • FindAll API[FindAll API](https://docs.parallel.ai/findall-api/findall-quickstart)
  • Chat API[Chat API](https://docs.parallel.ai/chat-api/chat-quickstart)
  • Monitor API[Monitor API](https://docs.parallel.ai/monitor-api/monitor-quickstart)

Resources

  • About[About](https://parallel.ai/about)
  • Pricing[Pricing](https://parallel.ai/pricing)
  • Docs[Docs](https://docs.parallel.ai)
  • Blog[Blog](https://parallel.ai/blog)
  • Changelog[Changelog](https://docs.parallel.ai/resources/changelog)
  • Careers[Careers](https://jobs.ashbyhq.com/parallel)

Info

  • Terms of Service[Terms of Service](https://parallel.ai/terms-of-service)
  • Customer Terms[Customer Terms](https://parallel.ai/customer-terms)
  • Privacy[Privacy](https://parallel.ai/privacy-policy)
  • Acceptable Use[Acceptable Use](https://parallel.ai/acceptable-use-policy)
  • Trust Center[Trust Center](https://trust.parallel.ai/)
  • Report Security Issue[Report Security Issue](mailto:security@parallel.ai)
LinkedIn[LinkedIn](https://www.linkedin.com/company/parallel-web/about/)Twitter[Twitter](https://x.com/p0)GitHub[GitHub](https://github.com/parallel-web)
All Systems Operational
![SOC 2 Compliant](https://parallel.ai/soc2.svg)

Parallel Web Systems Inc. 2026