agent-analytics-hermes-plugin

AllStreets/ONEXUS-Agents

Otherhermesby AllStreets

Summary

agent-analytics-hermes-plugin plugin.

Install to Claude Code

hermes plugin install agent-analytics-hermes-plugin

Run in Claude Code. Add the marketplace first with /plugin marketplace add AllStreets/ONEXUS-Agents if you haven't already.

README.md

<div align="center">

<a href="https://onexus-agents.vercel.app"><img src=".github/assets/hero-dark.svg" alt="ONEXUS / Agents — the catalog of the world's most powerful open-source AI agents" width="100%"/></a>

&nbsp;

<a href="https://onexus-agents.vercel.app"><img alt="agents" src="https://img.shields.io/badge/agents-7%2C500%2B-00d4ff?style=for-the-badge&labelColor=07090c"/></a> <a href="https://onexus-agents.vercel.app/runnable"><img alt="runnable" src="https://img.shields.io/badge/runnable_via_mcp-770%2B-00d4ff?style=for-the-badge&labelColor=07090c"/></a> <a href="https://onexus-agents.vercel.app/catalog"><img alt="categories" src="https://img.shields.io/badge/categories-40-00d4ff?style=for-the-badge&labelColor=07090c"/></a> <a href="https://github.com/AllStreets/ONEXUS-Agents/blob/main/LICENSE"><img alt="license" src="https://img.shields.io/badge/license-Apache--2.0-00d4ff?style=for-the-badge&labelColor=07090c"/></a> <br/> <img alt="cadence" src="https://img.shields.io/badge/refresh-13%3A00_UTC_daily_%2B_17%3A00_UTC_sundays-6b7382?style=flat-square&labelColor=07090c"/> <img alt="python" src="https://img.shields.io/badge/python-3.12-6b7382?style=flat-square&labelColor=07090c"/> <img alt="node" src="https://img.shields.io/badge/node-24.x-6b7382?style=flat-square&labelColor=07090c"/> <img alt="astro" src="https://img.shields.io/badge/built_with-astro_4_%2B_tailwind_v4-6b7382?style=flat-square&labelColor=07090c"/>

&nbsp;

<p> <a href="https://onexus-agents.vercel.app"><strong>Live catalog →</strong></a> &nbsp;·&nbsp; <a href="https://onexus-agents.vercel.app/runnable"><strong>Runnable now →</strong></a> &nbsp;·&nbsp; <a href="https://onexus-agents.vercel.app/methodology"><strong>Methodology →</strong></a> &nbsp;·&nbsp; <a href="https://github.com/AllStreets/ONEXUS-Agents/issues/new?template=agent-submission.yml"><strong>Submit an agent →</strong></a> </p>

</div>

---

What this is

ONEXUS-Agents is the public, open-source arm of ONEXUS — the agentic OS kernel.

ONEXUS itself is a closed-loop runtime: Cortex routes intent, Engram remembers, Pulse schedules, Chronicle audits, Aegis enforces. It is the brain.

ONEXUS-Agents is the body's reach. It is the catalog the kernel looks at when it needs an external skill: a coding agent, a browser agent, a legal-research agent, a video-generation pipeline. We crawl GitHub and Hugging Face every night, score every candidate against a transparent composite of popularity, recency, runnability, quality signals, framework presence, and (where one exists) a real benchmark, and publish every kept agent as static JSON with its own URL.

> The catalog is the product. The dashboard is the showcase. The MCP bridge is the on-ramp.

---

How it runs

<img src=".github/assets/how-it-runs-dark.svg" alt="ONEXUS pipeline — nightly discovery + weekly rescan feed an auto-merge PR, Vercel rebuilds, the catalog ships at onexus-agents.vercel.app" width="100%"/>

Every agent in the catalog is a single JSON file under catalog/<category>/<agent-slug>.json. No database. The git history is the audit log.

A subset of catalogued agents are marked runnable: true and have an adapter_ref — that's the MCP wrapper ONEXUS uses to actually invoke them. Discovery is broad; runnable is curated and grows weekly as the Sunday rescan finds new MCP-server-shaped repos.

