Repository navigation
Releases
v0.3.2 - A second agent joins the same owner by email
- A second agent of the same owner sets up with the owner's email. The official gateway lets one email register
one owner, so a Muse set up after a Grok Bot stopped atemail_in_use, and the only way round it copied the
owner credential, which administers every bot, to the new machine.setup --email-codenow adds the new bot to
that owner with the same code (Yobiru 0.7.20POST /v1/enroll/join), and the new data home keeps only a
manager credential for its own bot.pair-accept,pair-decline,rename,wake,unpairand recovery use
it unchanged; it cannot reach the owner's other bots.statusshowscredential: "manager"for such a setup.
Existing setups, including those withsetup.owner_home, behave as before. - The skill and README no longer suggest copying an owner directory to another machine (
--owner-homeis for an
owner directory on the same machine). - Update the bundled engine to Yobiru 0.7.20, which knows manager credentials and the join route. The full suite
runs against the pinned 0.7.20 gateway, plus a new join test with email verification on.
v0.3.1 - Hosted wakes and Yobiru 0.7.17 engine
- Add
wake set --url-file F --secret-file F,wake status,wake testandwake clearfor Yobiru 0.7.17
hosted wakes: the gateway calls a routine's webhook when a pairing request or pages arrive, so a hosted agent
such as Grok Bot is woken without a machine running a connector. Registering sends a note telling the agent to
runpair-requestsandinbox(the gateway's own text names no client) and a test wake unless--no-test.
wake statusshows failures, the next allowed wake and a route the gateway turned off. The URL and key are read
from private files and never printed; gateways without hosted wakes are reported plainly. - Update the bundled engine to Yobiru 0.7.17. It opens sealed fields of up to 16 MiB, so a full 8 MiB batch from
Mokutori can be read once the app sends one.
v0.3.0 - Pairing waits for the owner to confirm
- Pairing now waits for the owner. A verified pairing request is recorded, not admitted:
pair-check,pair-requestsandinboxlist it inpair_requests, the agent asks the owner, and
pair-accept PAIRING_IDadmits the device (grantschat,filesand accepts the request).pair-decline PAIRING_IDrejects the request at the gateway, so Mokutori can tell the owner it was declined. - A pairing request counts when it reached the gateway before its code expired, however late the agent
reads it. Before, an agent that checked after the 15 minutes silently dropped a request that had arrived
in time, and Mokutori waited forever. - The skill tells agents to keep checking with a short scheduled task after
pair, and to accept only
after the owner agrees. Pairing records saved by 0.2.x keep their behaviour.
v0.2.5 - Agent names and brand in pairing links
Mokutori can now tell which agent it is paired with.
- Pairing links and QR codes carry the agent brand:
a=grok-botfor--agent grok,a=musefor--agent muse; other agents omit it. Mokutori draws that agent's mark in colour once the pairing is accepted. setup --nameis required: the bot's gateway display name, which Mokutori shows when the owner confirms pairing and in its connected agents list. The skill tells agents to use the name their owner knows them by (for example their role) and to ask when unsure. "Mokutori" is refused.- New
rename --name NEWupdates the bot's display name in place; pairings and pages stay.statusnow reportsnameandagent. - Existing installations: run
status; ifnameis empty or "Mokutori", runrename; ifagentis empty, runsetup --agent AGENTonce (local only, no gateway change). Then generate a fresh pairing code so the link carries the brand.
Validation: 59 tests pass on current Python and Python 3.8 against the pinned public gateway source. The brand mark needs a Mokutori app build after 1.0 (28).
v0.2.4 - Clickable HTTPS pairing links
Mokutori now returns a clickable HTTPS pairing link alongside the QR image, so someone chatting with their personal agent on a phone can tap to connect.
- New
pair_link:https://mokutori.com/pair#v=1&g=...&b=...&k=...&i=...&s=.... All parameters stay in the fragment, outside the HTTP request target. - Existing
pair_urland QR payload remainmokutori://pair?...for installed scanning builds. Both entry points share the same secret, expiry and one-time proof. - The skill must show both the PNG and a clickable link. The owner confirms the receiver once in the app, then the app handshakes. Success is reported only when
pair-check.pairedis nonempty. - Supporting app builds use Universal Links; the website fallback provides installation/app-opening guidance. Native Universal Link launch depends on the app entitlement, signing and deployed domain association.
- The CLI and gateway do not expose trusted real-time personal-agent presence; configured or paired is not online.
- Preserves v0.2.3 external owner-home compatibility, legacy pairing history, saved scans and receipt recovery. The optional Muse MCP bridge remains read/acknowledge only; its host CLI generates pairing links.
Validation: 47 tests passed locally on current Python and Python 3.8, including link encoding, no query secrets, encrypted HTTPS-reference pairing and rejection of QR reuse after the link was consumed. These are synthetic gateway tests, not a physical iOS Universal Link acceptance claim.
v0.2.3 - Restore legacy installation compatibility
Upgrading an older Mokutori installation could lose access to an existing Yobiru owner directory and crash on pairing records that only stored used_by. Version 0.2.3 restores the saved setup.owner_home and keeps legacy pairing history without replaying permission changes or claiming an unfinished pairing succeeded.
- Reuse the original owner credential in place; no credential copies or symlinks.
statusreports the selected owner home. - Preserve receiver identity, devices, received files and acknowledgement state. Do not run
setup --forceor replace the whole state from a backup. - Restore
setup --owner-homefor authorized new receivers under an existing owner. - The
mokutori://pairprotocol is unchanged. A still-valid current QR can be checked after upgrading; generate a fresh one if expired. - Includes the Python 3.8 QR-generator fix from 0.2.2.
Validation: 43 tests passed locally on both the current Python and Python 3.8, including external-owner migration, encrypted pairing/receiving/acknowledgement, malformed legacy records and private regular-file enforcement. This does not confirm any particular cloud Grok installation has upgraded or paired.
Mokutori Personal Agent plugin v0.2.2
Mokutori Personal Agent plugin v0.2.2 includes the Grok Bot/Codex/Claude Code skill and the optional self-hosted Muse MCP bridge.
This release fixes a Python 3.8 import failure in the bundled QR generator. Both Python 3.8 and 3.12 now pass all 29 end-to-end and Muse tests in GitHub Actions.
Pairing uses mokutori://pair and mokutori-pair/1. Upgrade code and reload the skill while preserving the existing receiver data home, bot identity, paired-device records, inbox and unread receipts. Do not rerun setup with --force.
Install and upgrade: https://mokutori.com/en/agents
MIT license; no PyPI dependency required.
Mokutori Personal Agent plugin v0.2.1
The public Personal Agent package now includes the self-hosted Muse MCP bridge alongside the Grok Bot, Codex and Claude Code skill.
- Pair using
mokutori://pairandmokutori-pair/1; the QR generator is bundled. - Use the existing receiver data home when upgrading. Keep bot identity, paired devices, received scans and unread receipts; do not rerun setup with
--force. - Muse can list scans, read page images and acknowledge reviewed batches through an installation-specific MCP endpoint.
- Complete standalone tests pass: 29 checks against an isolated pinned Yobiru gateway, including a CLI-to-MCP round trip.
Source is released under the MIT license. Installation and upgrade guide: https://mokutori.com/en/agents
Mokutori agent plugin v0.2.0
Public Mokutori Personal Agent plugin for Grok Bot, Codex and Claude Code.
Highlights:
- Uses the
mokutori://pairQR protocol andmokutori-pair/1proof. - Bundles the QR generator;
pair --pngworks without a PyPI install. - Keeps receiver credentials, pairing state, inbox files and unread receipts in the existing private data home during upgrades.
- Includes a 16-test isolated end-to-end suite against the pinned Yobiru gateway.