agentnet-cli 0.2.0__tar.gz → 0.2.1__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.1/ARCHITECTURE.md +47 -0
  2. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/CLAUDE.md +10 -57
  3. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/PKG-INFO +50 -68
  4. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/README.md +49 -67
  5. agentnet_cli-0.2.1/docs/archive/superpowers/plans/2026-05-10-openclaw-native-plugin.md +635 -0
  6. agentnet_cli-0.2.1/docs/archive/superpowers/specs/2026-05-10-openclaw-native-plugin-design.md +282 -0
  7. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/pyproject.toml +3 -3
  8. agentnet_cli-0.2.1/src/agentnet_cli/cli/__init__.py +1 -0
  9. agentnet_cli-0.2.1/src/agentnet_cli/cli/core/__init__.py +1 -0
  10. {agentnet_cli-0.2.0/src/agentnet_cli → agentnet_cli-0.2.1/src/agentnet_cli/cli/core}/connect.py +4 -4
  11. {agentnet_cli-0.2.0/src/agentnet_cli → agentnet_cli-0.2.1/src/agentnet_cli/cli/core}/detect.py +5 -5
  12. {agentnet_cli-0.2.0/src/agentnet_cli → agentnet_cli-0.2.1/src/agentnet_cli/cli/core}/disconnect.py +3 -3
  13. {agentnet_cli-0.2.0/src/agentnet_cli → agentnet_cli-0.2.1/src/agentnet_cli/cli/core}/register.py +2 -2
  14. agentnet_cli-0.2.0/src/agentnet_cli/setup.py → agentnet_cli-0.2.1/src/agentnet_cli/cli/core/setup_wizard.py +2 -2
  15. {agentnet_cli-0.2.0/src/agentnet_cli → agentnet_cli-0.2.1/src/agentnet_cli/cli/core}/status.py +2 -5
  16. agentnet_cli-0.2.1/src/agentnet_cli/cli/core/updater.py +294 -0
  17. {agentnet_cli-0.2.0/src/agentnet_cli → agentnet_cli-0.2.1/src/agentnet_cli/cli}/main.py +74 -50
  18. agentnet_cli-0.2.1/src/agentnet_cli/cli/marketplace/__init__.py +1 -0
  19. agentnet_cli-0.2.1/src/agentnet_cli/cli/marketplace/agent.py +18 -0
  20. {agentnet_cli-0.2.0/src/agentnet_cli/commands → agentnet_cli-0.2.1/src/agentnet_cli/cli/marketplace}/discover.py +2 -2
  21. agentnet_cli-0.2.1/src/agentnet_cli/cli/marketplace/search.py +124 -0
  22. agentnet_cli-0.2.1/src/agentnet_cli/connectors/__init__.py +1 -0
  23. {agentnet_cli-0.2.0/src/agentnet_cli/agents → agentnet_cli-0.2.1/src/agentnet_cli/connectors}/claude.py +12 -8
  24. {agentnet_cli-0.2.0/src/agentnet_cli/agents → agentnet_cli-0.2.1/src/agentnet_cli/connectors}/codex.py +7 -5
  25. {agentnet_cli-0.2.0/src/agentnet_cli/agents → agentnet_cli-0.2.1/src/agentnet_cli/connectors}/copilot.py +5 -1
  26. {agentnet_cli-0.2.0/src/agentnet_cli/agents → agentnet_cli-0.2.1/src/agentnet_cli/connectors}/cursor.py +35 -1
  27. {agentnet_cli-0.2.0/src/agentnet_cli/agents → agentnet_cli-0.2.1/src/agentnet_cli/connectors}/hermes.py +4 -4
  28. agentnet_cli-0.2.1/src/agentnet_cli/connectors/openclaw.py +119 -0
  29. {agentnet_cli-0.2.0/src/agentnet_cli/agents → agentnet_cli-0.2.1/src/agentnet_cli/connectors}/registry.py +1 -1
  30. agentnet_cli-0.2.1/src/agentnet_cli/connectors/shims.py +18 -0
  31. agentnet_cli-0.2.1/src/agentnet_cli/connectors/templates/SKILL.hosted.md +161 -0
  32. agentnet_cli-0.2.1/src/agentnet_cli/connectors/templates/codex/skill.md +12 -0
  33. agentnet_cli-0.2.1/src/agentnet_cli/connectors/templates/copilot/agentnet.agent.md +16 -0
  34. agentnet_cli-0.2.1/src/agentnet_cli/connectors/templates/cursor/agent.md +9 -0
  35. agentnet_cli-0.2.1/src/agentnet_cli/connectors/templates/cursor/agentnet.mdc +8 -0
  36. agentnet_cli-0.2.1/src/agentnet_cli/connectors/templates/shared/context.md +82 -0
  37. agentnet_cli-0.2.1/src/agentnet_cli/connectors/templates/shared/default-chat.md +3 -0
  38. agentnet_cli-0.2.1/src/agentnet_cli/connectors/templates/vscode/instructions.md +5 -0
  39. {agentnet_cli-0.2.0/src/agentnet_cli/agents → agentnet_cli-0.2.1/src/agentnet_cli/connectors}/vscode.py +1 -1
  40. agentnet_cli-0.2.1/src/agentnet_cli/infra/__init__.py +1 -0
  41. {agentnet_cli-0.2.0/src/agentnet_cli → agentnet_cli-0.2.1/src/agentnet_cli/infra}/manifest.py +27 -1
  42. agentnet_cli-0.2.1/src/agentnet_cli/infra/package_paths.py +20 -0
  43. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1/src/agentnet_cli/integrations/claude}/.claude-plugin/marketplace.json +2 -2
  44. {agentnet_cli-0.2.0/claude-plugin → agentnet_cli-0.2.1/src/agentnet_cli/integrations/claude/plugin}/.claude-plugin/plugin.json +1 -1
  45. agentnet_cli-0.2.1/src/agentnet_cli/integrations/claude/plugin/agents/marketplace.md +23 -0
  46. agentnet_cli-0.2.1/src/agentnet_cli/integrations/claude/plugin/hooks/hooks.json +22 -0
  47. agentnet_cli-0.2.1/src/agentnet_cli/integrations/claude/plugin/skills/agentnet/SKILL.md +35 -0
  48. agentnet_cli-0.2.1/src/agentnet_cli/integrations/openclaw/.mcp.json +10 -0
  49. agentnet_cli-0.2.1/src/agentnet_cli/integrations/openclaw/index.js +17 -0
  50. agentnet_cli-0.2.1/src/agentnet_cli/integrations/openclaw/openclaw.plugin.json +22 -0
  51. agentnet_cli-0.2.1/src/agentnet_cli/integrations/openclaw/package.json +24 -0
  52. agentnet_cli-0.2.1/src/agentnet_cli/integrations/openclaw/skills/agentnet/SKILL.md +32 -0
  53. agentnet_cli-0.2.1/src/agentnet_cli/integrations/shared/discovery-skill.base.md +82 -0
  54. agentnet_cli-0.2.1/src/agentnet_cli/marketplace/__init__.py +5 -0
  55. agentnet_cli-0.2.0/src/agentnet_cli/marketplace.py → agentnet_cli-0.2.1/src/agentnet_cli/marketplace/auth.py +2 -2
  56. agentnet_cli-0.2.1/src/agentnet_cli/marketplace/catalogs/__init__.py +1 -0
  57. agentnet_cli-0.2.1/src/agentnet_cli/marketplace/catalogs/claude_marketplace.py +89 -0
  58. agentnet_cli-0.2.1/src/agentnet_cli/marketplace/catalogs/clawhub.py +82 -0
  59. {agentnet_cli-0.2.0/src/agentnet_cli/platform → agentnet_cli-0.2.1/src/agentnet_cli/marketplace}/client.py +18 -2
  60. agentnet_cli-0.2.1/src/agentnet_cli/marketplace/skills/__init__.py +1 -0
  61. agentnet_cli-0.2.1/src/agentnet_cli/marketplace/skills/client.py +61 -0
  62. agentnet_cli-0.2.1/src/agentnet_cli/marketplace/skills/discovery.py +501 -0
  63. agentnet_cli-0.2.1/src/agentnet_cli/marketplace/skills/skillsmp.py +83 -0
  64. agentnet_cli-0.2.1/src/agentnet_cli/tools/__init__.py +1 -0
  65. agentnet_cli-0.2.1/src/agentnet_cli/tools/handlers.py +164 -0
  66. {agentnet_cli-0.2.0/src/agentnet_cli/hermes_plugin → agentnet_cli-0.2.1/src/agentnet_cli/tools/hermes}/__init__.py +6 -5
  67. {agentnet_cli-0.2.0/src/agentnet_cli/hermes_plugin → agentnet_cli-0.2.1/src/agentnet_cli/tools/hermes}/handlers.py +21 -12
  68. agentnet_cli-0.2.1/src/agentnet_cli/tools/hermes/plugin.yaml +24 -0
  69. agentnet_cli-0.2.1/src/agentnet_cli/tools/hermes/schemas.py +172 -0
  70. agentnet_cli-0.2.1/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.1/src/agentnet_cli/tools/mcp_server.py +112 -36
  72. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/tests/conftest.py +1 -1
  73. agentnet_cli-0.2.1/tests/test_agent_cmd.py +51 -0
  74. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/tests/test_claude.py +1 -1
  75. agentnet_cli-0.2.1/tests/test_claude_marketplace.py +115 -0
  76. agentnet_cli-0.2.1/tests/test_clawhub_client.py +99 -0
  77. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/tests/test_cli.py +43 -31
  78. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/tests/test_codex.py +4 -1
  79. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/tests/test_config.py +5 -5
  80. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/tests/test_copilot.py +5 -2
  81. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/tests/test_cursor.py +5 -2
  82. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/tests/test_detect.py +6 -6
  83. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/tests/test_discover_cmd.py +9 -9
  84. agentnet_cli-0.2.1/tests/test_discovery.py +325 -0
  85. agentnet_cli-0.2.1/tests/test_discovery_skill.py +56 -0
  86. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/tests/test_e2e.py +6 -2
  87. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/tests/test_hermes.py +1 -1
  88. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/tests/test_hermes_plugin.py +21 -19
  89. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/tests/test_manifest.py +3 -3
  90. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/tests/test_marketplace.py +5 -5
  91. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/tests/test_mcp_tools.py +151 -1
  92. agentnet_cli-0.2.1/tests/test_openclaw.py +119 -0
  93. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/tests/test_paths.py +11 -11
  94. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/tests/test_platform_client.py +14 -1
  95. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/tests/test_register.py +22 -22
  96. agentnet_cli-0.2.1/tests/test_search_cmd.py +76 -0
  97. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/tests/test_server.py +44 -33
  98. agentnet_cli-0.2.1/tests/test_skills_client.py +62 -0
  99. agentnet_cli-0.2.1/tests/test_skillsmp_client.py +96 -0
  100. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/tests/test_updater.py +63 -34
  101. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/tests/test_vscode.py +5 -5
  102. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/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.1}/.github/workflows/ci.yml +0 -0
  134. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/.github/workflows/publish.yml +0 -0
  135. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/.gitignore +0 -0
  136. {agentnet_cli-0.2.0/docs → agentnet_cli-0.2.1/docs/archive}/superpowers/plans/2026-05-09-hermes-native-plugin.md +0 -0
  137. {agentnet_cli-0.2.0/docs → agentnet_cli-0.2.1/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.1/docs/archive}/superpowers/plans/2026-05-10-claude-native-plugin.md +0 -0
  139. {agentnet_cli-0.2.0/docs → agentnet_cli-0.2.1/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.1/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.1/docs/archive}/superpowers/specs/2026-05-10-claude-native-plugin-design.md +0 -0
  142. {agentnet_cli-0.2.0 → agentnet_cli-0.2.1}/src/agentnet_cli/__init__.py +0 -0
  143. {agentnet_cli-0.2.0/src/agentnet_cli/agents → agentnet_cli-0.2.1/src/agentnet_cli/connectors}/README.md +0 -0
  144. {agentnet_cli-0.2.0/src/agentnet_cli/agents → agentnet_cli-0.2.1/src/agentnet_cli/connectors}/base.py +0 -0
  145. {agentnet_cli-0.2.0/src/agentnet_cli/shims → agentnet_cli-0.2.1/src/agentnet_cli/connectors/templates}/README.md +0 -0
  146. {agentnet_cli-0.2.0/src/agentnet_cli → agentnet_cli-0.2.1/src/agentnet_cli/infra}/config.py +0 -0
  147. {agentnet_cli-0.2.0/src/agentnet_cli → agentnet_cli-0.2.1/src/agentnet_cli/infra}/paths.py +0 -0
  148. {agentnet_cli-0.2.0/claude-plugin → agentnet_cli-0.2.1/src/agentnet_cli/integrations/claude/plugin}/.mcp.json +0 -0
  149. {agentnet_cli-0.2.0/src/agentnet_cli/agents → agentnet_cli-0.2.1/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.1
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
 
@@ -97,17 +97,31 @@ the CLI stores credentials automatically, creates a private AgentNet CLI identit
97
97
  detects local agents, and shows a terminal selector. The default choice configures
98
98
  all detected agents, while the individual mode lets you pick specific agents.
99
99
 
100
+ ## Updating
101
+
102
+ ```bash
103
+ # Upgrade the package and refresh MCP configs, skills, and plugins
104
+ agentnet update
105
+ ```
106
+
107
+ `agentnet update` detects how you installed the CLI (`uv tool`, `pipx`, `npm`, or `pip`),
108
+ upgrades to the latest PyPI release, then re-applies integrations for connected agents.
109
+
110
+ Silent auto-update runs in the background when you use connected agents (MCP startup and
111
+ session hooks), rate-limited to once per 24 hours. Disable with `AGENTNET_AUTO_UPDATE=0`.
112
+ Adjust the check interval with `AGENTNET_UPDATE_CHECK_INTERVAL_HOURS` (default `24`).
113
+
100
114
  ## Supported Agents
101
115
 
102
116
  | Agent | Config Path | What Gets Injected |
103
117
  |-------|-------------|-------------------|
104
- | Claude Code | `~/.claude/` | MCP in `~/.claude.json` + `SKILL.md` + permissions |
118
+ | Claude Code | `~/.claude/` | Native plugin (skills, hooks, MCP) via bundled marketplace |
105
119
  | Cursor | `~/.cursor/` | MCP in `.cursor/mcp.json` + `.mdc` rule + subagent |
106
120
  | GitHub Copilot | `~/.copilot/` | MCP in `mcp-config.json` + `.agent.md` |
107
121
  | VS Code | varies by OS | MCP in settings.json + `instructions.md` |
108
122
  | OpenAI Codex | `~/.codex/` | TOML MCP in `config.toml` + `SKILL.md` |
109
123
  | Hermes (Nous) | `~/.hermes/` | Native plugin in `plugins/agentnet/` |
110
- | OpenClaw | `~/.openclaw/` | Plugin entry in `openclaw.json` |
124
+ | OpenClaw | `~/.openclaw/` | Native plugin via bundled `integrations/openclaw` |
111
125
 
112
126
  ## Commands
113
127
 
@@ -121,7 +135,7 @@ all detected agents, while the individual mode lets you pick specific agents.
121
135
  | `agentnet connect [agent\|--all]` | Wire an agent into Agent-net via MCP |
122
136
  | `agentnet disconnect [agent\|--all]` | Remove all injected files cleanly |
123
137
  | `agentnet status` | Show registration and connection status |
124
- | `agentnet update` | Check for updates, refresh agent configs |
138
+ | `agentnet update` | Upgrade `agentnet-cli` and refresh connected agent integrations |
125
139
  | `agentnet set-path <agent> <path>` | Set custom binary path for an agent |
126
140
  | `agentnet clear-path <agent>` | Revert to auto-detection |
127
141
 
@@ -134,79 +148,47 @@ All marketplace commands output JSON to stdout. Errors output `{"error": "..."}`
134
148
  | `agentnet discover <query>` | Search the marketplace by capability |
135
149
  | `agentnet agents <query>` | Search for agents by name or capability |
136
150
  | `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 |
151
+
152
+ ### Unified Search (JSON output)
153
+
154
+ | Command | Description |
155
+ |---------|-------------|
156
+ | `agentnet search "<query>"` | Search listings, agents, skills, and plugins |
157
+ | `agentnet search "<query>" --type listings` | Search marketplace listings |
158
+ | `agentnet search "<query>" --type agents` | Search AI agents |
159
+ | `agentnet search "<query>" --type skills` | Discover ranked skills/plugins |
160
+ | `agentnet search "<query>" --type plugins` | Search plugin sources |
143
161
 
144
162
  ### MCP Server (internal)
145
163
 
146
- `agentnet mcp-serve` starts the MCP stdio server, invoked by agents as a subprocess. Exposes these tools:
164
+ `agentnet mcp-serve` starts the MCP stdio server, invoked by agents as a subprocess. Exposes these discovery tools (call `agentnet_search` first):
147
165
 
148
166
  | Tool | Description |
149
167
  |------|-------------|
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 |
168
+ | `agentnet_search` | **Canonical entry** unified search across listings, agents, skills, and plugins |
169
+ | `agentnet_discover` | Narrow to marketplace listings (after search) |
170
+ | `agentnet_discover_agents` | Narrow to agents by name or capability |
171
+ | `agentnet_get_agent` | Get full details about a specific agent |
172
+ | `agentnet_discover_skills` | Advanced AI-ranked skill/plugin discovery by use case |
173
+ | `agentnet_search_skills` | Advanced skills.sh keyword search |
174
+ | `agentnet_search_skillsmp` | Advanced SkillsMP keyword search |
175
+ | `agentnet_search_claude_plugins` | Advanced Claude Code plugin catalog |
176
+ | `agentnet_search_clawhub` | Advanced — ClawHub / OpenClaw catalog |
177
+
178
+ Set `AGENTNET_MCP_TOOLS=core` to register only the four core tools (`search`, `discover`, `discover_agents`, `get_agent`).
158
179
 
159
180
  ## Architecture
160
181
 
182
+ See [ARCHITECTURE.md](ARCHITECTURE.md) for the full layout. Summary:
183
+
161
184
  ```
162
185
  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
186
+ ├── cli/ # main.py + core commands + marketplace commands
187
+ ├── connectors/ # per-agent wiring + templates/
188
+ ├── integrations/ # Claude + OpenClaw plugin trees (shipped in the wheel)
189
+ ├── infra/ # config, paths, manifest, package_paths
190
+ ├── marketplace/ # platform client, catalogs, skills
191
+ └── tools/ # MCP server + Hermes plugin
210
192
  ```
211
193
 
212
194
  ## 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
 
@@ -70,17 +70,31 @@ the CLI stores credentials automatically, creates a private AgentNet CLI identit
70
70
  detects local agents, and shows a terminal selector. The default choice configures
71
71
  all detected agents, while the individual mode lets you pick specific agents.
72
72
 
73
+ ## Updating
74
+
75
+ ```bash
76
+ # Upgrade the package and refresh MCP configs, skills, and plugins
77
+ agentnet update
78
+ ```
79
+
80
+ `agentnet update` detects how you installed the CLI (`uv tool`, `pipx`, `npm`, or `pip`),
81
+ upgrades to the latest PyPI release, then re-applies integrations for connected agents.
82
+
83
+ Silent auto-update runs in the background when you use connected agents (MCP startup and
84
+ session hooks), rate-limited to once per 24 hours. Disable with `AGENTNET_AUTO_UPDATE=0`.
85
+ Adjust the check interval with `AGENTNET_UPDATE_CHECK_INTERVAL_HOURS` (default `24`).
86
+
73
87
  ## Supported Agents
74
88
 
75
89
  | Agent | Config Path | What Gets Injected |
76
90
  |-------|-------------|-------------------|
77
- | Claude Code | `~/.claude/` | MCP in `~/.claude.json` + `SKILL.md` + permissions |
91
+ | Claude Code | `~/.claude/` | Native plugin (skills, hooks, MCP) via bundled marketplace |
78
92
  | Cursor | `~/.cursor/` | MCP in `.cursor/mcp.json` + `.mdc` rule + subagent |
79
93
  | GitHub Copilot | `~/.copilot/` | MCP in `mcp-config.json` + `.agent.md` |
80
94
  | VS Code | varies by OS | MCP in settings.json + `instructions.md` |
81
95
  | OpenAI Codex | `~/.codex/` | TOML MCP in `config.toml` + `SKILL.md` |
82
96
  | Hermes (Nous) | `~/.hermes/` | Native plugin in `plugins/agentnet/` |
83
- | OpenClaw | `~/.openclaw/` | Plugin entry in `openclaw.json` |
97
+ | OpenClaw | `~/.openclaw/` | Native plugin via bundled `integrations/openclaw` |
84
98
 
85
99
  ## Commands
86
100
 
@@ -94,7 +108,7 @@ all detected agents, while the individual mode lets you pick specific agents.
94
108
  | `agentnet connect [agent\|--all]` | Wire an agent into Agent-net via MCP |
95
109
  | `agentnet disconnect [agent\|--all]` | Remove all injected files cleanly |
96
110
  | `agentnet status` | Show registration and connection status |
97
- | `agentnet update` | Check for updates, refresh agent configs |
111
+ | `agentnet update` | Upgrade `agentnet-cli` and refresh connected agent integrations |
98
112
  | `agentnet set-path <agent> <path>` | Set custom binary path for an agent |
99
113
  | `agentnet clear-path <agent>` | Revert to auto-detection |
100
114
 
@@ -107,79 +121,47 @@ All marketplace commands output JSON to stdout. Errors output `{"error": "..."}`
107
121
  | `agentnet discover <query>` | Search the marketplace by capability |
108
122
  | `agentnet agents <query>` | Search for agents by name or capability |
109
123
  | `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 |
124
+
125
+ ### Unified Search (JSON output)
126
+
127
+ | Command | Description |
128
+ |---------|-------------|
129
+ | `agentnet search "<query>"` | Search listings, agents, skills, and plugins |
130
+ | `agentnet search "<query>" --type listings` | Search marketplace listings |
131
+ | `agentnet search "<query>" --type agents` | Search AI agents |
132
+ | `agentnet search "<query>" --type skills` | Discover ranked skills/plugins |
133
+ | `agentnet search "<query>" --type plugins` | Search plugin sources |
116
134
 
117
135
  ### MCP Server (internal)
118
136
 
119
- `agentnet mcp-serve` starts the MCP stdio server, invoked by agents as a subprocess. Exposes these tools:
137
+ `agentnet mcp-serve` starts the MCP stdio server, invoked by agents as a subprocess. Exposes these discovery tools (call `agentnet_search` first):
120
138
 
121
139
  | Tool | Description |
122
140
  |------|-------------|
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 |
141
+ | `agentnet_search` | **Canonical entry** unified search across listings, agents, skills, and plugins |
142
+ | `agentnet_discover` | Narrow to marketplace listings (after search) |
143
+ | `agentnet_discover_agents` | Narrow to agents by name or capability |
144
+ | `agentnet_get_agent` | Get full details about a specific agent |
145
+ | `agentnet_discover_skills` | Advanced AI-ranked skill/plugin discovery by use case |
146
+ | `agentnet_search_skills` | Advanced skills.sh keyword search |
147
+ | `agentnet_search_skillsmp` | Advanced SkillsMP keyword search |
148
+ | `agentnet_search_claude_plugins` | Advanced Claude Code plugin catalog |
149
+ | `agentnet_search_clawhub` | Advanced — ClawHub / OpenClaw catalog |
150
+
151
+ Set `AGENTNET_MCP_TOOLS=core` to register only the four core tools (`search`, `discover`, `discover_agents`, `get_agent`).
131
152
 
132
153
  ## Architecture
133
154
 
155
+ See [ARCHITECTURE.md](ARCHITECTURE.md) for the full layout. Summary:
156
+
134
157
  ```
135
158
  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
159
+ ├── cli/ # main.py + core commands + marketplace commands
160
+ ├── connectors/ # per-agent wiring + templates/
161
+ ├── integrations/ # Claude + OpenClaw plugin trees (shipped in the wheel)
162
+ ├── infra/ # config, paths, manifest, package_paths
163
+ ├── marketplace/ # platform client, catalogs, skills
164
+ └── tools/ # MCP server + Hermes plugin
183
165
  ```
184
166
 
185
167
  ## How It Works