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.0.tar.gz (11.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.3.0-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: multi_agent_registry-0.3.0.tar.gz
  • Upload date:
  • Size: 11.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.3.0.tar.gz
Algorithm Hash digest
SHA256 6a083cf75e8dfa80d3dbf255308aaf04c786f0eb842e1d07efd32e7b58f0f822
MD5 934247561e491e5fd7fc0db028a714ef
BLAKE2b-256 86b4e8dc37aa007a05cc22d067c707c4dc2fc2bcfd3e58e54248a6ccbde070d3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for multi_agent_registry-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f0ff82092cb61832333780ceb1adc38e2fc869752ee03c8e1965de25c1dd6eaf
MD5 edddb072b550ea56c2316828e0d8252a
BLAKE2b-256 b588d1a352996312006746f8f571892c665b72eddc44f180d63c281692bc82b1

See more details on using hashes here.

Provenance

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

This release

0.3.0 This release

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