{"slug": "ototo-2026-22", "title": "Otōto 2026.22", "summary": "Otōto 2026.22 adds a `search` setting in `~/.config/ototo/config.toml` that controls how far the tool blocks Claude Code's own search tools (Grep, Glob, and `grep`, `rg`, `find` or `git grep` in Bash), with `off` as the default, `nudge` to allow Claude's search with a note of the equivalent Otōto call, and `on` to leave Claude's tools and Bash alone. The release also makes `--keep-search` persist by writing `search = \"on\"` in Otōto's settings, removes the deny rules earlier releases wrote into Claude Code's `settings.json`, and updates the rmcp MCP library to 3.9.0 for RUSTSEC-2026-0457, 0461 and 0462 and rustix to 1.1.6 for RUSTSEC-2026-0486. Otōto states none of the rmcp vulnerabilities reach it because it serves MCP over stdio only, while they sit in rmcp's OAuth client and HTTP transports.", "body_md": "- **Claude Code's own search is a setting.** Otōto keeps Claude Code to its tools by refusing Claude's own search (its Grep and Glob, and`grep` ,`rg` ,`find` or`git grep` in Bash). How far it goes is now the`search` setting in`~/.config/ototo/config.toml` :`off` as before (the default);`nudge` lets Claude's search run, with a note of the Otōto call that does the same;`on` leaves Claude's tools and Bash alone. It is read on every call, so a session (`OTOTO_SEARCH=on claude` ) or a project (`\"env\": { \"OTOTO_SEARCH\": \"on\" }` in its`.claude/settings.local.json` ) can have its own, and an organisation can enforce one. With search off, the refusal now names the call to make instead (`ototo search` with the same pattern and glob, or`ototo outline` with the same glob), and a`grep` that filters another command's output (`git log | grep fix` ) runs. The update takes out the deny rules earlier releases wrote in Claude Code's`settings.json` ;`ototo doctor` says which level applies and where it is set.\n- **`--keep-search` lasts.** The next`ototo update` set Otōto up again without it, and Claude's own search was off again. It now writes`search = \"on\"` in Otōto's settings, which updates keep. If you installed with`--keep-search` , set`search = \"on\"` once (or run`ototo init --keep-search` ).\n- **Reminders that follow your settings.** Otōto's reminders to Claude (on each prompt, and for each agent it starts) are worked out as they are given, so they follow your settings as they are then;`hide_model_tools` no longer needs`ototo init` run after it is set.\n- **The dashboard names the endpoint.** Its By model card has a row for each endpoint and the model it answered with, so the same model on two servers is no longer counted as one.\n- **Rebuilding a macOS release finds its Xcode.**`dist/reproduce.sh` reads the linker and SDK a package was built with and, where your Mac's Xcode has others, rebuilds with the Command Line Tools or another installed Xcode that has them, and says which.\n- **Security: rmcp and rustix are updated.** rmcp, the MCP library, moves to 3.9.0 for RUSTSEC-2026-0457, 0461 and 0462. None of them reaches Otōto, which serves MCP over stdio only, while they are in rmcp's OAuth client and HTTP transports; a scanner would list them all the same. rustix, a system-call library under the plugin runtime, moves to 1.1.6 for RUSTSEC-2026-0486, an unsound read of extended file attributes.\n- Upgrading from 2026.21.2: `ototo update` .", "url": "https://wpnews.pro/news/ototo-2026-22", "canonical_source": "https://ototo.dev/changelog#v2026.22", "published_at": "2026-11-11 15:01:41+00:00", "updated_at": "2026-11-11 18:22:09.602312+00:00", "lang": "en", "topics": ["ai-tools", "ai-agents", "agent-protocols", "developer-tools"], "entities": ["Otōto", "Claude Code", "Anthropic", "rmcp", "rustix", "RUSTSEC-2026-0457", "RUSTSEC-2026-0486"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/ototo-2026-22", "markdown": "https://wpnews.pro/news/ototo-2026-22.md", "text": "https://wpnews.pro/news/ototo-2026-22.txt", "jsonld": "https://wpnews.pro/news/ototo-2026-22.jsonld"}}