OTO
reference · oto pack --help at v0.6.1

oto pack

the full extension a person installs into Claude Code: an ontology, its skills and its views

oto pack [-h] [--ontology ONTOLOGY] [--domain DOMAIN] [--summary SUMMARY] [--view VIEW]
                [--maintainer MAINTAINER] [--to TO] [--from FROM_NAME] [--note NOTE] [--ref REF]
                [--path PATH] [--registry-name REGISTRY_NAME] [--engine ENGINE] [--force]
                [{new,check,refresh,list,show,add,update,publish}] [which ...]

Verbs

  • new <name> --ontology <name> scaffolds one
  • check [<dir>] validates it
  • refresh [<dir>] re-embeds the ontology at its current release
  • list (default) shows every pack
  • show <name> prints one
  • add <name|name@release|url> fetches one
  • update re-fetches newer releases
  • publish --to <registry> releases one

which new: the pack's name; check and refresh: a directory (default .); show: a name or directory; add: a name, name@release or git URL; update: a name

Options

OptionWhat it does
--ontology ONTOLOGYfor new: the ontology to embed, a name on this machine, name@release, or a directory
--domain DOMAINfor new: the category the pack belongs to, one lowercase slug (default: the ontology's)
--summary SUMMARYfor new and publish: one line saying what the pack is for
--view VIEWfor new: a view directory to ship (repeatable)
--maintainer MAINTAINERfor new: who maintains it, named in the plugin manifest
--to TOfor new: the directory to write under (default: ~/.oto/packs); for publish: the registry's git URL
--from FROM_NAMEfor publish: the pack on this machine to publish (default: the current directory)
--note NOTEfor publish: the changelog entry for this release
--ref REFfor add <url> and publish: a branch or tag
--path PATHfor add <url>: the pack's directory inside the repository
--registry-name REGISTRY_NAMEfor publish into an empty repository: the registry's name
--engine ENGINEfor publish: the engine repository the registry's check workflow installs
--forcefor new and add: replace an existing pack of that name

Where to use it

Which packs exist, here and in the registries?

oto pack list
oto pack show software-architecture

every pack with its domain and release; one pack in full

Wrap an ontology, with skills and views, for the next team.

oto pack new meridian-claims --ontology meridian-claims --summary "Claims handling for a motor insurer" --maintainer "Claims operations"

scaffolds manifest.json, the plugin manifest, the embedded ontology and a start skill under ~/.oto/packs

Before publishing, and in CI.

oto pack check ~/.oto/packs/meridian-claims

validates the manifest, the embedded ontology, the skills and the views

The ontology it embeds has a newer release.

oto pack refresh ~/.oto/packs/meridian-claims

re-embeds the ontology at its current release

Fetch one from a registry, or pin a release.

oto pack add meridian-claims
oto pack add meridian-claims@1

under ~/.oto/packs, with the registry, source and commit recorded

Release it.

oto pack publish --to https://github.com/<org>/oto-registry --note "first cut"

tags meridian-claims--v1.0.0 and lists it in the registry's marketplace

As the terminal prints it
usage: oto pack [-h] [--ontology ONTOLOGY] [--domain DOMAIN] [--summary SUMMARY] [--view VIEW]
                [--maintainer MAINTAINER] [--to TO] [--from FROM_NAME] [--note NOTE] [--ref REF]
                [--path PATH] [--registry-name REGISTRY_NAME] [--engine ENGINE] [--force]
                [{new,check,refresh,list,show,add,update,publish}] [which ...]

positional arguments:
  {new,check,refresh,list,show,add,update,publish}
                        new <name> --ontology <name> scaffolds one; check [<dir>] validates it;
                        refresh [<dir>] re-embeds the ontology at its current release; list
                        (default) shows every pack; show <name> prints one; add
                        <name|name@release|url> fetches one; update re-fetches newer releases;
                        publish --to <registry> releases one
  which                 new: the pack's name; check and refresh: a directory (default .); show: a
                        name or directory; add: a name, name@release or git URL; update: a name

options:
  -h, --help            show this help message and exit
  --ontology ONTOLOGY   for new: the ontology to embed, a name on this machine, name@release, or a
                        directory
  --domain DOMAIN       for new: the category the pack belongs to, one lowercase slug (default:
                        the ontology's)
  --summary SUMMARY     for new and publish: one line saying what the pack is for
  --view VIEW           for new: a view directory to ship (repeatable)
  --maintainer MAINTAINER
                        for new: who maintains it, named in the plugin manifest
  --to TO               for new: the directory to write under (default: ~/.oto/packs); for
                        publish: the registry's git URL
  --from FROM_NAME      for publish: the pack on this machine to publish (default: the current
                        directory)
  --note NOTE           for publish: the changelog entry for this release
  --ref REF             for add <url> and publish: a branch or tag
  --path PATH           for add <url>: the pack's directory inside the repository
  --registry-name REGISTRY_NAME
                        for publish into an empty repository: the registry's name
  --engine ENGINE       for publish: the engine repository the registry's check workflow installs
  --force               for new and add: replace an existing pack of that name