Search and explore
Find artifacts across all your sources, see where they come from, and get their IDs.
Start the search server
ipm catalog serve # Typesense in Docker: container ipm-typesense on 127.0.0.1:8108
ipm catalog rebuild # rebuild the catalog and index it for search
ipm catalog sync and ipm catalog rebuild reload the index themselves whenever the server is up, so it stays current; run ipm catalog rebuild after ipm marketplace stats to refresh the stars. Loading rebuilds the index from the catalog in a few seconds. ipm catalog serve --stop stops the server and keeps its data.
The first load also has Typesense download its small embedding model, which takes a minute. Embeddings are computed locally; nothing leaves your machine.
Search
ipm search c# testing
ipm search tdd --type skill --repo obra/superpowers --limit 10
ipm search "code review" --type agent --type command
ipm search hooks --tag security
| Flag | Does |
|---|---|
--type T | Only this type: repo, marketplace, plugin, copilot-plugin, skill, agent, command, hook, mcp. Repeatable. |
--repo R | Only artifacts from this repo. Repeatable. |
--tag T | Only artifacts with this tag or GitHub topic. Repeatable. |
--limit N | Results per page (default 20, max 250). |
--page N | Show page N. |
--all | Every result, fetched 250 at a time. |
--keyword | Keyword ranking only, without semantic matching. |
--explain | Add KW (✓ when the keywords matched) and SEM (semantic similarity) columns. |
--ids | Only each hit’s ID, one per line. |
--json | One JSON line per hit, with every field. |
The table fits your terminal. When it is too narrow, DESCRIPTION goes first, then PLUGINS, then REPO (the repo is also in the ID); IDs are never cut. Output piped to a file or another command isn’t cut at all. Set COLUMNS to choose a width yourself.
Search is hybrid: keyword matches are fused with semantic matches. Names count most, then repo names and the names of owning plugins, then descriptions and tags, so cloudflare puts cloudflare/skills’ artifacts first. Results that are otherwise equal go to the repo more other repos use (the ↗ column), then to more stars. Names split on /, - and _, so tdd finds tdd-guard; c# and c++ are searchable as words.
After upgrading ipm, run ipm catalog rebuild once: the index gains the fields this ranking uses.
SCORE shows how each hit ranks against the best hit in the same query (100). It is not comparable between queries. SEM, with --explain, is comparable: it is the semantic similarity between your query and the artifact, from 0 to 1.
In hybrid mode --all returns the keyword matches plus about 100 nearest semantic neighbours; use --keyword --all for exact matches only.
Get IDs
Each hit’s ID is on the line under it, indented under TYPE and never shortened, so you can copy it into ipm show, ipm show tree, ipm show graph or ipm pack add:
$ ipm search "c# testing" --limit 1
SCORE TYPE NAME REPO ★ PLUGINS DESCRIPTION
71 agent csharp-pro wshobson/agents 40.3k jvm-languages Write modern C# c…
agent:wshobson/agents:plugins/jvm-languages/agents/csharp-pro.md
--ids prints only the IDs, one per line, for scripts:
ipm search c# --type skill --ids
ipm show "$(ipm search 'c# testing' --limit 1 --ids)"
Inspect an artifact
ipm show 'skill:obra/superpowers:skills/test-driven-development'
ipm show 'skill:obra/superpowers:skills/test-driven-development' --json
ipm show prints the artifact’s fields, its repo’s GitHub stats, and its neighbours: what contains it (up) and what it contains (down). --json prints the whole catalog record.
See relationships
ipm show tree 'repo:obra/superpowers' # what it contains
ipm show tree 'repo:wshobson/agents' --depth 2 --all # two levels, every child
ipm show tree 'skill:obra/superpowers:skills/test-driven-development' --up # what contains it
ipm show graph 'repo:obra/superpowers' # Mermaid
ipm show graph 'repo:obra/superpowers' --format dot | dot -Tsvg > superpowers.svg
Repos contain marketplaces, marketplaces list plugins, and plugins own skills, agents, commands, hooks and MCP servers. A repo is the root of everything in it, so --up from a skill stops at its repo. Which other repos’ marketplaces list it shows under used by: in ipm show, and under e in the TUI.
show, tree and graph read the catalog directly. They don’t need the search server.