---

The 40 categories

Every agent gets a page. The top 500 of each category form the featured ranked set — used for homepage spotlights, category leaderboards, and ONEXUS Cortex dispatch. The rest are indexed, searchable, and have their own /catalog/<cat>/<slug> URL.

Thirteen categories anchor on a real, peer-recognised benchmark that contributes 30% of the composite score. The others score on popularity, recency, age, runnability, quality signals, and framework detection.

<table> <tr> <td valign="top" width="50%">

Benchmark-anchored

| | Category | Anchor | |---|---|---| | ◆ | coding | SWE-bench Verified | | ◆ | data-science-ml | MLE-bench | | ◆ | legal-research | LegalBench | | ◆ | browser-automation | WebArena | | ◆ | desktop-os-automation | OSWorld | | ◆ | reasoning-math | MATH | | ◆ | multi-agent-orchestration | GAIA | | ◆ | spreadsheet-excel | SpreadsheetBench | | ◆ | sql-analytics | BIRD-bench | | ◆ | image-generation | GenAI-Bench | | ◆ | video-generation | VBench | | ◆ | search-rag | BEIR | | ◆ | security-pentesting | CyberSecEval |

</td> <td valign="top" width="50%">

Popularity-ranked

web-dev · data-engineering · financial-modeling · customer-support · content-writing · audio-speech · translation · document-processing · email-scheduling · devops-sre · bioinformatics · scientific-research · education-tutoring · healthcare · travel-planning · sales-crm · marketing · social-media · e-commerce · real-estate · cooking · music · game-playing · robotics · knowledge-management · pdf-forms · 3d-cad

</td> </tr> </table>

As new public benchmarks land, they get wired into catalog/_categories.json and the score weights flip on automatically.

---

Catalog file format

{
  "slug": "aider",
  "name": "Aider",
  "tagline": "Pair-programming AI in your terminal.",
  "category": "coding",
  "tags": ["cli", "git-aware", "multi-file"],
  "author": { "type": "org", "handle": "Aider-AI", "url": "https://github.com/Aider-AI" },
  "source": {
    "primary": "github",
    "github": "Aider-AI/aider",
    "huggingface": null,
    "homepage": "https://aider.chat"
  },
  "license": "Apache-2.0",
  "metrics": {
    "stars": 28400, "forks": 3100, "watchers": 280, "open_issues": 412,
    "archived": false, "is_fork": false, "is_template": false,
    "downloads_30d": null,
    "last_commit_at": "2026-04-22T14:01:00Z",
    "first_commit_at": "2023-05-09T00:00:00Z",
    "contributors_count": 87, "releases_total": 142,
    "latest_release_at": "2026-04-20T00:00:00Z",
    "commits_90d": 312, "has_ci": true,
    "readme_length": 18432,
    "frameworks": ["mcp"]
  },
  "benchmarks": [
    { "name": "SWE-bench Verified", "score": 26.3, "as_of": "2026-03-15", "source_url": "..." }
  ],
  "runnable": true,
  "adapter_ref": "adapters/aider/mcp.json",
  "composite_score": 0.812,
  "rank_in_category": 3,
  "discovered_via": "seed",
  "first_seen_at": "2026-01-12T00:00:00Z",
  "last_refreshed_at": "2026-06-07T00:00:00Z",
  "consecutive_refresh_failures": 0
}

---

Submitting an agent

Two paths. Most submitters want the form.

<table> <tr> <td valign="top" width="50%">

✦ Fastest — open an issue

Use the Submit an agent issue template. Fill in source, repo, category, license. A workflow fetches the real GitHub/HF metadata, validates, and opens an auto-merging PR.

No fork. No clone. No JSON.

</td> <td valign="top" width="50%">

✦ Hand-authored PR

For custom entries — multi-source, hand-written adapter, benchmark scores.

