Parallel Research logo

Parallel Research

Community
Dark-Alex-17
parallel-research

Fan-out exploration protocol — fire multiple research agents in parallel, wait for completion notifications, and never duplicate delegated work.

Overview

PublisherDark-Alex-17
Repositorycoyote
Skill nameparallel-research
Stars
56
Forks
2
Bundled files
Instructions only
LicenseAGPL-3.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by Dark-Alex-17 on GitHub. Read the source before you install it.

Installation

Install the Parallel Research AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/Dark-Alex-17/coyote/tree/main/assets/skills/parallel-research
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Dark-Alex-17/coyote.git /tmp/coyote
mkdir -p .claude/skills
cp -r /tmp/coyote/assets/skills/parallel-research .claude/skills/parallel-research
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Parallel Research in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Parallel Research on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Parallel Research is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

You are entering a research phase. Exploration is parallelizable; serial reads leave throughput on the table.

Fan out, don't read serially

For any non-trivial codebase question, fire 2-5 explore agents in parallel, each scoped to a different angle:

  • Auth implementation? → one for routes, one for middleware, one for token handling, one for error response shape.
  • Bug investigation? → one for the failing path, one for similar working paths, one for recent changes near the area.

Each agent gets a NARROW slice. Narrow scope = fast, focused result. Broad scope = the agent over-reads and returns a wall of text.

The wait protocol

After spawning background agents:

  1. If you have non-overlapping work to do (work that doesn't depend on the delegated research), do it now.
  2. If you don't, end your response. Do not call agent__collect immediately — the agent is still running.
  3. The system notifies you when the agent completes (pending_escalations or completion event).
  4. On notification, call agent__collect to retrieve results.

Polling agent__collect on a still-running agent blocks your turn for nothing.

Anti-duplication rule (BLOCKING)

Once you delegate a search to an explore agent, do not perform that same search yourself.

Forbidden:

  • After firing explore for "auth middleware", running fs_grep for "auth middleware" yourself
  • "Just quickly checking" the same files the delegate is checking
  • Re-doing the research while waiting impatiently

Allowed:

  • Non-overlapping work in a different module
  • Preparation work that doesn't depend on the delegated result
  • Ending your response and waiting

Duplicate searches waste tokens, may contradict the delegate, and defeat the point of parallelism.

Team mode (optional): let lanes message each other

Every spawned LLM-loop agent has a built-in mailbox (agent__send_message / agent__check_inbox) — no configuration needed. By default parallel lanes are isolated, and for most bursts that is correct. Turn on team mode when one lane's discovery is likely to CHANGE what another lane should look for:

  • Adjacent slices of one system — the routes lane finds the middleware file the token lane is hunting for.
  • Mixed-angle bursts — one lane discovers the project already vendors library X, which should redirect another lane's search immediately, not after synthesis.
  • Long-running lanes where routing a fact through you costs a full collect/re-spawn round trip.

Skip team mode when lanes are genuinely independent (survey-style sweeps, one-agent-per-module audits). And NEVER wire reviewer lanes together (adversary, code-reviewer, security-reviewer, probe): their verdicts derive value from independence — shared chatter biases them.

Orchestrator protocol

Agent IDs exist only after spawning, so the roster travels as a message:

  1. Spawn the whole burst as usual.

  2. Immediately send EVERY lane the roster:

    agent__send_message --id <routes-lane-id> --message "Teammate roster: middleware=<id>, tokens=<id>. If you find a specific fact that belongs to a teammate's lane, message them directly; check your inbox after each search round and before finalizing."

  3. Synthesis is unchanged: every lane still reports its findings back to YOU. Teammate messages move facts sideways mid-flight; they never replace the final report.

Graph agents (librarian) cannot participate — their nodes have no inbox tools. A fact that affects a graph lane routes through you: collect, then re-spawn or refine that lane's prompt.

Worker rules (for agents that receive a roster)

  • A message is one or two sentences of specific fact: file:line, exact symbol/term, verbatim quote — never chat, status updates, or opinions.
  • A teammate's message never broadens YOUR slice: use it to sharpen your own search, or carry the pointer into your report. Entirely outside your slice → ignore it.
  • Check your inbox after each search round and ALWAYS before finalizing — a teammate's fact may be the search term you were missing.

Stop conditions

Stop searching when:

  • The same information appears across multiple sources
  • Two search iterations yield no new useful data
  • A direct answer was found
  • You have enough context to proceed confidently

Over-exploration is as bad as under-exploration. Time spent searching is time not spent shipping.

Parallel + sequential composition

It is fine to fire explore and then oracle when oracle needs the explore results — just sequence them:

  1. Fire explore(s) in parallel.
  2. End response, wait for completion.
  3. Synthesize findings, fire oracle with those findings as CONTEXT.
  4. End response, wait for oracle.
  5. Act on oracle's recommendation.

Don't fire oracle blind to "save a turn" — it will give worse advice.

Anti-patterns

  • One huge "explore everything about X" agent → slow, unfocused result
  • Serial explores ("wait for first, then fire next") → unnecessary latency
  • Firing 8+ parallel agents → diminishing returns, harder to synthesize
  • Calling agent__collect immediately after spawn → wastes a turn

Frequently asked questions

What does the Parallel Research AI skill do?

Fan-out exploration protocol — fire multiple research agents in parallel, wait for completion notifications, and never duplicate delegated work.

Why use Parallel Research on TypingMind?

Because you install it once and use it with any model. Parallel Research is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Parallel Research in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Dark-Alex-17/coyote/tree/main/assets/skills/parallel-research. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Parallel Research?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Parallel Research?

As many as you like. As long as a model supports skills, you can use Parallel Research with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Parallel Research AI skill free?

Yes. It is published on GitHub by Dark-Alex-17 under the AGPL-3.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