Otōto 2.9 Otōto released version 2.9, adding a `search` command with path:line hits, globs, whole words and case folding for Claude Code and OpenCode, plus new `read` plugins for maven, spring-config, terraform and kube. The release also introduces a `gitlab` plugin that answers branch merge-request, pipeline-stage and failed-job-log queries and reaches the network only after `ototo plugins grant gitlab` with a token in `[plugin_settings.gitlab]`. Install and update run via `curl -fsSL https://ototo.sh | sh` and `ototo update`, both verifying the release against Otōto's release key before installing. curl -fsSL https://ototo.sh | sh installs the newest release for this machine, and ototo update fetches it from the same channel update url in config.toml points at your own mirror . Both check the release against Otōto's release key before anything is installed; ototo update --check only says whether there is a newer one. A package in ~/Downloads still works as before. search path:line hits, with globs, whole words and case folding; for Claude Code and OpenCode, and as ototo search . No model, so it answers at once. maven : a dependency's effective version and scope, through parents, BOMs and properties ototo read pom.xml spring-core ; - spring-config : a property as each profile sees it, and where each value is set ototo read spring.datasource.url ; - terraform : a block with its variables and locals worked out, per environment ototo read aws db instance.main@prod ; - kube : a Kustomize resource as it builds, and a Helm value with the templates that use it. forge . gitlab plugin answers about the branch's merge request, a pipeline by stage and a failed job's log, cut to what failed, for Claude Code the ototo forge . It reaches the network only once you grant it: ototo plugins grant gitlab , then a token in plugin settings.gitlab or per host, for a self-hosted GitLab . It never sees the token; Otōto adds it. ototo plugins ototo plugins help