agentnet-cli 0.1.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.
- agentnet_cli-0.2.1/ARCHITECTURE.md +47 -0
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/CLAUDE.md +10 -57
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/PKG-INFO +68 -78
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/README.md +66 -77
- agentnet_cli-0.2.1/docs/archive/superpowers/plans/2026-05-10-openclaw-native-plugin.md +635 -0
- agentnet_cli-0.2.1/docs/archive/superpowers/specs/2026-05-10-openclaw-native-plugin-design.md +282 -0
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/pyproject.toml +4 -3
- agentnet_cli-0.2.1/src/agentnet_cli/cli/__init__.py +1 -0
- agentnet_cli-0.2.1/src/agentnet_cli/cli/core/__init__.py +1 -0
- {agentnet_cli-0.1.0/src/agentnet_cli → agentnet_cli-0.2.1/src/agentnet_cli/cli/core}/connect.py +5 -5
- {agentnet_cli-0.1.0/src/agentnet_cli → agentnet_cli-0.2.1/src/agentnet_cli/cli/core}/detect.py +5 -5
- {agentnet_cli-0.1.0/src/agentnet_cli → agentnet_cli-0.2.1/src/agentnet_cli/cli/core}/disconnect.py +3 -3
- {agentnet_cli-0.1.0/src/agentnet_cli → agentnet_cli-0.2.1/src/agentnet_cli/cli/core}/register.py +96 -19
- agentnet_cli-0.2.1/src/agentnet_cli/cli/core/setup_wizard.py +391 -0
- {agentnet_cli-0.1.0/src/agentnet_cli → agentnet_cli-0.2.1/src/agentnet_cli/cli/core}/status.py +3 -6
- agentnet_cli-0.2.1/src/agentnet_cli/cli/core/updater.py +294 -0
- {agentnet_cli-0.1.0/src/agentnet_cli → agentnet_cli-0.2.1/src/agentnet_cli/cli}/main.py +86 -50
- agentnet_cli-0.2.1/src/agentnet_cli/cli/marketplace/__init__.py +1 -0
- agentnet_cli-0.2.1/src/agentnet_cli/cli/marketplace/agent.py +18 -0
- {agentnet_cli-0.1.0/src/agentnet_cli/commands → agentnet_cli-0.2.1/src/agentnet_cli/cli/marketplace}/discover.py +2 -2
- agentnet_cli-0.2.1/src/agentnet_cli/cli/marketplace/search.py +124 -0
- agentnet_cli-0.2.1/src/agentnet_cli/connectors/__init__.py +1 -0
- {agentnet_cli-0.1.0/src/agentnet_cli/agents → agentnet_cli-0.2.1/src/agentnet_cli/connectors}/claude.py +12 -8
- {agentnet_cli-0.1.0/src/agentnet_cli/agents → agentnet_cli-0.2.1/src/agentnet_cli/connectors}/codex.py +7 -5
- {agentnet_cli-0.1.0/src/agentnet_cli/agents → agentnet_cli-0.2.1/src/agentnet_cli/connectors}/copilot.py +5 -1
- {agentnet_cli-0.1.0/src/agentnet_cli/agents → agentnet_cli-0.2.1/src/agentnet_cli/connectors}/cursor.py +35 -1
- {agentnet_cli-0.1.0/src/agentnet_cli/agents → agentnet_cli-0.2.1/src/agentnet_cli/connectors}/hermes.py +4 -4
- agentnet_cli-0.2.1/src/agentnet_cli/connectors/openclaw.py +119 -0
- {agentnet_cli-0.1.0/src/agentnet_cli/agents → agentnet_cli-0.2.1/src/agentnet_cli/connectors}/registry.py +1 -1
- agentnet_cli-0.2.1/src/agentnet_cli/connectors/shims.py +18 -0
- agentnet_cli-0.2.1/src/agentnet_cli/connectors/templates/SKILL.hosted.md +161 -0
- agentnet_cli-0.2.1/src/agentnet_cli/connectors/templates/codex/skill.md +12 -0
- agentnet_cli-0.2.1/src/agentnet_cli/connectors/templates/copilot/agentnet.agent.md +16 -0
- agentnet_cli-0.2.1/src/agentnet_cli/connectors/templates/cursor/agent.md +9 -0
- agentnet_cli-0.2.1/src/agentnet_cli/connectors/templates/cursor/agentnet.mdc +8 -0
- agentnet_cli-0.2.1/src/agentnet_cli/connectors/templates/shared/context.md +82 -0
- agentnet_cli-0.2.1/src/agentnet_cli/connectors/templates/shared/default-chat.md +3 -0
- agentnet_cli-0.2.1/src/agentnet_cli/connectors/templates/vscode/instructions.md +5 -0
- {agentnet_cli-0.1.0/src/agentnet_cli/agents → agentnet_cli-0.2.1/src/agentnet_cli/connectors}/vscode.py +1 -1
- agentnet_cli-0.2.1/src/agentnet_cli/infra/__init__.py +1 -0
- {agentnet_cli-0.1.0/src/agentnet_cli → agentnet_cli-0.2.1/src/agentnet_cli/infra}/manifest.py +27 -1
- agentnet_cli-0.2.1/src/agentnet_cli/infra/package_paths.py +20 -0
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1/src/agentnet_cli/integrations/claude}/.claude-plugin/marketplace.json +2 -2
- {agentnet_cli-0.1.0/claude-plugin → agentnet_cli-0.2.1/src/agentnet_cli/integrations/claude/plugin}/.claude-plugin/plugin.json +1 -1
- agentnet_cli-0.2.1/src/agentnet_cli/integrations/claude/plugin/agents/marketplace.md +23 -0
- agentnet_cli-0.2.1/src/agentnet_cli/integrations/claude/plugin/hooks/hooks.json +22 -0
- agentnet_cli-0.2.1/src/agentnet_cli/integrations/claude/plugin/skills/agentnet/SKILL.md +35 -0
- agentnet_cli-0.2.1/src/agentnet_cli/integrations/openclaw/.mcp.json +10 -0
- agentnet_cli-0.2.1/src/agentnet_cli/integrations/openclaw/index.js +17 -0
- agentnet_cli-0.2.1/src/agentnet_cli/integrations/openclaw/openclaw.plugin.json +22 -0
- agentnet_cli-0.2.1/src/agentnet_cli/integrations/openclaw/package.json +24 -0
- agentnet_cli-0.2.1/src/agentnet_cli/integrations/openclaw/skills/agentnet/SKILL.md +32 -0
- agentnet_cli-0.2.1/src/agentnet_cli/integrations/shared/discovery-skill.base.md +82 -0
- agentnet_cli-0.2.1/src/agentnet_cli/marketplace/__init__.py +5 -0
- agentnet_cli-0.1.0/src/agentnet_cli/marketplace.py → agentnet_cli-0.2.1/src/agentnet_cli/marketplace/auth.py +4 -4
- agentnet_cli-0.2.1/src/agentnet_cli/marketplace/catalogs/__init__.py +1 -0
- agentnet_cli-0.2.1/src/agentnet_cli/marketplace/catalogs/claude_marketplace.py +89 -0
- agentnet_cli-0.2.1/src/agentnet_cli/marketplace/catalogs/clawhub.py +82 -0
- {agentnet_cli-0.1.0/src/agentnet_cli/platform → agentnet_cli-0.2.1/src/agentnet_cli/marketplace}/client.py +52 -2
- agentnet_cli-0.2.1/src/agentnet_cli/marketplace/skills/__init__.py +1 -0
- agentnet_cli-0.2.1/src/agentnet_cli/marketplace/skills/client.py +61 -0
- agentnet_cli-0.2.1/src/agentnet_cli/marketplace/skills/discovery.py +501 -0
- agentnet_cli-0.2.1/src/agentnet_cli/marketplace/skills/skillsmp.py +83 -0
- agentnet_cli-0.2.1/src/agentnet_cli/tools/__init__.py +1 -0
- agentnet_cli-0.2.1/src/agentnet_cli/tools/handlers.py +164 -0
- {agentnet_cli-0.1.0/src/agentnet_cli/hermes_plugin → agentnet_cli-0.2.1/src/agentnet_cli/tools/hermes}/__init__.py +6 -5
- {agentnet_cli-0.1.0/src/agentnet_cli/hermes_plugin → agentnet_cli-0.2.1/src/agentnet_cli/tools/hermes}/handlers.py +22 -13
- agentnet_cli-0.2.1/src/agentnet_cli/tools/hermes/plugin.yaml +24 -0
- agentnet_cli-0.2.1/src/agentnet_cli/tools/hermes/schemas.py +172 -0
- agentnet_cli-0.2.1/src/agentnet_cli/tools/hermes/skills/agentnet/SKILL.md +45 -0
- agentnet_cli-0.1.0/src/agentnet_cli/mcp/server.py → agentnet_cli-0.2.1/src/agentnet_cli/tools/mcp_server.py +112 -36
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/tests/conftest.py +1 -1
- agentnet_cli-0.2.1/tests/test_agent_cmd.py +51 -0
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/tests/test_claude.py +1 -1
- agentnet_cli-0.2.1/tests/test_claude_marketplace.py +115 -0
- agentnet_cli-0.2.1/tests/test_clawhub_client.py +99 -0
- agentnet_cli-0.2.1/tests/test_cli.py +339 -0
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/tests/test_codex.py +4 -1
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/tests/test_config.py +5 -5
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/tests/test_copilot.py +5 -2
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/tests/test_cursor.py +5 -2
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/tests/test_detect.py +6 -6
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/tests/test_discover_cmd.py +9 -9
- agentnet_cli-0.2.1/tests/test_discovery.py +325 -0
- agentnet_cli-0.2.1/tests/test_discovery_skill.py +56 -0
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/tests/test_e2e.py +6 -2
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/tests/test_hermes.py +1 -1
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/tests/test_hermes_plugin.py +22 -20
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/tests/test_manifest.py +3 -3
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/tests/test_marketplace.py +5 -5
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/tests/test_mcp_tools.py +151 -1
- agentnet_cli-0.2.1/tests/test_openclaw.py +119 -0
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/tests/test_paths.py +11 -11
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/tests/test_platform_client.py +14 -1
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/tests/test_register.py +68 -49
- agentnet_cli-0.2.1/tests/test_search_cmd.py +76 -0
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/tests/test_server.py +44 -33
- agentnet_cli-0.2.1/tests/test_skills_client.py +62 -0
- agentnet_cli-0.2.1/tests/test_skillsmp_client.py +96 -0
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/tests/test_updater.py +63 -34
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/tests/test_vscode.py +5 -5
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/uv.lock +3 -1
- agentnet_cli-0.1.0/claude-plugin/agents/marketplace.md +0 -27
- agentnet_cli-0.1.0/claude-plugin/hooks/hooks.json +0 -14
- agentnet_cli-0.1.0/claude-plugin/skills/agentnet/SKILL.md +0 -71
- agentnet_cli-0.1.0/src/agentnet_cli/agents/openclaw.py +0 -54
- agentnet_cli-0.1.0/src/agentnet_cli/agents/shims.py +0 -9
- agentnet_cli-0.1.0/src/agentnet_cli/commands/__init__.py +0 -0
- agentnet_cli-0.1.0/src/agentnet_cli/commands/agent.py +0 -32
- agentnet_cli-0.1.0/src/agentnet_cli/commands/session.py +0 -35
- agentnet_cli-0.1.0/src/agentnet_cli/commands/wallet.py +0 -48
- agentnet_cli-0.1.0/src/agentnet_cli/hermes_plugin/plugin.yaml +0 -17
- agentnet_cli-0.1.0/src/agentnet_cli/hermes_plugin/schemas.py +0 -182
- agentnet_cli-0.1.0/src/agentnet_cli/hermes_plugin/skills/agentnet/SKILL.md +0 -46
- agentnet_cli-0.1.0/src/agentnet_cli/mcp/README.md +0 -64
- agentnet_cli-0.1.0/src/agentnet_cli/mcp/__init__.py +0 -0
- agentnet_cli-0.1.0/src/agentnet_cli/mcp/tools.py +0 -67
- agentnet_cli-0.1.0/src/agentnet_cli/platform/README.md +0 -79
- agentnet_cli-0.1.0/src/agentnet_cli/platform/__init__.py +0 -0
- agentnet_cli-0.1.0/src/agentnet_cli/shims/SKILL.md +0 -225
- agentnet_cli-0.1.0/src/agentnet_cli/shims/codex/skill.md +0 -8
- agentnet_cli-0.1.0/src/agentnet_cli/shims/copilot/agentnet.agent.md +0 -14
- agentnet_cli-0.1.0/src/agentnet_cli/shims/cursor/agent.md +0 -9
- agentnet_cli-0.1.0/src/agentnet_cli/shims/cursor/agentnet.mdc +0 -8
- agentnet_cli-0.1.0/src/agentnet_cli/shims/shared/context.md +0 -62
- agentnet_cli-0.1.0/src/agentnet_cli/shims/vscode/instructions.md +0 -3
- agentnet_cli-0.1.0/src/agentnet_cli/updater.py +0 -123
- agentnet_cli-0.1.0/tests/__init__.py +0 -0
- agentnet_cli-0.1.0/tests/test_agent_cmd.py +0 -89
- agentnet_cli-0.1.0/tests/test_cli.py +0 -178
- agentnet_cli-0.1.0/tests/test_openclaw.py +0 -38
- agentnet_cli-0.1.0/tests/test_session_cmd.py +0 -77
- agentnet_cli-0.1.0/tests/test_wallet_cmd.py +0 -107
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/.github/workflows/ci.yml +0 -0
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/.github/workflows/publish.yml +0 -0
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/.gitignore +0 -0
- {agentnet_cli-0.1.0/docs → agentnet_cli-0.2.1/docs/archive}/superpowers/plans/2026-05-09-hermes-native-plugin.md +0 -0
- {agentnet_cli-0.1.0/docs → agentnet_cli-0.2.1/docs/archive}/superpowers/plans/2026-05-09-marketplace-cli-and-skill.md +0 -0
- {agentnet_cli-0.1.0/docs → agentnet_cli-0.2.1/docs/archive}/superpowers/plans/2026-05-10-claude-native-plugin.md +0 -0
- {agentnet_cli-0.1.0/docs → agentnet_cli-0.2.1/docs/archive}/superpowers/specs/2026-05-09-hermes-native-plugin-design.md +0 -0
- {agentnet_cli-0.1.0/docs → agentnet_cli-0.2.1/docs/archive}/superpowers/specs/2026-05-09-marketplace-cli-and-skill-design.md +0 -0
- {agentnet_cli-0.1.0/docs → agentnet_cli-0.2.1/docs/archive}/superpowers/specs/2026-05-10-claude-native-plugin-design.md +0 -0
- {agentnet_cli-0.1.0 → agentnet_cli-0.2.1}/src/agentnet_cli/__init__.py +0 -0
- {agentnet_cli-0.1.0/src/agentnet_cli/agents → agentnet_cli-0.2.1/src/agentnet_cli/connectors}/README.md +0 -0
- {agentnet_cli-0.1.0/src/agentnet_cli/agents → agentnet_cli-0.2.1/src/agentnet_cli/connectors}/base.py +0 -0
- {agentnet_cli-0.1.0/src/agentnet_cli/shims → agentnet_cli-0.2.1/src/agentnet_cli/connectors/templates}/README.md +0 -0
- {agentnet_cli-0.1.0/src/agentnet_cli → agentnet_cli-0.2.1/src/agentnet_cli/infra}/config.py +0 -0
- {agentnet_cli-0.1.0/src/agentnet_cli → agentnet_cli-0.2.1/src/agentnet_cli/infra}/paths.py +0 -0
- {agentnet_cli-0.1.0/claude-plugin → agentnet_cli-0.2.1/src/agentnet_cli/integrations/claude/plugin}/.mcp.json +0 -0
- {agentnet_cli-0.1.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 (
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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.1
|
|
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
|
|
@@ -17,6 +17,7 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.13
|
|
18
18
|
Classifier: Topic :: Software Development :: Libraries
|
|
19
19
|
Requires-Python: >=3.11
|
|
20
|
+
Requires-Dist: click>=8.0
|
|
20
21
|
Requires-Dist: httpx>=0.27
|
|
21
22
|
Requires-Dist: pyyaml>=6.0
|
|
22
23
|
Requires-Dist: rich>=13.0
|
|
@@ -48,12 +49,13 @@ Cursor ○ not found —
|
|
|
48
49
|
|
|
49
50
|
## What It Does
|
|
50
51
|
|
|
51
|
-
1. **
|
|
52
|
-
2. **
|
|
53
|
-
3. **
|
|
54
|
-
4. **
|
|
52
|
+
1. **Sets up** Agent-net with one command: browser sign in/sign up, private CLI agent registration, local agent detection, and guided configuration
|
|
53
|
+
2. **Detects** which AI agents you have installed (Claude Code, Cursor, GitHub Copilot, VS Code, OpenAI Codex, Hermes, OpenClaw)
|
|
54
|
+
3. **Connects** them to Agent-net by injecting MCP server configs, native plugins/skills, and permission auto-approvals
|
|
55
|
+
4. **Disconnects** cleanly -- removes everything it wrote, restores original configs
|
|
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)
|
|
55
57
|
|
|
56
|
-
After connecting, your agent can
|
|
58
|
+
After connecting, your agent can search the marketplace and find installable skills/plugins.
|
|
57
59
|
|
|
58
60
|
## Install
|
|
59
61
|
|
|
@@ -74,34 +76,52 @@ cd agentnet-cli && uv sync
|
|
|
74
76
|
## Quick Start
|
|
75
77
|
|
|
76
78
|
```bash
|
|
77
|
-
# 1.
|
|
78
|
-
agentnet
|
|
79
|
+
# 1. Recommended: sign in and configure detected agents
|
|
80
|
+
agentnet setup
|
|
79
81
|
|
|
80
|
-
#
|
|
82
|
+
# Optional manual flow
|
|
83
|
+
agentnet detect
|
|
81
84
|
agentnet register
|
|
82
|
-
|
|
83
|
-
# 3. Connect an agent
|
|
84
85
|
agentnet connect claude
|
|
85
86
|
agentnet connect --all
|
|
86
87
|
|
|
87
|
-
#
|
|
88
|
+
# Check status
|
|
88
89
|
agentnet status
|
|
89
90
|
|
|
90
|
-
#
|
|
91
|
+
# Done testing? Clean up
|
|
91
92
|
agentnet disconnect --all
|
|
92
93
|
```
|
|
93
94
|
|
|
95
|
+
`agentnet setup` opens the browser to Agent-net sign in/sign up. After login,
|
|
96
|
+
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.
|
|
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
|
+
|
|
94
114
|
## Supported Agents
|
|
95
115
|
|
|
96
116
|
| Agent | Config Path | What Gets Injected |
|
|
97
117
|
|-------|-------------|-------------------|
|
|
98
|
-
| Claude Code | `~/.claude/` |
|
|
118
|
+
| Claude Code | `~/.claude/` | Native plugin (skills, hooks, MCP) via bundled marketplace |
|
|
99
119
|
| Cursor | `~/.cursor/` | MCP in `.cursor/mcp.json` + `.mdc` rule + subagent |
|
|
100
120
|
| GitHub Copilot | `~/.copilot/` | MCP in `mcp-config.json` + `.agent.md` |
|
|
101
121
|
| VS Code | varies by OS | MCP in settings.json + `instructions.md` |
|
|
102
122
|
| OpenAI Codex | `~/.codex/` | TOML MCP in `config.toml` + `SKILL.md` |
|
|
103
123
|
| Hermes (Nous) | `~/.hermes/` | Native plugin in `plugins/agentnet/` |
|
|
104
|
-
| OpenClaw | `~/.openclaw/` |
|
|
124
|
+
| OpenClaw | `~/.openclaw/` | Native plugin via bundled `integrations/openclaw` |
|
|
105
125
|
|
|
106
126
|
## Commands
|
|
107
127
|
|
|
@@ -109,12 +129,13 @@ agentnet disconnect --all
|
|
|
109
129
|
|
|
110
130
|
| Command | Description |
|
|
111
131
|
|---------|-------------|
|
|
132
|
+
| `agentnet setup` | Browser login plus guided private agent configuration |
|
|
112
133
|
| `agentnet detect` | Scan for installed AI agents |
|
|
113
|
-
| `agentnet register` |
|
|
134
|
+
| `agentnet register` | Sign in through the browser and register a CLI identity |
|
|
114
135
|
| `agentnet connect [agent\|--all]` | Wire an agent into Agent-net via MCP |
|
|
115
136
|
| `agentnet disconnect [agent\|--all]` | Remove all injected files cleanly |
|
|
116
137
|
| `agentnet status` | Show registration and connection status |
|
|
117
|
-
| `agentnet update` |
|
|
138
|
+
| `agentnet update` | Upgrade `agentnet-cli` and refresh connected agent integrations |
|
|
118
139
|
| `agentnet set-path <agent> <path>` | Set custom binary path for an agent |
|
|
119
140
|
| `agentnet clear-path <agent>` | Revert to auto-detection |
|
|
120
141
|
|
|
@@ -127,78 +148,47 @@ All marketplace commands output JSON to stdout. Errors output `{"error": "..."}`
|
|
|
127
148
|
| `agentnet discover <query>` | Search the marketplace by capability |
|
|
128
149
|
| `agentnet agents <query>` | Search for agents by name or capability |
|
|
129
150
|
| `agentnet agent <id>` | Get full details about an agent |
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
|
134
|
-
|
|
135
|
-
| `agentnet
|
|
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 |
|
|
136
161
|
|
|
137
162
|
### MCP Server (internal)
|
|
138
163
|
|
|
139
|
-
`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):
|
|
140
165
|
|
|
141
166
|
| Tool | Description |
|
|
142
167
|
|------|-------------|
|
|
143
|
-
| `
|
|
144
|
-
| `
|
|
145
|
-
| `
|
|
146
|
-
| `
|
|
147
|
-
| `
|
|
148
|
-
| `
|
|
149
|
-
| `
|
|
150
|
-
| `
|
|
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`).
|
|
151
179
|
|
|
152
180
|
## Architecture
|
|
153
181
|
|
|
182
|
+
See [ARCHITECTURE.md](ARCHITECTURE.md) for the full layout. Summary:
|
|
183
|
+
|
|
154
184
|
```
|
|
155
185
|
src/agentnet_cli/
|
|
156
|
-
├── main.py
|
|
157
|
-
├──
|
|
158
|
-
├──
|
|
159
|
-
├──
|
|
160
|
-
├──
|
|
161
|
-
|
|
162
|
-
├── register.py # OAuth2 registration with platform
|
|
163
|
-
├── marketplace.py # PlatformClient factory, JSON output helpers
|
|
164
|
-
├── paths.py # Agent enum, config roots, binary detection
|
|
165
|
-
├── status.py # Rich CLI status display
|
|
166
|
-
├── updater.py # Auto-update and config refresh
|
|
167
|
-
├── agents/ # Per-agent connectors (detect + connect logic)
|
|
168
|
-
│ ├── base.py # Abstract AgentConnector, DetectionResult, ConnectionResult
|
|
169
|
-
│ ├── registry.py # AgentName -> connector factory
|
|
170
|
-
│ ├── claude.py # Claude Code connector
|
|
171
|
-
│ ├── cursor.py # Cursor IDE connector
|
|
172
|
-
│ ├── copilot.py # GitHub Copilot connector
|
|
173
|
-
│ ├── vscode.py # VS Code connector
|
|
174
|
-
│ ├── codex.py # OpenAI Codex connector
|
|
175
|
-
│ ├── hermes.py # Hermes connector (native plugin system)
|
|
176
|
-
│ ├── openclaw.py # OpenClaw connector
|
|
177
|
-
│ └── shims.py # Template loader for config shims
|
|
178
|
-
├── hermes_plugin/ # Hermes native plugin (copied to ~/.hermes/plugins/)
|
|
179
|
-
│ ├── __init__.py # register(ctx) entry point
|
|
180
|
-
│ ├── schemas.py # Tool schemas in Hermes format
|
|
181
|
-
│ ├── handlers.py # Tool handlers wrapping PlatformClient
|
|
182
|
-
│ ├── plugin.yaml # Hermes plugin manifest
|
|
183
|
-
│ └── skills/agentnet/SKILL.md
|
|
184
|
-
├── commands/ # Marketplace subcommands (JSON output)
|
|
185
|
-
│ ├── discover.py # discover, agents
|
|
186
|
-
│ ├── agent.py # agent, hire
|
|
187
|
-
│ ├── wallet.py # wallet balance/history/topup
|
|
188
|
-
│ └── session.py # session continue/settle
|
|
189
|
-
├── mcp/ # MCP JSON-RPC server
|
|
190
|
-
│ ├── server.py # Tool definitions, request routing, stdio transport
|
|
191
|
-
│ └── tools.py # Tool handler implementations
|
|
192
|
-
├── platform/ # Platform API client
|
|
193
|
-
│ └── client.py # PlatformClient (httpx REST wrapper)
|
|
194
|
-
└── shims/ # Agent-native config templates
|
|
195
|
-
├── shared/context.md
|
|
196
|
-
├── claude/skill.md
|
|
197
|
-
├── cursor/agent.md, agentnet.mdc
|
|
198
|
-
├── copilot/agentnet.agent.md
|
|
199
|
-
├── codex/skill.md
|
|
200
|
-
├── vscode/instructions.md
|
|
201
|
-
└── 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
|
|
202
192
|
```
|
|
203
193
|
|
|
204
194
|
## How It Works
|
|
@@ -22,12 +22,13 @@ Cursor ○ not found —
|
|
|
22
22
|
|
|
23
23
|
## What It Does
|
|
24
24
|
|
|
25
|
-
1. **
|
|
26
|
-
2. **
|
|
27
|
-
3. **
|
|
28
|
-
4. **
|
|
25
|
+
1. **Sets up** Agent-net with one command: browser sign in/sign up, private CLI agent registration, local agent detection, and guided configuration
|
|
26
|
+
2. **Detects** which AI agents you have installed (Claude Code, Cursor, GitHub Copilot, VS Code, OpenAI Codex, Hermes, OpenClaw)
|
|
27
|
+
3. **Connects** them to Agent-net by injecting MCP server configs, native plugins/skills, and permission auto-approvals
|
|
28
|
+
4. **Disconnects** cleanly -- removes everything it wrote, restores original configs
|
|
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)
|
|
29
30
|
|
|
30
|
-
After connecting, your agent can
|
|
31
|
+
After connecting, your agent can search the marketplace and find installable skills/plugins.
|
|
31
32
|
|
|
32
33
|
## Install
|
|
33
34
|
|
|
@@ -48,34 +49,52 @@ cd agentnet-cli && uv sync
|
|
|
48
49
|
## Quick Start
|
|
49
50
|
|
|
50
51
|
```bash
|
|
51
|
-
# 1.
|
|
52
|
-
agentnet
|
|
52
|
+
# 1. Recommended: sign in and configure detected agents
|
|
53
|
+
agentnet setup
|
|
53
54
|
|
|
54
|
-
#
|
|
55
|
+
# Optional manual flow
|
|
56
|
+
agentnet detect
|
|
55
57
|
agentnet register
|
|
56
|
-
|
|
57
|
-
# 3. Connect an agent
|
|
58
58
|
agentnet connect claude
|
|
59
59
|
agentnet connect --all
|
|
60
60
|
|
|
61
|
-
#
|
|
61
|
+
# Check status
|
|
62
62
|
agentnet status
|
|
63
63
|
|
|
64
|
-
#
|
|
64
|
+
# Done testing? Clean up
|
|
65
65
|
agentnet disconnect --all
|
|
66
66
|
```
|
|
67
67
|
|
|
68
|
+
`agentnet setup` opens the browser to Agent-net sign in/sign up. After login,
|
|
69
|
+
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.
|
|
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
|
+
|
|
68
87
|
## Supported Agents
|
|
69
88
|
|
|
70
89
|
| Agent | Config Path | What Gets Injected |
|
|
71
90
|
|-------|-------------|-------------------|
|
|
72
|
-
| Claude Code | `~/.claude/` |
|
|
91
|
+
| Claude Code | `~/.claude/` | Native plugin (skills, hooks, MCP) via bundled marketplace |
|
|
73
92
|
| Cursor | `~/.cursor/` | MCP in `.cursor/mcp.json` + `.mdc` rule + subagent |
|
|
74
93
|
| GitHub Copilot | `~/.copilot/` | MCP in `mcp-config.json` + `.agent.md` |
|
|
75
94
|
| VS Code | varies by OS | MCP in settings.json + `instructions.md` |
|
|
76
95
|
| OpenAI Codex | `~/.codex/` | TOML MCP in `config.toml` + `SKILL.md` |
|
|
77
96
|
| Hermes (Nous) | `~/.hermes/` | Native plugin in `plugins/agentnet/` |
|
|
78
|
-
| OpenClaw | `~/.openclaw/` |
|
|
97
|
+
| OpenClaw | `~/.openclaw/` | Native plugin via bundled `integrations/openclaw` |
|
|
79
98
|
|
|
80
99
|
## Commands
|
|
81
100
|
|
|
@@ -83,12 +102,13 @@ agentnet disconnect --all
|
|
|
83
102
|
|
|
84
103
|
| Command | Description |
|
|
85
104
|
|---------|-------------|
|
|
105
|
+
| `agentnet setup` | Browser login plus guided private agent configuration |
|
|
86
106
|
| `agentnet detect` | Scan for installed AI agents |
|
|
87
|
-
| `agentnet register` |
|
|
107
|
+
| `agentnet register` | Sign in through the browser and register a CLI identity |
|
|
88
108
|
| `agentnet connect [agent\|--all]` | Wire an agent into Agent-net via MCP |
|
|
89
109
|
| `agentnet disconnect [agent\|--all]` | Remove all injected files cleanly |
|
|
90
110
|
| `agentnet status` | Show registration and connection status |
|
|
91
|
-
| `agentnet update` |
|
|
111
|
+
| `agentnet update` | Upgrade `agentnet-cli` and refresh connected agent integrations |
|
|
92
112
|
| `agentnet set-path <agent> <path>` | Set custom binary path for an agent |
|
|
93
113
|
| `agentnet clear-path <agent>` | Revert to auto-detection |
|
|
94
114
|
|
|
@@ -101,78 +121,47 @@ All marketplace commands output JSON to stdout. Errors output `{"error": "..."}`
|
|
|
101
121
|
| `agentnet discover <query>` | Search the marketplace by capability |
|
|
102
122
|
| `agentnet agents <query>` | Search for agents by name or capability |
|
|
103
123
|
| `agentnet agent <id>` | Get full details about an agent |
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
|
108
|
-
|
|
109
|
-
| `agentnet
|
|
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 |
|
|
110
134
|
|
|
111
135
|
### MCP Server (internal)
|
|
112
136
|
|
|
113
|
-
`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):
|
|
114
138
|
|
|
115
139
|
| Tool | Description |
|
|
116
140
|
|------|-------------|
|
|
117
|
-
| `
|
|
118
|
-
| `
|
|
119
|
-
| `
|
|
120
|
-
| `
|
|
121
|
-
| `
|
|
122
|
-
| `
|
|
123
|
-
| `
|
|
124
|
-
| `
|
|
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`).
|
|
125
152
|
|
|
126
153
|
## Architecture
|
|
127
154
|
|
|
155
|
+
See [ARCHITECTURE.md](ARCHITECTURE.md) for the full layout. Summary:
|
|
156
|
+
|
|
128
157
|
```
|
|
129
158
|
src/agentnet_cli/
|
|
130
|
-
├── main.py
|
|
131
|
-
├──
|
|
132
|
-
├──
|
|
133
|
-
├──
|
|
134
|
-
├──
|
|
135
|
-
|
|
136
|
-
├── register.py # OAuth2 registration with platform
|
|
137
|
-
├── marketplace.py # PlatformClient factory, JSON output helpers
|
|
138
|
-
├── paths.py # Agent enum, config roots, binary detection
|
|
139
|
-
├── status.py # Rich CLI status display
|
|
140
|
-
├── updater.py # Auto-update and config refresh
|
|
141
|
-
├── agents/ # Per-agent connectors (detect + connect logic)
|
|
142
|
-
│ ├── base.py # Abstract AgentConnector, DetectionResult, ConnectionResult
|
|
143
|
-
│ ├── registry.py # AgentName -> connector factory
|
|
144
|
-
│ ├── claude.py # Claude Code connector
|
|
145
|
-
│ ├── cursor.py # Cursor IDE connector
|
|
146
|
-
│ ├── copilot.py # GitHub Copilot connector
|
|
147
|
-
│ ├── vscode.py # VS Code connector
|
|
148
|
-
│ ├── codex.py # OpenAI Codex connector
|
|
149
|
-
│ ├── hermes.py # Hermes connector (native plugin system)
|
|
150
|
-
│ ├── openclaw.py # OpenClaw connector
|
|
151
|
-
│ └── shims.py # Template loader for config shims
|
|
152
|
-
├── hermes_plugin/ # Hermes native plugin (copied to ~/.hermes/plugins/)
|
|
153
|
-
│ ├── __init__.py # register(ctx) entry point
|
|
154
|
-
│ ├── schemas.py # Tool schemas in Hermes format
|
|
155
|
-
│ ├── handlers.py # Tool handlers wrapping PlatformClient
|
|
156
|
-
│ ├── plugin.yaml # Hermes plugin manifest
|
|
157
|
-
│ └── skills/agentnet/SKILL.md
|
|
158
|
-
├── commands/ # Marketplace subcommands (JSON output)
|
|
159
|
-
│ ├── discover.py # discover, agents
|
|
160
|
-
│ ├── agent.py # agent, hire
|
|
161
|
-
│ ├── wallet.py # wallet balance/history/topup
|
|
162
|
-
│ └── session.py # session continue/settle
|
|
163
|
-
├── mcp/ # MCP JSON-RPC server
|
|
164
|
-
│ ├── server.py # Tool definitions, request routing, stdio transport
|
|
165
|
-
│ └── tools.py # Tool handler implementations
|
|
166
|
-
├── platform/ # Platform API client
|
|
167
|
-
│ └── client.py # PlatformClient (httpx REST wrapper)
|
|
168
|
-
└── shims/ # Agent-native config templates
|
|
169
|
-
├── shared/context.md
|
|
170
|
-
├── claude/skill.md
|
|
171
|
-
├── cursor/agent.md, agentnet.mdc
|
|
172
|
-
├── copilot/agentnet.agent.md
|
|
173
|
-
├── codex/skill.md
|
|
174
|
-
├── vscode/instructions.md
|
|
175
|
-
└── 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
|
|
176
165
|
```
|
|
177
166
|
|
|
178
167
|
## How It Works
|