Skip to main content

Multi-Agent Registry 🤖

Unified detection, configuration, plugin, and chat history discovery registry for AI coding agent CLIs.

multi_agent_registry gives any tool a single place to ask "which AI coding agents are installed on this machine, where do they keep their config/plugins, and where did they leave their chat history?" — instead of every consumer re-implementing per-agent path guessing.


Installation

pip install multi-agent-registry
# or using uv
uv add multi-agent-registry

The PyPI distribution name is multi-agent-registry; the importable module name is multi_agent_registry:

import multi_agent_registry

Features

  • Multi-Agent CLI Detection: A registry of 15 agent CLIs — Claude Code, Antigravity (agy), OpenCode, GitHub Copilot, Grok Build, Cursor, Windsurf, Aider, Codex, Continue, Cline, Roo Code, Goose, ShellGPT, and Open Interpreter — with binary name, description, and config paths for each.
  • Installation & MCP Inspection: inspect_agent_cli()/inspect_all_agent_clis() check whether each agent's binary is on PATH, whether it's registered as an MCP server, and whether a plugin is installed for it.
  • Chat Log Discovery: discover_agent_chats() scans the on-disk chat log locations for agents that expose them (currently Claude Code, Antigravity, OpenCode, Aider, Cline, and Roo Code), with recursive-glob patterns pruned to skip node_modules/.venv/.git/.gwt for speed.
  • Chat Inspection Helpers: get_chat_workspace() and get_chat_last_active() read each agent's own on-disk format to resolve which project a chat belongs to and when it was truly last active (not just file mtime).
  • Plugin Enable/Disable State: Per-agent plugin opt-out, persisted to ~/.config/task-agent/config.json, for tools that install agent-specific plugins/skills.

Quickstart

from multi_agent_registry import get_agent_cli_registry, discover_agent_chats, get_chat_workspace

# What agents does this machine have?
for agent_id, info in get_agent_cli_registry().items():
    print(agent_id, info.name, info.binary)

# Where has Claude Code been chatting, and about which projects?
for chat in discover_agent_chats(agent_id="claude"):
    workspace = get_chat_workspace(chat)
    print(chat.path, "->", workspace)

API Reference

Registry & detection

from multi_agent_registry import AgentCLIInfo, get_agent_cli_registry, inspect_agent_cli, inspect_all_agent_clis

registry: dict[str, AgentCLIInfo] = get_agent_cli_registry()
info = registry["claude"]
info.id, info.name, info.binary, info.description
info.config_paths        # list[Path] of possible config file locations
info.mcp_support, info.mcp_command_example
info.plugin_support, info.plugin_path, info.skills_path, info.plugin_template
info.chat_log_patterns   # list[str] glob patterns, [] if not yet supported
info.chat_parser_type    # "json" | "jsonl" | "markdown"

status = inspect_agent_cli("claude")   # dict: installed, mcp_registered, plugin_installed, ...
all_status = inspect_all_agent_clis()  # same, for every registered agent

Chat discovery

from multi_agent_registry import DiscoveredChat, discover_agent_chats
from pathlib import Path

# All chats for one agent, scanned globally (patterns rooted at ~ or /)
# or within specific project roots (patterns relative to a project).
chats: list[DiscoveredChat] = discover_agent_chats(
    agent_id="aider",                                   # omit to scan every agent
    search_roots=[Path.home() / "repos"],                # only used for project-relative patterns
)
# chat.agent_id, chat.path, chat.parser_type

Agents currently wired up for chat discovery: claude, agy (Antigravity), opencode, aider, cline, roo. The rest are registered for detection/config/plugin purposes but don't yet have chat_log_patterns populated — contributions welcome.

Chat inspection

from multi_agent_registry import get_chat_workspace, get_chat_last_active

get_chat_workspace(chat)     # -> Path | None, the project dir the chat belongs to
get_chat_last_active(chat)   # -> datetime | None, true last-message time (jsonl only for now);
                              #    callers should fall back to file mtime when None

Notes for tools built on this library

  • Absolute/home-relative chat_log_patterns (e.g. ~/.claude/projects/**/*.jsonl) are scanned once, globally — search_roots/project_dir only affects patterns relative to a project (e.g. Aider's **/.aider.chat.history.md).
  • discover_agent_chats() shells out to find for bare recursive-filename patterns (pruning noise directories natively) rather than glob.glob(recursive=True), which must fully traverse a tree before filtering — orders of magnitude faster on large repo trees.
  • get_chat_workspace()/get_chat_last_active() read each agent's actual on-disk message format (e.g. scanning forward past Claude Code's leading metadata-only jsonl lines for the first cwd/timestamp) rather than assuming a fixed line/file layout.

Download files

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

Source Distribution

multi_agent_registry-0.2.0.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

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

multi_agent_registry-0.2.0-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: multi_agent_registry-0.2.0.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for multi_agent_registry-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b250bed0bdd7f1aa12051a03cc0acbd1701e0db80894e1cc23f9994adba1e924
MD5 2788839f32ffac4f5e73ca20dd2e783d
BLAKE2b-256 cb63f7edca554f50bcf155a2017bff50028d342cf0387dd0ef77225921cd6632

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on InTEGr8or/multi-agent-registry

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

File details

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

File metadata

File hashes

Hashes for multi_agent_registry-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 60601e9351da5c15e0e1759d16dce63edc9f404486eaf66b8a5305c50e172e5e
MD5 8e2eba8220347fb402d35e2fdcf55b20
BLAKE2b-256 97afd25cff841e46e8c20f50f1248145df45bafee11b8e7eb75937798e1c1ed9

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on InTEGr8or/multi-agent-registry

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

Release history Release notifications | RSS feed

0.5.0

2 files

0.3.1

2 files

0.3.0

2 files

This release

0.2.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page