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.3.1.tar.gz (13.4 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.3.1-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: multi_agent_registry-0.3.1.tar.gz
  • Upload date:
  • Size: 13.4 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.3.1.tar.gz
Algorithm Hash digest
SHA256 290aef6a97202a3438ab3d4a72cb66a44859c59d5ff85ed1a4ed04baffd95df2
MD5 d9940e00a78e005eddb08eacfb635c4f
BLAKE2b-256 125dc5050e0ce64faa208e8b8c57d0f3d8cfa4d81e43abe0196f50addd9e803c

See more details on using hashes here.

Provenance

The following attestation bundles were made for multi_agent_registry-0.3.1.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.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for multi_agent_registry-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f67ec129bfee61ac1ed3637b58e1e0b1a69ee65da009e7db14590e8a50a07ad9
MD5 0ad41a9bf0396aa79dc3d8863384db45
BLAKE2b-256 b7802fee91ee65540b8f3591dda18c09b7b2e22e78387ea7b85a2cb1e9dd3916

See more details on using hashes here.

Provenance

The following attestation bundles were made for multi_agent_registry-0.3.1-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

This release

0.3.1 This release

2 files

0.3.0

2 files

0.2.0

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