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

oto init

create a new project (data only, no engine code)

oto init [-h] [--name NAME] [--slug SLUG] [--project PROJECT] [--namespace NAMESPACE]
                [--prefix PREFIX] [--force] [--ontology ONTOLOGY] [--pack PACK] [--repo]
                [--engine ENGINE]

Options

OptionWhat it does
--name NAMEthe project's title, e.g. "Acme Claims"; the slug derives from it
--slug SLUGshort kebab id every generated name derives from (default: from --name)
--project PROJECTtarget folder (default: current directory)
--namespace NAMESPACERDF namespace URI (default: from the slug)
--prefix PREFIXRDF prefix (default: the slug)
--forceoverwrite existing config files
--ontology ONTOLOGYstart from an ontology, or several comma-separated (merged); a name from `oto ontology list`, name@release, or a directory path
--pack PACKstart from a pack: its ontology, with where it came from kept, and its views; a name from `oto pack list` or a directory (inside Claude Code, the installed plugin's root)
--repolay the project out to live in a GitHub repository: workflows for ingest, checks and deploy, a CLAUDE.md, an .mcp.json, and a corpus that is committed
--engine ENGINEgit URL of the engine the repository installs (default: the Oto repository)

Where to use it

You start a project from a catalog ontology. It builds and answers before you add a document.

oto init --name "Meridian Claims" --ontology auto-claims --project claims

writes the vocabulary, its recorded reasoning, one rule and a sample graph under claims/

Two domains overlap in your documents: merge two ontologies.

oto init --name "Report Factory" --ontology software-architecture,organization-process --project factory

one vocabulary composed from both, each class redescribed where they agree

A pack was installed, in Claude Code or with oto pack add.

oto init --name "Meridian Claims EU" --pack meridian-claims --project claims-eu

the project remembers where its ontology came from, so status announces a newer release

The project will live in GitHub, with the pull request as the gate.

oto init --name "Acme Claims" --ontology auto-claims --project claims --repo

adds the ingest, check and deploy workflows, a CLAUDE.md and an .mcp.json; the corpus is committed

As the terminal prints it
usage: oto init [-h] [--name NAME] [--slug SLUG] [--project PROJECT] [--namespace NAMESPACE]
                [--prefix PREFIX] [--force] [--ontology ONTOLOGY] [--pack PACK] [--repo]
                [--engine ENGINE]

options:
  -h, --help            show this help message and exit
  --name NAME           the project's title, e.g. "Acme Claims"; the slug derives from it
  --slug SLUG           short kebab id every generated name derives from (default: from --name)
  --project PROJECT     target folder (default: current directory)
  --namespace NAMESPACE
                        RDF namespace URI (default: from the slug)
  --prefix PREFIX       RDF prefix (default: the slug)
  --force               overwrite existing config files
  --ontology ONTOLOGY   start from an ontology, or several comma-separated (merged); a name from
                        `oto ontology list`, name@release, or a directory path
  --pack PACK           start from a pack: its ontology, with where it came from kept, and its
                        views; a name from `oto pack list` or a directory (inside Claude Code, the
                        installed plugin's root)
  --repo                lay the project out to live in a GitHub repository: workflows for ingest,
                        checks and deploy, a CLAUDE.md, an .mcp.json, and a corpus that is
                        committed
  --engine ENGINE       git URL of the engine the repository installs (default: the Oto
                        repository)