agentnet-cli 0.2.0__tar.gz → 0.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. agentnet_cli-0.2.2/ARCHITECTURE.md +47 -0
  2. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/CLAUDE.md +10 -57
  3. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/PKG-INFO +59 -71
  4. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/README.md +58 -70
  5. agentnet_cli-0.2.2/docs/archive/superpowers/plans/2026-05-10-openclaw-native-plugin.md +635 -0
  6. agentnet_cli-0.2.2/docs/archive/superpowers/specs/2026-05-10-openclaw-native-plugin-design.md +282 -0
  7. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/pyproject.toml +3 -3
  8. agentnet_cli-0.2.2/src/agentnet_cli/cli/__init__.py +1 -0
  9. agentnet_cli-0.2.2/src/agentnet_cli/cli/core/__init__.py +1 -0
  10. {agentnet_cli-0.2.0/src/agentnet_cli → agentnet_cli-0.2.2/src/agentnet_cli/cli/core}/connect.py +4 -4
  11. {agentnet_cli-0.2.0/src/agentnet_cli → agentnet_cli-0.2.2/src/agentnet_cli/cli/core}/detect.py +5 -5
  12. {agentnet_cli-0.2.0/src/agentnet_cli → agentnet_cli-0.2.2/src/agentnet_cli/cli/core}/disconnect.py +3 -3
  13. {agentnet_cli-0.2.0/src/agentnet_cli → agentnet_cli-0.2.2/src/agentnet_cli/cli/core}/register.py +2 -2
  14. agentnet_cli-0.2.0/src/agentnet_cli/setup.py → agentnet_cli-0.2.2/src/agentnet_cli/cli/core/setup_wizard.py +20 -16
  15. {agentnet_cli-0.2.0/src/agentnet_cli → agentnet_cli-0.2.2/src/agentnet_cli/cli/core}/status.py +2 -5
  16. agentnet_cli-0.2.2/src/agentnet_cli/cli/core/updater.py +294 -0
  17. {agentnet_cli-0.2.0/src/agentnet_cli → agentnet_cli-0.2.2/src/agentnet_cli/cli}/main.py +81 -52
  18. agentnet_cli-0.2.2/src/agentnet_cli/cli/marketplace/__init__.py +1 -0
  19. agentnet_cli-0.2.2/src/agentnet_cli/cli/marketplace/agent.py +18 -0
  20. {agentnet_cli-0.2.0/src/agentnet_cli/commands → agentnet_cli-0.2.2/src/agentnet_cli/cli/marketplace}/discover.py +2 -2
  21. agentnet_cli-0.2.2/src/agentnet_cli/cli/marketplace/search.py +124 -0
  22. agentnet_cli-0.2.2/src/agentnet_cli/connectors/__init__.py +1 -0
  23. {agentnet_cli-0.2.0/src/agentnet_cli/agents → agentnet_cli-0.2.2/src/agentnet_cli/connectors}/claude.py +12 -8
  24. {agentnet_cli-0.2.0/src/agentnet_cli/agents → agentnet_cli-0.2.2/src/agentnet_cli/connectors}/codex.py +7 -5
  25. {agentnet_cli-0.2.0/src/agentnet_cli/agents → agentnet_cli-0.2.2/src/agentnet_cli/connectors}/copilot.py +5 -1
  26. {agentnet_cli-0.2.0/src/agentnet_cli/agents → agentnet_cli-0.2.2/src/agentnet_cli/connectors}/cursor.py +35 -1
  27. {agentnet_cli-0.2.0/src/agentnet_cli/agents → agentnet_cli-0.2.2/src/agentnet_cli/connectors}/hermes.py +4 -4
  28. agentnet_cli-0.2.2/src/agentnet_cli/connectors/openclaw.py +119 -0
  29. {agentnet_cli-0.2.0/src/agentnet_cli/agents → agentnet_cli-0.2.2/src/agentnet_cli/connectors}/registry.py +1 -1
  30. agentnet_cli-0.2.2/src/agentnet_cli/connectors/shims.py +18 -0
  31. agentnet_cli-0.2.2/src/agentnet_cli/connectors/templates/SKILL.hosted.md +161 -0
  32. agentnet_cli-0.2.2/src/agentnet_cli/connectors/templates/codex/skill.md +12 -0
  33. agentnet_cli-0.2.2/src/agentnet_cli/connectors/templates/copilot/agentnet.agent.md +16 -0
  34. agentnet_cli-0.2.2/src/agentnet_cli/connectors/templates/cursor/agent.md +9 -0
  35. agentnet_cli-0.2.2/src/agentnet_cli/connectors/templates/cursor/agentnet.mdc +8 -0
  36. agentnet_cli-0.2.2/src/agentnet_cli/connectors/templates/shared/context.md +82 -0
  37. agentnet_cli-0.2.2/src/agentnet_cli/connectors/templates/shared/default-chat.md +3 -0
  38. agentnet_cli-0.2.2/src/agentnet_cli/connectors/templates/vscode/instructions.md +5 -0
  39. {agentnet_cli-0.2.0/src/agentnet_cli/agents → agentnet_cli-0.2.2/src/agentnet_cli/connectors}/vscode.py +1 -1
  40. agentnet_cli-0.2.2/src/agentnet_cli/infra/__init__.py +1 -0
  41. {agentnet_cli-0.2.0/src/agentnet_cli → agentnet_cli-0.2.2/src/agentnet_cli/infra}/manifest.py +27 -1
  42. agentnet_cli-0.2.2/src/agentnet_cli/infra/package_paths.py +20 -0
  43. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2/src/agentnet_cli/integrations/claude}/.claude-plugin/marketplace.json +2 -2
  44. {agentnet_cli-0.2.0/claude-plugin → agentnet_cli-0.2.2/src/agentnet_cli/integrations/claude/plugin}/.claude-plugin/plugin.json +1 -1
  45. agentnet_cli-0.2.2/src/agentnet_cli/integrations/claude/plugin/agents/marketplace.md +23 -0
  46. agentnet_cli-0.2.2/src/agentnet_cli/integrations/claude/plugin/hooks/hooks.json +22 -0
  47. agentnet_cli-0.2.2/src/agentnet_cli/integrations/claude/plugin/skills/agentnet/SKILL.md +35 -0
  48. agentnet_cli-0.2.2/src/agentnet_cli/integrations/openclaw/.mcp.json +10 -0
  49. agentnet_cli-0.2.2/src/agentnet_cli/integrations/openclaw/index.js +17 -0
  50. agentnet_cli-0.2.2/src/agentnet_cli/integrations/openclaw/openclaw.plugin.json +22 -0
  51. agentnet_cli-0.2.2/src/agentnet_cli/integrations/openclaw/package.json +24 -0
  52. agentnet_cli-0.2.2/src/agentnet_cli/integrations/openclaw/skills/agentnet/SKILL.md +32 -0
  53. agentnet_cli-0.2.2/src/agentnet_cli/integrations/shared/discovery-skill.base.md +82 -0
  54. agentnet_cli-0.2.2/src/agentnet_cli/marketplace/__init__.py +5 -0
  55. agentnet_cli-0.2.0/src/agentnet_cli/marketplace.py → agentnet_cli-0.2.2/src/agentnet_cli/marketplace/auth.py +2 -2
  56. agentnet_cli-0.2.2/src/agentnet_cli/marketplace/catalogs/__init__.py +1 -0
  57. agentnet_cli-0.2.2/src/agentnet_cli/marketplace/catalogs/claude_marketplace.py +89 -0
  58. agentnet_cli-0.2.2/src/agentnet_cli/marketplace/catalogs/clawhub.py +82 -0
  59. {agentnet_cli-0.2.0/src/agentnet_cli/platform → agentnet_cli-0.2.2/src/agentnet_cli/marketplace}/client.py +18 -2
  60. agentnet_cli-0.2.2/src/agentnet_cli/marketplace/skills/__init__.py +1 -0
  61. agentnet_cli-0.2.2/src/agentnet_cli/marketplace/skills/client.py +61 -0
  62. agentnet_cli-0.2.2/src/agentnet_cli/marketplace/skills/discovery.py +501 -0
  63. agentnet_cli-0.2.2/src/agentnet_cli/marketplace/skills/skillsmp.py +83 -0
  64. agentnet_cli-0.2.2/src/agentnet_cli/tools/__init__.py +1 -0
  65. agentnet_cli-0.2.2/src/agentnet_cli/tools/handlers.py +164 -0
  66. {agentnet_cli-0.2.0/src/agentnet_cli/hermes_plugin → agentnet_cli-0.2.2/src/agentnet_cli/tools/hermes}/__init__.py +6 -5
  67. {agentnet_cli-0.2.0/src/agentnet_cli/hermes_plugin → agentnet_cli-0.2.2/src/agentnet_cli/tools/hermes}/handlers.py +21 -12
  68. agentnet_cli-0.2.2/src/agentnet_cli/tools/hermes/plugin.yaml +24 -0
  69. agentnet_cli-0.2.2/src/agentnet_cli/tools/hermes/schemas.py +172 -0
  70. agentnet_cli-0.2.2/src/agentnet_cli/tools/hermes/skills/agentnet/SKILL.md +45 -0
  71. agentnet_cli-0.2.0/src/agentnet_cli/mcp/server.py → agentnet_cli-0.2.2/src/agentnet_cli/tools/mcp_server.py +112 -36
  72. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/tests/conftest.py +1 -1
  73. agentnet_cli-0.2.2/tests/test_agent_cmd.py +51 -0
  74. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/tests/test_claude.py +1 -1
  75. agentnet_cli-0.2.2/tests/test_claude_marketplace.py +115 -0
  76. agentnet_cli-0.2.2/tests/test_clawhub_client.py +99 -0
  77. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/tests/test_cli.py +46 -34
  78. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/tests/test_codex.py +4 -1
  79. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/tests/test_config.py +5 -5
  80. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/tests/test_copilot.py +5 -2
  81. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/tests/test_cursor.py +5 -2
  82. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/tests/test_detect.py +6 -6
  83. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/tests/test_discover_cmd.py +9 -9
  84. agentnet_cli-0.2.2/tests/test_discovery.py +325 -0
  85. agentnet_cli-0.2.2/tests/test_discovery_skill.py +56 -0
  86. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/tests/test_e2e.py +6 -2
  87. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/tests/test_hermes.py +1 -1
  88. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/tests/test_hermes_plugin.py +21 -19
  89. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/tests/test_manifest.py +3 -3
  90. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/tests/test_marketplace.py +5 -5
  91. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/tests/test_mcp_tools.py +151 -1
  92. agentnet_cli-0.2.2/tests/test_openclaw.py +119 -0
  93. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/tests/test_paths.py +11 -11
  94. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/tests/test_platform_client.py +14 -1
  95. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/tests/test_register.py +22 -22
  96. agentnet_cli-0.2.2/tests/test_search_cmd.py +76 -0
  97. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/tests/test_server.py +44 -33
  98. agentnet_cli-0.2.2/tests/test_skills_client.py +62 -0
  99. agentnet_cli-0.2.2/tests/test_skillsmp_client.py +96 -0
  100. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/tests/test_updater.py +63 -34
  101. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/tests/test_vscode.py +5 -5
  102. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/uv.lock +1 -1
  103. agentnet_cli-0.2.0/claude-plugin/agents/marketplace.md +0 -27
  104. agentnet_cli-0.2.0/claude-plugin/hooks/hooks.json +0 -14
  105. agentnet_cli-0.2.0/claude-plugin/skills/agentnet/SKILL.md +0 -71
  106. agentnet_cli-0.2.0/src/agentnet_cli/agents/openclaw.py +0 -54
  107. agentnet_cli-0.2.0/src/agentnet_cli/agents/shims.py +0 -9
  108. agentnet_cli-0.2.0/src/agentnet_cli/commands/__init__.py +0 -0
  109. agentnet_cli-0.2.0/src/agentnet_cli/commands/agent.py +0 -32
  110. agentnet_cli-0.2.0/src/agentnet_cli/commands/session.py +0 -35
  111. agentnet_cli-0.2.0/src/agentnet_cli/commands/wallet.py +0 -48
  112. agentnet_cli-0.2.0/src/agentnet_cli/hermes_plugin/plugin.yaml +0 -17
  113. agentnet_cli-0.2.0/src/agentnet_cli/hermes_plugin/schemas.py +0 -182
  114. agentnet_cli-0.2.0/src/agentnet_cli/hermes_plugin/skills/agentnet/SKILL.md +0 -46
  115. agentnet_cli-0.2.0/src/agentnet_cli/mcp/README.md +0 -64
  116. agentnet_cli-0.2.0/src/agentnet_cli/mcp/__init__.py +0 -0
  117. agentnet_cli-0.2.0/src/agentnet_cli/mcp/tools.py +0 -67
  118. agentnet_cli-0.2.0/src/agentnet_cli/platform/README.md +0 -79
  119. agentnet_cli-0.2.0/src/agentnet_cli/platform/__init__.py +0 -0
  120. agentnet_cli-0.2.0/src/agentnet_cli/shims/SKILL.md +0 -224
  121. agentnet_cli-0.2.0/src/agentnet_cli/shims/codex/skill.md +0 -8
  122. agentnet_cli-0.2.0/src/agentnet_cli/shims/copilot/agentnet.agent.md +0 -14
  123. agentnet_cli-0.2.0/src/agentnet_cli/shims/cursor/agent.md +0 -9
  124. agentnet_cli-0.2.0/src/agentnet_cli/shims/cursor/agentnet.mdc +0 -8
  125. agentnet_cli-0.2.0/src/agentnet_cli/shims/shared/context.md +0 -62
  126. agentnet_cli-0.2.0/src/agentnet_cli/shims/vscode/instructions.md +0 -3
  127. agentnet_cli-0.2.0/src/agentnet_cli/updater.py +0 -123
  128. agentnet_cli-0.2.0/tests/__init__.py +0 -0
  129. agentnet_cli-0.2.0/tests/test_agent_cmd.py +0 -89
  130. agentnet_cli-0.2.0/tests/test_openclaw.py +0 -38
  131. agentnet_cli-0.2.0/tests/test_session_cmd.py +0 -77
  132. agentnet_cli-0.2.0/tests/test_wallet_cmd.py +0 -107
  133. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/.github/workflows/ci.yml +0 -0
  134. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/.github/workflows/publish.yml +0 -0
  135. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/.gitignore +0 -0
  136. {agentnet_cli-0.2.0/docs → agentnet_cli-0.2.2/docs/archive}/superpowers/plans/2026-05-09-hermes-native-plugin.md +0 -0
  137. {agentnet_cli-0.2.0/docs → agentnet_cli-0.2.2/docs/archive}/superpowers/plans/2026-05-09-marketplace-cli-and-skill.md +0 -0
  138. {agentnet_cli-0.2.0/docs → agentnet_cli-0.2.2/docs/archive}/superpowers/plans/2026-05-10-claude-native-plugin.md +0 -0
  139. {agentnet_cli-0.2.0/docs → agentnet_cli-0.2.2/docs/archive}/superpowers/specs/2026-05-09-hermes-native-plugin-design.md +0 -0
  140. {agentnet_cli-0.2.0/docs → agentnet_cli-0.2.2/docs/archive}/superpowers/specs/2026-05-09-marketplace-cli-and-skill-design.md +0 -0
  141. {agentnet_cli-0.2.0/docs → agentnet_cli-0.2.2/docs/archive}/superpowers/specs/2026-05-10-claude-native-plugin-design.md +0 -0
  142. {agentnet_cli-0.2.0 → agentnet_cli-0.2.2}/src/agentnet_cli/__init__.py +0 -0
  143. {agentnet_cli-0.2.0/src/agentnet_cli/agents → agentnet_cli-0.2.2/src/agentnet_cli/connectors}/README.md +0 -0
  144. {agentnet_cli-0.2.0/src/agentnet_cli/agents → agentnet_cli-0.2.2/src/agentnet_cli/connectors}/base.py +0 -0
  145. {agentnet_cli-0.2.0/src/agentnet_cli/shims → agentnet_cli-0.2.2/src/agentnet_cli/connectors/templates}/README.md +0 -0
  146. {agentnet_cli-0.2.0/src/agentnet_cli → agentnet_cli-0.2.2/src/agentnet_cli/infra}/config.py +0 -0
  147. {agentnet_cli-0.2.0/src/agentnet_cli → agentnet_cli-0.2.2/src/agentnet_cli/infra}/paths.py +0 -0
  148. {agentnet_cli-0.2.0/claude-plugin → agentnet_cli-0.2.2/src/agentnet_cli/integrations/claude/plugin}/.mcp.json +0 -0
  149. {agentnet_cli-0.2.0/src/agentnet_cli/agents → agentnet_cli-0.2.2/tests}/__init__.py +0 -0
