View all results

Mod

The ferret mod command groups Registry discovery, project installation, module initialization, and publication.

ferret mod search [query]
ferret mod info <name>
ferret mod install <module>[@version]
ferret mod init [name]
ferret mod publish [--tag <tag>] [--dry-run | --print]

Search and inspect

Search module identities and descriptions:

terminal
ferret mod search sqlite

Show one module’s available versions, selected version, namespace, source, compatibility, and documentation:

terminal
ferret mod info montferret/sqlite

Install

Install the newest compatible release or request an exact version:

terminal
ferret mod install montferret/archiveferret mod install montferret/archive@1.0.0-rc.3
Flag Purpose
-y, --yes Add safe missing Ferret and composition prerequisites without prompting

The command installs into the current Go application, not the Ferret CLI runtime. See Install a module for project discovery, compatibility, composition changes, and validation behavior.

Initialize

Start the guided flow:

terminal
ferret mod init

For automation, provide at least the Registry identity and Go module path:

terminal
ferret mod init acme/kvplugin --go-module github.com/acme/ferret-kvplugin
Flag Purpose
--go-module Go import path written to the generated go.mod
--dir Destination directory; defaults to the module-name leaf
--namespace Runtime namespace; defaults to the module-name leaf

See Develop a module for the generated project and next steps.

Publish

Validate and submit the current tagged release through Barn:

terminal
ferret mod publish
Flag Purpose
--tag Override the default standalone or monorepo release tag
--dry-run Validate and prepare the release without authenticating or submitting to GitHub
--print Print the prepared Barn records as versioned JSON without submitting

Without a non-submitting flag, the command creates or reuses a personal Barn fork and focused publication branch, then opens or reuses a pull request against MontFerret/barn. It reads GH_TOKEN, then GITHUB_TOKEN, and otherwise uses the current gh CLI credential. --dry-run and --print cannot be combined; neither mode resolves a GitHub credential or submits records.

The command does not upload module code. Publication remains tied to the public tag and pinned commit, and an already-published version is a successful no-op. See Publish a module for authentication, validation, and retry behavior.

Next steps