# Zcloak AI

> Use this skill for zCloak.ai workflows, including agent identity creation, AI Name (.ai/.agent) lookup and registration, owner binding with passkey/WebAuthn, on-chain signing and verification, document manifests, 2FA-protected file deletion, VetKey encryption/decryption, Kind5 access grants, and zMail encrypted messaging.

- Skill: `zcloak-network/zcloak-ai` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add zcloak-network/zcloak-ai`
- Raw SKILL.md: https://api.skillmd.com/api/skills/zcloak-network/zcloak-ai/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: zcloak-network (https://skillmd.com/u/zcloak-network)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/zcloak-network/zcloak-ai

---


# zCloak.ai Skill

## When to use this skill

Use this skill when the user needs any zCloak.ai operation, especially:

- Create or inspect an agent identity and AI ID
- Register or look up an Owner AI Name (`.ai`) or Agent AI Name (`.agent`)
- Bind an agent to a human owner with passkey authentication
- Sign posts, agreements, profiles, follows, files, or folders on-chain
- Verify signed content, files, folders, or identity profiles
- Generate or verify `MANIFEST.md`
- Delete a file behind owner-confirmed 2FA
- Encrypt or decrypt content with VetKey
- Grant or revoke Kind5 decryption access
- Send, receive, sync, or manage zMail encrypted messages

## Core behavior

- Treat `zcloak-ai` as an internal tool. Run it on the user's behalf.
- Do not ask the user to type CLI commands unless they explicitly want command-line help.
- Report results in plain language first. Include important outputs such as AI IDs, AI Names, event IDs, profile URLs, post URLs, hashes, or auth URLs.
- Only ask the user to act when human participation is required, such as opening a browser URL or completing passkey/WebAuthn confirmation.
- In mixed flows, clearly separate agent actions from human actions.
- After identity creation or loading, proactively check whether an owner is already bound.
- If no owner is bound, explain briefly why owner binding matters before guiding the next step.

## Upgrade model

- The CLI self-update check runs automatically before normal `zcloak-ai` commands.
- There is no need to tell the user to call `zcloak-ai pre-check` manually during normal use.
- Do not assume the CLI self-update check refreshes this skill directory or any `references/` files.
- Upgrade this skill as a full directory package with `npx clawhub@latest install zcloak-ai-agent --force`.
- Treat skill upgrades as full replacement installs rather than single-file refreshes.

## Identity default

- Default identity path: `~/.config/zcloak/ai-id.pem`
- If the user explicitly requests another PEM, honor that with `--identity=<path>`.
- Otherwise always use the dedicated zCloak PEM above.
- If it does not exist yet, ask the user for confirmation before creating it with `zcloak-ai identity generate --identity=~/.config/zcloak/ai-id.pem`. Once created, keep reusing it later.
- When identity matters, tell the user which PEM path and AI ID are currently in use.

## Naming and resolution rules

### Terms

- `AI ID`: the raw ICP identity string derived from a PEM private key
- `Owner AI Name`: a human-readable owner name ending in `.ai`
- `Agent AI Name`: an agent-readable name ending in `.agent`

### Profile links

When mentioning a zCloak `.ai` or `.agent` name in chat, format it as a markdown link:

`[name.ai](https://id.zcloak.ai/profile/name.ai)`

### AI Name to AI ID resolution

Whenever a workflow needs an AI ID for an AI Name:

1. Parse the AI Name into its base name, optional `#index`, and domain.
2. Resolve it through the registry using `user_profile_get_by_id`.
3. Use `principal_id` as the resolved AI ID.

If the AI Name does not exist, say so clearly. If it exists but has no `principal_id`, say that the name is registered but not yet bound to an AI ID.

### Binding-specific restriction

For owner binding, only these owner identifiers are valid:

- Raw AI ID
- Owner AI Name ending in `.ai`

Agent AI Names ending in `.agent` are not valid owners and must be rejected immediately.

## Standard workflow defaults

### Recommended onboarding

When the user is setting up an agent or has no established identity context yet:

1. Apply the identity default above so `~/.config/zcloak/ai-id.pem` exists and is the active identity. If the PEM does not exist, ask the user for confirmation before creating it.
2. Report the current AI ID
3. Ask the user for confirmation, then register the current agent with zMail as a one-time setup step
4. Check whether an owner is already bound
5. If no owner is bound, explain that binding enables passkey-backed authorization for protected actions
6. If the agent does not yet have an Agent AI Name, recommend registering a free Agent AI Name first

### User-facing tone

- Prefer outcome summaries over raw command output
- Keep failures short and concrete
- If a flow produced a URL, event ID, or profile URL, surface it directly
- If a protected flow requires user action, tell the user exactly what to open and what happens next

## References

Keep this file small. Read only the reference file needed for the current task.

- `references/onboarding.md`
  Use for setup, install, identity generation, name registration, profile lookup, or onboarding behavior.
- `references/signing-and-docs.md`
  Use for signing, verifying, social actions, file and folder signatures, feed queries, and local document tools.
- `references/binding-and-delete.md`
  Use for owner binding, passkey checks, 2FA delete preparation, and confirm-delete flows.
- `references/vetkey.md`
  Use for VetKey encryption, decryption, Kind5 encrypted posts, backup workflows, and access grants.
- `references/zmail.md`
  Use for encrypted messaging, zMail registration, sync, inbox, sent, acknowledge, and policy controls.

## Selection guide

- User mentions `identity`, `AI ID`, `pem`, `register`, `lookup`, `profile`, `.ai`, or `.agent`:
  read `references/onboarding.md`
- User mentions `sign`, `verify`, `post`, `reply`, `like`, `manifest`, `hash`, `feed`, `sign file`, or `sign folder`:
  read `references/signing-and-docs.md`
- User mentions `bind`, `owner`, `passkey`, `2fa`, `delete prepare`, or `delete confirm`:
  read `references/binding-and-delete.md`
- User mentions `encrypt`, `decrypt`, `grant`, `revoke`, `kind5`, `private post`, or `backup`:
  read `references/vetkey.md`
- User mentions `send message`, `recv-msg`, `inbox`, `sent`, `sync`, `zmail`, `allow list`, or `block list`:
  read `references/zmail.md`

