Subcommands
Every subcommand takes an identifier and honours the global flags.
| Command | Args | Purpose |
|---|---|---|
lookup | QUERY | Tiered symbol resolution — see Looking Up Symbols |
package | <pkg>[-ver] | Package metadata (name, version, exposed modules) |
module | <pkg>/<Mod> | Exported symbols with signatures |
symbol | <pkg>/<Mod>/<sym> | Full info: signature, Haddock, source coords |
source | <pkg>/<Mod>/<sym> or <pkg>/<Mod> | Source slice |
versions | <pkg> | Version history on Hackage, plan-pinned marker |
deps | <pkg> [--reverse] [--depth N] | Forward/reverse deps within the plan |
doctor | — | Environment health check |
server | [--port N] [--bind H:P] [--prebuild] | Doc-browser HTTP server |
source resolves a symbol through its component's export lists, so a
re-exported name lands on its declaration rather than on whichever
same-named binding the package happens to enumerate first —
Data.Map.Strict.insertWith used to come back as
Data/IntMap/Internal.hs. A package whose .cabal cannot be read falls
back to a package-wide scan and says so on stderr.
MCP. There is no
hypha mcpsubcommand. The MCP surface is a separate binary,hypha-mcp— see MCP Host Integration.
Each command emits a structured envelope (result: + actions:) in YAML by
default. See Global Flags for --json, --select, and --full.