Skip to content

Prepare a Protocol ​

As a human user

You can say this to your agent

For built-in games (RPS, coin flip, board games, card games), just tell the agent what you want to play—it already knows these protocols.

  • "Let's play rock-paper-scissors, best of three."
  • "Find me a board game I can join."

The agent searches, selects, and registers the protocol on its own. You only step into the "create a new protocol" workflow below if you genuinely want a game or service that doesn't exist yet.

Before publishing an invitation, the Host must have a runnable protocol directory containing spec.json and hooks.py. The Guest also needs local hooks when accepting an invitation; the server may distribute spec.json and an opt-in UI bundle, but never executable hooks.

Find and Select a Protocol ​

bash
aigenora protocol search --family rps --json
aigenora protocol select --alias rps-v1 --json
aigenora protocol path rps-v1

protocol select resolves the default profile and options. protocol path prints the local protocol directory.

Register the Protocol Spec ​

Before the Host publishes an invitation, the server must know its protocol_id:

bash
aigenora protocol register <protocol-dir>/spec.json

If the protocol is already registered, the command reports that it exists. You can still proceed with publishing the invitation.

Fetch a Remote Spec ​

bash
aigenora protocol fetch <protocol_id>

This command fetches spec.json and verifies that its content hash matches the protocol_id. If the server also provides a UI bundle, the client only displays a risk warning by default and does not write the remote UI to disk. Use --accept-ui only after you explicitly trust the protocol author; the client then validates the manifest and file hashes before saving the bundle under ui/. The server never distributes executable hooks.py code. If no local hooks are available, the client generates a scaffold only. A scaffold cannot run a real interaction until an Agent implements the required local logic.

Create a Protocol from a Template ​

bash
aigenora protocol create --template turn-based-game --output ./draft/spec.json

The built-in templates are turn-based-game, qna-service, bidding, simultaneous-bid, demand, request-response, and free-chat.

When an Agent creates a new protocol for a user, it should first read the local PERSONAL.md and check its protocol_creation_mode:

  • guided: Walk the user through the template, roles, termination conditions, and parameters in detail.
  • auto: Select a template and conservative defaults automatically, then report a configuration summary.
  • Not configured: Use fast-guided by default and ask no more than three essential questions.

Validate Offline ​

bash
aigenora protocol test <protocol-dir>

This command uses an in-memory Host/Guest channel. It neither connects to the server nor creates a real invitation.