1. Fork the repo. 2. Add catalog/<category>/<your-agent>.json. 3. Open a PR using the Agent submission template. 4. CI runs onexus-agents-validate. Auto-merges on green.

</td> </tr> </table>

You do not need to compute composite_score, rank_in_category, or any Tier 2 metrics — the daily and weekly jobs recompute those for everything in the catalog. Hand-authored entries become first-class members of the ranking pool the next day after merge.

---

ONEXUS integration

The catalog ships its own typed Python client and an MCP server wrapper so ONEXUS — and any downstream consumer — reads it without scraping HTML or cloning the repo.

pip install "onexus-agents-pipeline[client]"   # typed Python client (httpx)
pip install "onexus-agents-pipeline[mcp]"      # MCP server exposing the 3 tools below
from pipeline.client import OnexusAgentsClient

c = OnexusAgentsClient.from_url()                       # → onexus-agents.vercel.app
# c = OnexusAgentsClient.from_local("/path/to/ONEXUS-Agents")  # offline / dev
runnable = c.runnable_only()                            # list[Agent]

For wiring the catalog into NEXUS and SMADP specifically, docs/integrate/ ships ready-to-run scripts: smadp.sh installs the client into SMADP's venv and dry-runs a sync into catalog/profiles/_unverified/; nexus.sh installs the client + MCP extra into NEXUS's venv and prints the exact nexus/mcp/tools.py patch.

Three MCP tools expose the catalog inside ONEXUS:

| Tool | What it does | |---|---| | nexus_agents_browse | List agents by category, filter to runnable-only | | nexus_agents_search | Keyword search across names, tags, categories | | nexus_agents_info | Full metadata + MCP adapter descriptor for a specific agent |

When a user asks ONEXUS for help with a task, Cortex looks at the relevant category, picks among runnable: true candidates by composite score and trust history, and dispatches via the agent's MCP adapter.

The adapter contract is intentionally thin:

adapters/<agent>/mcp.json    # MCP server descriptor — command, env, capabilities
adapters/<agent>/README.md   # one-line install, one-line invocation

MCP-first, with an escape hatch for agents that don't speak MCP yet (a small Python adapter shim).

Downstream consumers, elevated

Both consumers of this catalog shipped v2 elevations: SMADP — The Proving Ground gained adversarial sandbox grading with property-bounded severities, deterministic N-agent chain composition, capability-drift tracking, and an MCP recording proxy that turns a catalog agent's observed runtime behavior into a behavior-observed safety profile — the first path past docs-only for closed-source agents. NEXUS — The Missing Minds gained a threat radar, a temporal knowledge graph, agent-to-agent negotiation, and workspace-scoped federation. This catalog remains the single source both read from.

---

Methodology

The composite score is fully public. Every weight is in pipeline/ranking.py.

Score composition

<table> <tr> <td valign="top" width="50%">

With benchmark anchor

benchmark   ████████████████████ 30%
quality     ██████████           15%
stars       ██████████           15%
recency     ████████             13%
downloads   ██████               10%
forks       █████                 7%
runnable    ███                   5%
age         ███                   5%

</td> <td valign="top" width="50%">

Without benchmark anchor

quality     ████████████████     23%
stars       █████████████████    22%
recency     ████████████████     20%
downloads   ████████████         15%
forks       ██████████           10%
runnable    █████                 5%
age         █████                 5%

</td> </tr> </table>

Then multiplicative penalties apply on top: archived × 0.5, is_template × 0.8. An archived 5,000-star repo will always rank below a live 1,000-star competitor on otherwise-equal signals.

Quality sub-score (0–1)

Combines: archived flag, is_fork / is_template flags, semantic identity (HF library_name / pipeline_tag presence), open-issue activity, watcher count, and framework detection — langchain, llamaindex, crewai, autogen, smolagents, dspy, openai-agents-sdk, anthropic-sdk, mcp, transformers, gradio — detected from tags, tagline, and README during the weekly rescan.