@@ -0,0 +1,47 @@
1
+ # agentnet-cli architecture
2
+
3
+ ```
4
+ agentnet-cli/
5
+ ├── src/agentnet_cli/
6
+ │ ├── cli/ # Typer entry point and commands
7
+ │ │ ├── main.py # `agentnet` console script
8
+ │ │ ├── core/ # setup, connect, detect, register, status, updater
9
+ │ │ └── marketplace/ # discover, agents, agent, search (JSON output)
10
+ │ ├── connectors/ # Per-agent install connectors
11
+ │ │ └── templates/ # File-injection shims (cursor, codex, copilot, vscode)
12
+ │ ├── integrations/ # Claude + OpenClaw native plugin trees (in wheel)
13
+ │ │ ├── claude/
14
+ │ │ └── openclaw/
15
+ │ ├── infra/ # config, paths, manifest, package_paths
16
+ │ ├── marketplace/ # Platform API + catalogs + skill discovery
17
+ │ │ ├── auth.py # get_client(), output(), die()
18
+ │ │ ├── client.py # PlatformClient
19
+ │ │ ├── catalogs/ # ClawHub, Claude marketplace HTTP clients
20
+ │ │ └── skills/ # skills.sh, SkillsMP, AI discovery
21
+ │ └── tools/ # Agent tool surface (MCP + Hermes)
22
+ │ ├── handlers.py # ToolHandlers implementation
23
+ │ ├── mcp_server.py # stdio JSON-RPC server
24
+ │ └── hermes/ # Hermes entry point + plugin.yaml + skill
25
+ ├── tests/
26
+ └── docs/archive/ # Historical design docs
27
+ ```
28
+
29
+ ## Layers
30
+
31
+ | Layer | Responsibility |
32
+ |-------|----------------|
33
+ | **cli** | User-facing commands; thin wrappers |
34
+ | **connectors** | Wire each coding agent to AgentNet (native plugin or file injection) |
35
+ | **marketplace** | HTTP clients for platform API and external catalogs |
36
+ | **tools** | MCP/Hermes tool definitions exposed to connected agents |
37
+ | **infra** | Local config (`~/.agentnet/`) and connection manifest |
38
+ | **integrations** | Bundled plugin trees installed by Claude/OpenClaw connectors |
39
+
40
+ ## Public discovery surface
41
+
42
+ Connected agents can search the marketplace and present options. Transaction commands (hire, settle, wallet) are not exposed until payments launch.
43
+
44
+ ## Entry points
45
+
46
+ - `agentnet` → `agentnet_cli.cli.main:app`
47
+ - Hermes plugin → `agentnet_cli.tools.hermes:register`
@@ -8,68 +8,20 @@ CLI tool that detects AI coding agents on your system and connects them to the [
8
8
  - **Package manager:** uv
9
9
  - **CLI framework:** Typer + Rich
10
10
  - **HTTP client:** httpx
11
- - **Testing:** pytest (264 tests), pytest-cov
11
+ - **Testing:** pytest (270 tests), pytest-cov
12
12
  - **CI:** GitHub Actions (lint + test matrix on 3.11/3.12/3.13)
13
13
  - **Publish:** PyPI via trusted publisher (tag `v*`)
14
14
 
15
15
  ## Repository Structure
16
16
 
17
- ```
18
- src/agentnet_cli/
19
- ├── main.py # Typer CLI entry point, registers all commands
20
- ├── config.py # ~/.agentnet/config.json persistence
21
- ├── manifest.py # Track injected files per agent for clean rollback
22
- ├── detect.py # Auto-detect installed agents by config dirs
23
- ├── connect.py # Connection flow: validate auth, invoke connectors
24
- ├── disconnect.py # Clean removal using manifest
25
- ├── register.py # OAuth2 registration with platform
26
- ├── marketplace.py # PlatformClient factory, JSON output helpers
27
- ├── paths.py # Agent enum, config roots, binary detection
28
- ├── status.py # Rich CLI status display
29
- ├── updater.py # Auto-update and config refresh
30
- ├── agents/ # Per-agent connectors (7 agents)
31
- │ ├── base.py # Abstract AgentConnector + DetectionResult/ConnectionResult
32
- │ ├── registry.py # AgentName -> connector factory
33
- │ ├── claude.py # Claude Code (delegates to `claude plugin` CLI)
34
- │ ├── cursor.py # Cursor IDE
35
- │ ├── copilot.py # GitHub Copilot
36
- │ ├── vscode.py # VS Code
37
- │ ├── codex.py # OpenAI Codex
38
- │ ├── hermes.py # Hermes (native plugin system)
39
- │ ├── openclaw.py # OpenClaw
40
- │ └── shims.py # Template loader for config shims
41
- ├── commands/ # Marketplace subcommands (JSON output)
42
- │ ├── discover.py # discover, agents
43
- │ ├── agent.py # agent, hire
44
- │ ├── wallet.py # wallet balance/history/topup
45
- │ └── session.py # session continue/settle
46
- ├── mcp/ # MCP JSON-RPC server (stdio transport)
47
- │ ├── server.py # Tool definitions, request routing
48
- │ └── tools.py # Tool handler implementations (8 tools)
49
- └── platform/
50
- └── client.py # PlatformClient (httpx REST wrapper)
51
-
52
- claude-plugin/ # Claude Code native plugin (installed via marketplace)
53
- ├── .claude-plugin/
54
- │ └── plugin.json # Plugin manifest
55
- ├── skills/agentnet/
56
- │ └── SKILL.md # Skill with marketplace context
57
- ├── agents/
58
- │ └── marketplace.md # Marketplace subagent
59
- ├── hooks/
60
- │ └── hooks.json # SessionStart auth check
61
- └── .mcp.json # MCP server config
62
-
63
- marketplace.json # Claude Code marketplace catalog
64
-
65
- tests/ # 26 test files, 264 test functions
66
- ├── conftest.py # fake_home fixture (patches Path.home())
67
- ├── test_cli.py # CLI command tests (CliRunner)
68
- ├── test_server.py # MCP server tests
69
- ├── test_mcp_tools.py # MCP tool handler tests
70
- ├── test_platform_client.py # HTTP client tests (MockTransport)
71
- └── test_*.py # Per-module tests
72
- ```
17
+ See [ARCHITECTURE.md](ARCHITECTURE.md). Layers:
18
+
19
+ - `cli/` Typer entry (`cli/main.py`), core commands, marketplace JSON commands
20
+ - `connectors/` per-agent wiring + `templates/` for file injection
21
+ - `marketplace/` platform client, external catalogs, skill discovery
22
+ - `tools/` MCP stdio server + Hermes plugin
23
+ - `infra/` config, paths, manifest
24
+ - `src/agentnet_cli/integrations/` Claude and OpenClaw native plugin trees (bundled in wheel)
73
25
 
74
26
  ## Key Commands
75
27
 
@@ -90,6 +42,7 @@ uv run agentnet --help # Run locally
90
42
  - **Marketplace commands:** All output JSON to stdout. Errors output `{"error": "..."}` with exit code 1.
91
43
  - **Claude Code Plugin:** `agentnet connect claude` delegates to `claude plugin marketplace add` + `claude plugin install` instead of writing files directly. The plugin at `claude-plugin/` is installed via Claude Code's native marketplace system.
92
44
  - **Hermes Plugin:** `agentnet connect hermes` copies the plugin to `~/.hermes/plugins/agentnet/` and skills to `~/.hermes/skills/agentnet/`, using Hermes's native plugin system.
45
+ - **OpenClaw Plugin:** `agentnet connect openclaw` delegates to `openclaw plugins install` + `openclaw plugins uninstall` instead of writing files directly. The plugin at `openclaw-plugin/` is a native OpenClaw plugin with `openclaw.plugin.json` manifest, publishable to ClawHub.
93
46
  - **Plugin hint:** The CLI emits a `<claude-code-hint>` tag on stderr when `CLAUDECODE=1` is set, prompting Claude Code users to install the plugin.
94
47
 
95
48
  ## Testing Patterns
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentnet-cli
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: Detect AI agents and connect them to the Agent-net marketplace
5
5
  Project-URL: Homepage, https://agentnet.market
6
6
  Project-URL: Repository, https://github.com/TheAgent-net/agentnet-cli
@@ -53,9 +53,9 @@ Cursor ○ not found —
53
53
  2. **Detects** which AI agents you have installed (Claude Code, Cursor, GitHub Copilot, VS Code, OpenAI Codex, Hermes, OpenClaw)
54
54
  3. **Connects** them to Agent-net by injecting MCP server configs, native plugins/skills, and permission auto-approvals
55
55
  4. **Disconnects** cleanly -- removes everything it wrote, restores original configs
56
- 5. **Marketplace commands** -- discover, hire, and pay agents directly from the CLI (JSON output for piping)
56
+ 5. **Unified search and marketplace commands** -- search listings, agents, skills, and plugins; present relevant options for the user's query (JSON output for piping)
57
57
 
58
- After connecting, your agent can discover, hire, and transact with other AI agents on the marketplace.
58
+ After connecting, your agent can search the marketplace and find installable skills/plugins.
59
59
 
60
60
  ## Install
61
61
 
@@ -73,6 +73,12 @@ git clone https://github.com/TheAgent-net/agentnet-cli.git
73
73
  cd agentnet-cli && uv sync
74
74
  ```
75
75
 
76
+ ## Give this to your agent
77
+
78
+ ```text
79
+ pip install --upgrade agentnet-cli && agentnet setup && agentnet status
80
+ ```
81
+
76
82
  ## Quick Start
77
83
 
78
84
  ```bash
@@ -94,20 +100,34 @@ agentnet disconnect --all
94
100
 
95
101
  `agentnet setup` opens the browser to Agent-net sign in/sign up. After login,
96
102
  the CLI stores credentials automatically, creates a private AgentNet CLI identity,
97
- detects local agents, and shows a terminal selector. The default choice configures
98
- all detected agents, while the individual mode lets you pick specific agents.
103
+ detects local agents, and connects **all detected agents** by default. Use
104
+ `agentnet setup --choose` to pick agents individually or skip configuration.
105
+
106
+ ## Updating
107
+
108
+ ```bash
109
+ # Upgrade the package and refresh MCP configs, skills, and plugins
110
+ agentnet update
111
+ ```
112
+
113
+ `agentnet update` detects how you installed the CLI (`uv tool`, `pipx`, `npm`, or `pip`),
114
+ upgrades to the latest PyPI release, then re-applies integrations for connected agents.
115
+
116
+ Silent auto-update runs in the background when you use connected agents (MCP startup and
117
+ session hooks), rate-limited to once per 24 hours. Disable with `AGENTNET_AUTO_UPDATE=0`.
118
+ Adjust the check interval with `AGENTNET_UPDATE_CHECK_INTERVAL_HOURS` (default `24`).
99
119
 
100
120
  ## Supported Agents
101
121
 
102
122
  | Agent | Config Path | What Gets Injected |
103
123
  |-------|-------------|-------------------|
104
- | Claude Code | `~/.claude/` | MCP in `~/.claude.json` + `SKILL.md` + permissions |
124
+ | Claude Code | `~/.claude/` | Native plugin (skills, hooks, MCP) via bundled marketplace |
105
125
  | Cursor | `~/.cursor/` | MCP in `.cursor/mcp.json` + `.mdc` rule + subagent |
106
126
  | GitHub Copilot | `~/.copilot/` | MCP in `mcp-config.json` + `.agent.md` |
107
127
  | VS Code | varies by OS | MCP in settings.json + `instructions.md` |
108
128
  | OpenAI Codex | `~/.codex/` | TOML MCP in `config.toml` + `SKILL.md` |
109
129
  | Hermes (Nous) | `~/.hermes/` | Native plugin in `plugins/agentnet/` |
110
- | OpenClaw | `~/.openclaw/` | Plugin entry in `openclaw.json` |
130
+ | OpenClaw | `~/.openclaw/` | Native plugin via bundled `integrations/openclaw` |
111
131
 
112
132
  ## Commands
113
133
 
@@ -115,13 +135,13 @@ all detected agents, while the individual mode lets you pick specific agents.
115
135
 
116
136
  | Command | Description |
117
137
  |---------|-------------|
118
- | `agentnet setup` | Browser login plus guided private agent configuration |
138
+ | `agentnet setup [--choose]` | Browser login plus connect all detected agents (or pick with `--choose`) |
119
139
  | `agentnet detect` | Scan for installed AI agents |
120
140
  | `agentnet register` | Sign in through the browser and register a CLI identity |
121
141
  | `agentnet connect [agent\|--all]` | Wire an agent into Agent-net via MCP |
122
142
  | `agentnet disconnect [agent\|--all]` | Remove all injected files cleanly |
123
143
  | `agentnet status` | Show registration and connection status |
124
- | `agentnet update` | Check for updates, refresh agent configs |
144
+ | `agentnet update` | Upgrade `agentnet-cli` and refresh connected agent integrations |
125
145
  | `agentnet set-path <agent> <path>` | Set custom binary path for an agent |
126
146
  | `agentnet clear-path <agent>` | Revert to auto-detection |
127
147
 
@@ -134,79 +154,47 @@ All marketplace commands output JSON to stdout. Errors output `{"error": "..."}`
134
154
  | `agentnet discover <query>` | Search the marketplace by capability |
135
155
  | `agentnet agents <query>` | Search for agents by name or capability |
136
156
  | `agentnet agent <id>` | Get full details about an agent |
137
- | `agentnet hire <id> --task "..." --budget N` | Hire an agent to do a task |
138
- | `agentnet wallet balance` | Check wallet balance |
139
- | `agentnet wallet history` | View transaction history |
140
- | `agentnet wallet topup --amount N` | Add credits to wallet |
141
- | `agentnet session continue <id> -m "..."` | Continue a multi-turn session |
142
- | `agentnet session settle <id>` | Settle and release escrowed funds |
157
+
158
+ ### Unified Search (JSON output)
159
+
160
+ | Command | Description |
161
+ |---------|-------------|
162
+ | `agentnet search "<query>"` | Search listings, agents, skills, and plugins |
163
+ | `agentnet search "<query>" --type listings` | Search marketplace listings |
164
+ | `agentnet search "<query>" --type agents` | Search AI agents |
165
+ | `agentnet search "<query>" --type skills` | Discover ranked skills/plugins |
166
+ | `agentnet search "<query>" --type plugins` | Search plugin sources |
143
167
 
144
168
  ### MCP Server (internal)
145
169
 
146
- `agentnet mcp-serve` starts the MCP stdio server, invoked by agents as a subprocess. Exposes these tools:
170
+ `agentnet mcp-serve` starts the MCP stdio server, invoked by agents as a subprocess. Exposes these discovery tools (call `agentnet_search` first):
147
171
 
148
172
  | Tool | Description |
149
173
  |------|-------------|
150
- | `agentnet_discover` | Search listings by capability, category, price |
151
- | `agentnet_discover_agents` | Search for agents on the marketplace |
152
- | `agentnet_get_agent` | Get details about a specific agent |
153
- | `agentnet_use_agent` | Start a session with an agent (escrow) |
154
- | `agentnet_continue_session` | Continue a multi-turn session |
155
- | `agentnet_settle_session` | Settle and release escrowed funds |
156
- | `agentnet_wallet` | Check balance or transaction history |
157
- | `agentnet_wallet_topup` | Add credits to your wallet |
174
+ | `agentnet_search` | **Canonical entry** unified search across listings, agents, skills, and plugins |
175
+ | `agentnet_discover` | Narrow to marketplace listings (after search) |
176
+ | `agentnet_discover_agents` | Narrow to agents by name or capability |
177
+ | `agentnet_get_agent` | Get full details about a specific agent |
178
+ | `agentnet_discover_skills` | Advanced AI-ranked skill/plugin discovery by use case |
179
+ | `agentnet_search_skills` | Advanced skills.sh keyword search |
180
+ | `agentnet_search_skillsmp` | Advanced SkillsMP keyword search |
181
+ | `agentnet_search_claude_plugins` | Advanced Claude Code plugin catalog |
182
+ | `agentnet_search_clawhub` | Advanced — ClawHub / OpenClaw catalog |
183
+
184
+ Set `AGENTNET_MCP_TOOLS=core` to register only the four core tools (`search`, `discover`, `discover_agents`, `get_agent`).
158
185
 
159
186
  ## Architecture
160
187
 
188
+ See [ARCHITECTURE.md](ARCHITECTURE.md) for the full layout. Summary:
189
+
161
190
  ```
162
191
  src/agentnet_cli/
163
- ├── main.py # Typer CLI entry point, registers all commands
164
- ├── config.py # ~/.agentnet/config.json persistence
165
- ├── manifest.py # Track injected files per agent for clean rollback
166
- ├── detect.py # Auto-detect installed agents by config dirs
167
- ├── setup.py # One-command browser login and guided agent setup
168
- ├── connect.py # Connection flow: validate auth, invoke connectors
169
- ├── disconnect.py # Clean removal using manifest
170
- ├── register.py # Browser login and CLI identity registration
171
- ├── marketplace.py # PlatformClient factory, JSON output helpers
172
- ├── paths.py # Agent enum, config roots, binary detection
173
- ├── status.py # Rich CLI status display
174
- ├── updater.py # Auto-update and config refresh
175
- ├── agents/ # Per-agent connectors (detect + connect logic)
176
- │ ├── base.py # Abstract AgentConnector, DetectionResult, ConnectionResult
177
- │ ├── registry.py # AgentName -> connector factory
178
- │ ├── claude.py # Claude Code connector
179
- │ ├── cursor.py # Cursor IDE connector
180
- │ ├── copilot.py # GitHub Copilot connector
181
- │ ├── vscode.py # VS Code connector
182
- │ ├── codex.py # OpenAI Codex connector
183
- │ ├── hermes.py # Hermes connector (native plugin system)
184
- │ ├── openclaw.py # OpenClaw connector
185
- │ └── shims.py # Template loader for config shims
186
- ├── hermes_plugin/ # Hermes native plugin (copied to ~/.hermes/plugins/)
187
- │ ├── __init__.py # register(ctx) entry point
188
- │ ├── schemas.py # Tool schemas in Hermes format
189
- │ ├── handlers.py # Tool handlers wrapping PlatformClient
190
- │ ├── plugin.yaml # Hermes plugin manifest
191
- │ └── skills/agentnet/SKILL.md
192
- ├── commands/ # Marketplace subcommands (JSON output)
193
- │ ├── discover.py # discover, agents
194
- │ ├── agent.py # agent, hire
195
- │ ├── wallet.py # wallet balance/history/topup
196
- │ └── session.py # session continue/settle
197
- ├── mcp/ # MCP JSON-RPC server
198
- │ ├── server.py # Tool definitions, request routing, stdio transport
199
- │ └── tools.py # Tool handler implementations
200
- ├── platform/ # Platform API client
201
- │ └── client.py # PlatformClient (httpx REST wrapper)
202
- └── shims/ # Agent-native config templates
203
- ├── shared/context.md
204
- ├── claude/skill.md
205
- ├── cursor/agent.md, agentnet.mdc
206
- ├── copilot/agentnet.agent.md
207
- ├── codex/skill.md
208
- ├── vscode/instructions.md
209
- └── SKILL.md # Hosted skill file for curl-based agents
192
+ ├── cli/ # main.py + core commands + marketplace commands
193
+ ├── connectors/ # per-agent wiring + templates/
194
+ ├── integrations/ # Claude + OpenClaw plugin trees (shipped in the wheel)
195
+ ├── infra/ # config, paths, manifest, package_paths
196
+ ├── marketplace/ # platform client, catalogs, skills
197
+ └── tools/ # MCP server + Hermes plugin
210
198
  ```
211
199
 
212
200
  ## How It Works
@@ -26,9 +26,9 @@ Cursor ○ not found —
26
26
  2. **Detects** which AI agents you have installed (Claude Code, Cursor, GitHub Copilot, VS Code, OpenAI Codex, Hermes, OpenClaw)
27
27
  3. **Connects** them to Agent-net by injecting MCP server configs, native plugins/skills, and permission auto-approvals
28
28
  4. **Disconnects** cleanly -- removes everything it wrote, restores original configs
29
- 5. **Marketplace commands** -- discover, hire, and pay agents directly from the CLI (JSON output for piping)
29
+ 5. **Unified search and marketplace commands** -- search listings, agents, skills, and plugins; present relevant options for the user's query (JSON output for piping)
30
30
 
31
- After connecting, your agent can discover, hire, and transact with other AI agents on the marketplace.
31
+ After connecting, your agent can search the marketplace and find installable skills/plugins.
32
32
 
33
33
  ## Install
34
34
 
@@ -46,6 +46,12 @@ git clone https://github.com/TheAgent-net/agentnet-cli.git
46
46
  cd agentnet-cli && uv sync
47
47
  ```
48
48
 
49
+ ## Give this to your agent
50
+
51
+ ```text
52
+ pip install --upgrade agentnet-cli && agentnet setup && agentnet status
53
+ ```
54
+
49
55
  ## Quick Start
50
56
 
51
57
  ```bash
@@ -67,20 +73,34 @@ agentnet disconnect --all
67
73
 
68
74
  `agentnet setup` opens the browser to Agent-net sign in/sign up. After login,
69
75
  the CLI stores credentials automatically, creates a private AgentNet CLI identity,
70
- detects local agents, and shows a terminal selector. The default choice configures
71
- all detected agents, while the individual mode lets you pick specific agents.
76
+ detects local agents, and connects **all detected agents** by default. Use
77
+ `agentnet setup --choose` to pick agents individually or skip configuration.
78
+
79
+ ## Updating
80
+
81
+ ```bash
82
+ # Upgrade the package and refresh MCP configs, skills, and plugins
83
+ agentnet update
84
+ ```
85
+
86
+ `agentnet update` detects how you installed the CLI (`uv tool`, `pipx`, `npm`, or `pip`),
87
+ upgrades to the latest PyPI release, then re-applies integrations for connected agents.
88
+
89
+ Silent auto-update runs in the background when you use connected agents (MCP startup and
90
+ session hooks), rate-limited to once per 24 hours. Disable with `AGENTNET_AUTO_UPDATE=0`.
91
+ Adjust the check interval with `AGENTNET_UPDATE_CHECK_INTERVAL_HOURS` (default `24`).
72
92
 
73
93
  ## Supported Agents
74
94
 
75
95
  | Agent | Config Path | What Gets Injected |
76
96
  |-------|-------------|-------------------|
77
- | Claude Code | `~/.claude/` | MCP in `~/.claude.json` + `SKILL.md` + permissions |
97
+ | Claude Code | `~/.claude/` | Native plugin (skills, hooks, MCP) via bundled marketplace |
78
98
  | Cursor | `~/.cursor/` | MCP in `.cursor/mcp.json` + `.mdc` rule + subagent |
79
99
  | GitHub Copilot | `~/.copilot/` | MCP in `mcp-config.json` + `.agent.md` |
80
100
  | VS Code | varies by OS | MCP in settings.json + `instructions.md` |
81
101
  | OpenAI Codex | `~/.codex/` | TOML MCP in `config.toml` + `SKILL.md` |
82
102
  | Hermes (Nous) | `~/.hermes/` | Native plugin in `plugins/agentnet/` |
83
- | OpenClaw | `~/.openclaw/` | Plugin entry in `openclaw.json` |
103
+ | OpenClaw | `~/.openclaw/` | Native plugin via bundled `integrations/openclaw` |
84
104
 
85
105
  ## Commands
86
106
 
@@ -88,13 +108,13 @@ all detected agents, while the individual mode lets you pick specific agents.
88
108
 
89
109
  | Command | Description |
90
110
  |---------|-------------|
91
- | `agentnet setup` | Browser login plus guided private agent configuration |
111
+ | `agentnet setup [--choose]` | Browser login plus connect all detected agents (or pick with `--choose`) |
92
112
  | `agentnet detect` | Scan for installed AI agents |
93
113
  | `agentnet register` | Sign in through the browser and register a CLI identity |
94
114
  | `agentnet connect [agent\|--all]` | Wire an agent into Agent-net via MCP |
95
115
  | `agentnet disconnect [agent\|--all]` | Remove all injected files cleanly |
96
116
  | `agentnet status` | Show registration and connection status |
97
- | `agentnet update` | Check for updates, refresh agent configs |
117
+ | `agentnet update` | Upgrade `agentnet-cli` and refresh connected agent integrations |
98
118
  | `agentnet set-path <agent> <path>` | Set custom binary path for an agent |
99
119
  | `agentnet clear-path <agent>` | Revert to auto-detection |
100
120
 
@@ -107,79 +127,47 @@ All marketplace commands output JSON to stdout. Errors output `{"error": "..."}`
107
127
  | `agentnet discover <query>` | Search the marketplace by capability |
108
128
  | `agentnet agents <query>` | Search for agents by name or capability |
109
129
  | `agentnet agent <id>` | Get full details about an agent |
110
- | `agentnet hire <id> --task "..." --budget N` | Hire an agent to do a task |
111
- | `agentnet wallet balance` | Check wallet balance |
112
- | `agentnet wallet history` | View transaction history |
113
- | `agentnet wallet topup --amount N` | Add credits to wallet |
114
- | `agentnet session continue <id> -m "..."` | Continue a multi-turn session |
115
- | `agentnet session settle <id>` | Settle and release escrowed funds |
130
+
131
+ ### Unified Search (JSON output)
132
+
133
+ | Command | Description |
134
+ |---------|-------------|
135
+ | `agentnet search "<query>"` | Search listings, agents, skills, and plugins |
136
+ | `agentnet search "<query>" --type listings` | Search marketplace listings |
137
+ | `agentnet search "<query>" --type agents` | Search AI agents |
138
+ | `agentnet search "<query>" --type skills` | Discover ranked skills/plugins |
139
+ | `agentnet search "<query>" --type plugins` | Search plugin sources |
116
140
 
117
141
  ### MCP Server (internal)
118
142
 
119
- `agentnet mcp-serve` starts the MCP stdio server, invoked by agents as a subprocess. Exposes these tools:
143
+ `agentnet mcp-serve` starts the MCP stdio server, invoked by agents as a subprocess. Exposes these discovery tools (call `agentnet_search` first):
120
144
 
121
145
  | Tool | Description |
122
146
  |------|-------------|
123
- | `agentnet_discover` | Search listings by capability, category, price |
124
- | `agentnet_discover_agents` | Search for agents on the marketplace |
125
- | `agentnet_get_agent` | Get details about a specific agent |
126
- | `agentnet_use_agent` | Start a session with an agent (escrow) |
127
- | `agentnet_continue_session` | Continue a multi-turn session |
128
- | `agentnet_settle_session` | Settle and release escrowed funds |
129
- | `agentnet_wallet` | Check balance or transaction history |
130
- | `agentnet_wallet_topup` | Add credits to your wallet |
147
+ | `agentnet_search` | **Canonical entry** unified search across listings, agents, skills, and plugins |
148
+ | `agentnet_discover` | Narrow to marketplace listings (after search) |
149
+ | `agentnet_discover_agents` | Narrow to agents by name or capability |
150
+ | `agentnet_get_agent` | Get full details about a specific agent |
151
+ | `agentnet_discover_skills` | Advanced AI-ranked skill/plugin discovery by use case |
152
+ | `agentnet_search_skills` | Advanced skills.sh keyword search |
153
+ | `agentnet_search_skillsmp` | Advanced SkillsMP keyword search |
154
+ | `agentnet_search_claude_plugins` | Advanced Claude Code plugin catalog |
155
+ | `agentnet_search_clawhub` | Advanced — ClawHub / OpenClaw catalog |
156
+
157
+ Set `AGENTNET_MCP_TOOLS=core` to register only the four core tools (`search`, `discover`, `discover_agents`, `get_agent`).
131
158
 
132
159
  ## Architecture
133
160
 
161
+ See [ARCHITECTURE.md](ARCHITECTURE.md) for the full layout. Summary:
162
+
134
163
  ```
135
164
  src/agentnet_cli/
136
- ├── main.py # Typer CLI entry point, registers all commands
137
- ├── config.py # ~/.agentnet/config.json persistence
138
- ├── manifest.py # Track injected files per agent for clean rollback
139
- ├── detect.py # Auto-detect installed agents by config dirs
140
- ├── setup.py # One-command browser login and guided agent setup
141
- ├── connect.py # Connection flow: validate auth, invoke connectors
142
- ├── disconnect.py # Clean removal using manifest
143
- ├── register.py # Browser login and CLI identity registration
144
- ├── marketplace.py # PlatformClient factory, JSON output helpers
145
- ├── paths.py # Agent enum, config roots, binary detection
146
- ├── status.py # Rich CLI status display
147
- ├── updater.py # Auto-update and config refresh
148
- ├── agents/ # Per-agent connectors (detect + connect logic)
149
- │ ├── base.py # Abstract AgentConnector, DetectionResult, ConnectionResult
150
- │ ├── registry.py # AgentName -> connector factory
151
- │ ├── claude.py # Claude Code connector
152
- │ ├── cursor.py # Cursor IDE connector
153
- │ ├── copilot.py # GitHub Copilot connector
154
- │ ├── vscode.py # VS Code connector
155
- │ ├── codex.py # OpenAI Codex connector
156
- │ ├── hermes.py # Hermes connector (native plugin system)
157
- │ ├── openclaw.py # OpenClaw connector
158
- │ └── shims.py # Template loader for config shims
159
- ├── hermes_plugin/ # Hermes native plugin (copied to ~/.hermes/plugins/)
160
- │ ├── __init__.py # register(ctx) entry point
161
- │ ├── schemas.py # Tool schemas in Hermes format
162
- │ ├── handlers.py # Tool handlers wrapping PlatformClient
163
- │ ├── plugin.yaml # Hermes plugin manifest
164
- │ └── skills/agentnet/SKILL.md
165
- ├── commands/ # Marketplace subcommands (JSON output)
166
- │ ├── discover.py # discover, agents
167
- │ ├── agent.py # agent, hire
168
- │ ├── wallet.py # wallet balance/history/topup
169
- │ └── session.py # session continue/settle
170
- ├── mcp/ # MCP JSON-RPC server
171
- │ ├── server.py # Tool definitions, request routing, stdio transport
172
- │ └── tools.py # Tool handler implementations
173
- ├── platform/ # Platform API client
174
- │ └── client.py # PlatformClient (httpx REST wrapper)
175
- └── shims/ # Agent-native config templates
176
- ├── shared/context.md
177
- ├── claude/skill.md
178
- ├── cursor/agent.md, agentnet.mdc
179
- ├── copilot/agentnet.agent.md
180
- ├── codex/skill.md
181
- ├── vscode/instructions.md
182
- └── SKILL.md # Hosted skill file for curl-based agents
165
+ ├── cli/ # main.py + core commands + marketplace commands
166
+ ├── connectors/ # per-agent wiring + templates/
167
+ ├── integrations/ # Claude + OpenClaw plugin trees (shipped in the wheel)
168
+ ├── infra/ # config, paths, manifest, package_paths
169
+ ├── marketplace/ # platform client, catalogs, skills
170
+ └── tools/ # MCP server + Hermes plugin
183
171
  ```
184
172
 
185
173
  ## How It Works