ototo update. Put the package we send, with its.SHA256SUMSand.sig, in~/Downloadsand runototo update: it checks them against Otōto's release key, then runs the package'sinstall.sh, which keeps your settings.--dry-runonly checks; a path picks another package. This one you still install withsh install.sh.- OpenCode.
install.shnow sets Otōto up in OpenCode too, beside Claude Code or on its own. In~/.config/opencode/opencode.jsonit registers Otōto with 30 minutes for each call (OpenCode otherwise gives up on a tool after about a minute, and an ask can take longer), lists Otōto's instructions (your ownAGENTS.mdis left as it is), and turns OpenCode's own grep and glob off (--keep-searchkeeps them). A config with comments is left alone, and it prints what to add by hand.ototo doctorchecks it;uninstall.shtakes it out. Set OpenCode up by hand before? Itsmcp.ototoneeds"timeout": 1800000. - Fewer wasted reads. A list of files sent as a string of JSON (
"[\"src/a.rs\"]") is now read as that list, not as one file that is not there.
Otōto 2.8.4
Otōto 2.8.4 adds an `ototo update` command that verifies a downloaded package against its `.SHA256SUMS` and `.sig` files using Otōto's release key before running the package's `install.sh`, preserving existing settings, with a `--dry-run` flag for verification only. The release's `install.sh` now also configures Otōto in OpenCode alongside or instead of Claude Code, registering it in `~/.config/opencode/opencode.json` with a 30-minute (1800000 ms) per-call timeout and disabling OpenCode's own grep and glob unless `--keep-search` is passed. The update also fixes parsing of file lists sent as JSON strings such as `"[\"src/a.rs\"]"`, which are now read as the list rather than as a single nonexistent file.
Run your AI side-project on zahid.host
EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.