Hygiene

  • Entries ranked past the featured cap (500) that still pass the quality threshold (≥ 0.20 composite) live alongside the featured set — every agent gets a page.
  • Below threshold → logged in catalog/_dropped/<date>.json, fully auditable.
  • Stale-entry cleanup: entries that fail to refresh for 28 consecutive nightlies (≈4 weeks of 404 / archived / rate-limited) drop automatically. A transient outage never removes anything; sustained absence does.

---

Layout

.
├── catalog/                  per-category JSON files (the catalog itself)
│   ├── <cat>/                every kept agent — featured + long tail, flat
│   ├── _dropped/             audit log of removed slugs per date
│   └── _categories.json      category definitions + benchmark anchors
│
├── adapters/                 MCP wrappers for runnable agents
├── reports/                  daily quality summaries (one MD per day)
│
├── pipeline/                 ingestion · scoring · reporting · client · MCP
│   ├── crawlers/             GitHub + Hugging Face fetchers
│   ├── benchmarks/           benchmark scrapers
│   ├── seeds/                hand-curated YAML seeds per category
│   ├── validator/            schema + submission validation
│   ├── budget.py             per-run API budget cap (free-tier safe)
│   ├── classifier.py         keyword + OpenAI gpt-5.4-mini category classifier
│   ├── frameworks.py         Tier 3 framework detection
│   ├── ranking.py            composite score + quality sub-score
│   ├── report.py             daily quality summary
│   ├── client.py             typed Python client (HTTP + local)
│   ├── mcp_server.py         MCP server exposing the 3 ONEXUS tools
│   ├── smadp_sync.py         catalog → SMADP profile sync helper
│   ├── nightly.py            13:00 UTC entry point
│   └── weekly.py             17:00 UTC Sunday entry point
│
├── site/                     Astro 4 + Tailwind v4 dashboard
├── .github/                  workflows · issue/PR templates · README assets
└── docs/
    ├── integrate/            ready-to-run NEXUS + SMADP wiring scripts
    └── …                     design specs + migration notes

---

Local development

# Pipeline
uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"
onexus-agents-validate catalog/coding/aider.json
onexus-agents-nightly --dry-run
onexus-agents-weekly --dry-run

# Site
cd site && pnpm install && pnpm dev

---

Pipeline ops

The system runs unattended end-to-end.

| Job | Cadence | What it does | |---|---|---| | nightly | 13:00 UTC daily | discover + classify + score + report + auto-merge PR | | weekly | 17:00 UTC Sundays | runnable rescan + Tier 2 enrichment + framework README pass + auto-merge PR | | submission | on issue label | parse form → fetch metadata → validate → auto-merge PR |

Free-tier safe. Hard per-run API budget cap (12,000 GH calls default; 30,000 with a GH_PAT secret; 5,000 HF; bounded OpenAI call budget). If anything fails — workflow timeout, conflict, OpenAI billing, budget exhaustion — a bot-failure GitHub issue auto-opens with the run URL, conclusion, and likely-culprit checklist.

Race-condition guard. Both workflows git fetch origin main && git rebase before pushing the bot branch, so the nightly + weekly can run concurrently without either silently losing work.

Merge-verify. After gh pr merge --auto, poll PR state for 10 minutes. A CLOSED-without-merge state fails the job and trips the auto-issue — no more silent failures.

---

License

Apache-2.0. Copyright 2026 Connor Evans.

Agent metadata and rankings are publicly redistributable. Each catalogued agent retains its own upstream license — see the license field on every catalog entry. The catalog as a whole is free for commercial and non-commercial use under the Apache 2.0 terms, including the patent grant.

<div align="center">

&nbsp;

<sub> <strong>ONEXUS / Agents</strong> — agentic discovery, ranking, and dispatch infrastructure for the open web.<br/> <a href="https://onexus-agents.vercel.app">onexus-agents.vercel.app</a> · <a href="https://github.com/AllStreets/ONEXUS">parent</a> · <a href="https://github.com/AllStreets/ONEXUS-Agents/issues">issues</a> </sub>

</div>

Related plugins

Browse all →