Marketplace Landscape

A census of the herdr plugin marketplace as of October 2026: how to measure it, what archetypes exist, who the exemplars are, and what is still unclaimed. Use this page before naming or scoping a new plugin.

The census method

The marketplace is a public GitHub topic plus an auto-generated index. Everything measurable comes from one URL:

curl -s https://assets.herdr.dev/plugins/index.json -o index.json
jq '.repos | length' index.json   # repo count

The index lists each repo (with stars) and its manifests (id, name, path). Snapshot from 2026-10-02: 1,437 repos, 1,481 plugins. The index refreshes about every 30 minutes, so any count is a point-in-time census; re-pull before drawing conclusions or naming anything.

Archetype map

ArchetypeCount (approx)ExemplarsStack
Notifications15+agent-telegram-notify (official), multi-channel webhook-notify, 2-way telegram bridgesNode/bun or Rust + ureq
Naming/renaming6+herdr-automatic-rename (qu8n), pane-topic-sync (danbuhler)bash+jq / bun
Pickers/launchers4collie (AltanS), thin-launcher styleTS/bun
Monitoring/remote3+collie (mobile web UI), usage dashboardsTS/bun, Rust
Usage/cost2herdr-agent-usage (levi-qiao, 146 stars)Rust + rusqlite
Worktrees3layoutBootstrap-style helpersmixed
Session management3review/save toolsmixed
Review flows2herdr-reviewr (persiyanov)Rust
Layouts4dev-layout-bootstrap (official)shell/JSON
File/TUI viewers4herdr-file-viewer (smarzban), zoetrope (furkankly), terminal-browser (zenbu-labs, top-starred)Rust + ratatui

Id conventions

Ids in the index follow two styles:

StyleExampleCollisions in index
Username-prefixeddan.pane-topic-sync, herdr.collie, furkankly.zoetrope, examples.agent-telegram-notify0
Flat genericherdr-agent-usage, herdr-automatic-rename, herdr-file-viewerAll 29 duplicate ids are flat names

The lesson is unambiguous: prefixes are collision-free by construction, generic names collide. Marketplace tolerance for duplicate ids across repos does not save users: installing a colliding id replaces whatever occupied it (see core-runtime-internals.md). The lab convention is peteretelej.<name> (lab-conventions.md).

Name collisions are a separate, softer rule: ids may repeat safely across machines, but two plugins with the same display name confuse marketplace browsing. Grep the index for your display name too.

Distribution patterns observed

PatternWhoNotes
Monorepo, per-subdir manifestsofficial cookbook, zoetrope (herdr-plugin/ subdir)One repo card, N plugins
[[build]] cargo build --releaseagent-usage, most Rust pluginsUsers need a Rust toolchain
Prebuilt-binary fetch-or-buildherdr-file-viewerDownloads a SHA-256-verified release binary; falls back to cargo
Versioned separately from the appzoetropeManifest version tracks the launcher scripts, not the binary
Thin launcher + frozen commandscollieManifest strings never change (ADR 0006)

Unclaimed niches (as of this census)

  • Prompt broadcast to N agents: one prompt fanned out to every agent in a workspace.
  • Command watch: run a shell command on an event and surface output.
  • Daily digest: batched summary of agent activity (one message per day, not per event).
  • Pane logging: capture pane output to files for later analysis.

The notify space is the opposite: crowded, with quality gaps (message quality, per-workspace routing, secret handling) documented in notify-external-services.md.