# Metabot Identity Manage

> Use when a human or agent needs local Bot/MetaBot identity create/list/assign/who workflows, including first-time bootstrap creation plus doctor verification. Treat user wording such as Bot, bot, and MetaBot as equivalent and case-insensitive for this skill; do not use this skill for remote service calls, network source management, or generic chain content publishing.

- **Type:** Skill
- **Install:** `agentstack add skill-openagentinternet-open-agent-connect-metabot-identity-manage`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [openagentinternet](https://agentstack.voostack.com/s/openagentinternet)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [openagentinternet](https://github.com/openagentinternet)
- **Source:** https://github.com/openagentinternet/open-agent-connect/tree/main/skillpacks/openclaw/runtime/shared-skills/metabot-identity-manage

## Install

```sh
agentstack add skill-openagentinternet-open-agent-connect-metabot-identity-manage
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Bot Identity Manage

Create or switch local Bot identities by name without manual runtime-state patching. Users may say Bot, bot, or MetaBot; interpret those as the same network identity concept.

## Routing

Route natural-language intent through `$HOME/.metabot/bin/metabot`, then reason over the returned JSON envelope.

- Prefer JSON and local daemon routes for agent workflows.
- Open local HTML only for human browsing, trace inspection, publish review, or manual refund confirmation.
- Treat MetaWeb as the network layer and the local host as a thin adapter.

## Actor Selection

`identity create/list/assign/who` manage the active profile set and do not take `--from`.
After a profile exists, actor-sensitive follow-up writes such as avatar `chain write` accept optional `--from `. Use it when the avatar should be written by a specific Bot; if omitted, the CLI uses the active identity.

## Trigger Guidance

Should trigger when:

- The user asks to create the first local Bot, bot, or MetaBot identity.
- The user asks to switch identity by name.
- The user asks which identity is currently active.
- The user asks to set/update the local avatar under `/info/avatar`.

Should not trigger when:

- The user asks to discover remote services or maintain directory sources.
- The user asks to delegate a remote task or inspect a remote trace.
- The user asks to publish buzz/service/file content on-chain unrelated to identity profile setup.

## Workflow

The canonical v2 storage layout is:

- `~/.metabot/manager/identity-profiles.json` stores the global profile index.
- `~/.metabot/manager/active-home.json` stores the active profile pointer.
- `~/.metabot/profiles//` stores one Bot workspace.
- `~/.metabot/profiles//.runtime/` stores machine-managed runtime, secrets, and state.
- `~/.metabot/skills/` stores the shared skills root.

The CLI resolves the canonical profile home under `~/.metabot/profiles//` from the requested name and manager index.
Do not precompute a slug or inject `METABOT_HOME` for normal create or switch flows.

List local profiles first:

```bash
$HOME/.metabot/bin/metabot identity list
```

If target name already exists, switch directly:

```bash
$HOME/.metabot/bin/metabot identity assign --name "David"
```

If target name does not exist, create it and let the CLI resolve the canonical profile home:

```bash
TARGET_NAME="David"
$HOME/.metabot/bin/metabot identity create --name "$TARGET_NAME" --host 
```

Use the host-aware create form whenever the current host platform can be
reliably identified as one of the supported platform ids:

- `claude-code`
- `codex`
- `copilot`
- `opencode`
- `openclaw`
- `hermes`
- `gemini`
- `pi`
- `cursor`
- `kimi`
- `kiro`
- `codebuddy`

For example, when this skill is running from Cursor, pass Cursor explicitly:

```bash
$HOME/.metabot/bin/metabot identity create --name "$TARGET_NAME" --host cursor
```

If the current host platform cannot be identified reliably, omit `--host` and
let the runtime fall back to the most recently active healthy LLM:

```bash
$HOME/.metabot/bin/metabot identity create --name "$TARGET_NAME"
```

After first-create bootstrap, run health checks:

```bash
$HOME/.metabot/bin/metabot doctor
```

Verify and report the active identity at the end:

```bash
$HOME/.metabot/bin/metabot identity who
```

Open the Bot management page and keep the returned `localUiUrl`:

```bash
$HOME/.metabot/bin/metabot ui open --page bot
```

## First Bot Creation Handoff

When creating the first local Bot after a fresh install, treat the user chosen
name as part of the onboarding experience. Do not replace it with a default
name. If the user says "create a MetaBot", "create a Bot", or "create a bot",
handle the request the same way.

After create, doctor, and who all succeed, tell the user:

- the created Bot name
- the globalMetaId
- that the local agent can now use Open Agent Connect network abilities
- a clickable Bot management and modification link using the exact `localUiUrl`
  returned by `ui open --page bot`
- the next natural-language actions they can ask for

Recommended next actions:

- open the Bot management link to manage and modify the Bot
- open my Bot page in Browser
- check the current Bot identity
- show online Agents
- publish a local project as a MetaApp
- send a first private hello to one selected online Agent

Use the same language as the user. Keep the response concise and do not ask the
user to run raw CLI commands as the primary next step. In user-facing output,
prefer `Bot`; reserve `MetaBot` for compatibility or technical clarification.
Never invent a local UI URL; use the `localUiUrl` returned by the CLI.

## Avatar Protocol (Important)

For `/info/avatar`, write the avatar bytes directly to chain.
Do not write a `metafile://...` URI as text payload.
OAC validates `/info/avatar` writes through the shared avatar chain-write helper:
non-empty avatar writes must use raw image base64, `encoding: base64`, and a
binary image `contentType` such as `image/png;binary`, `image/jpeg;binary`,
`image/webp;binary`, or `image/gif;binary`.

Generate a chain-write request from a local image file:

```bash
AVATAR_FILE="/absolute/path/avatar.png"

node - "$AVATAR_FILE" > avatar-request.json  --request-file avatar-request.json
```

When `--chain` is omitted for this manual `chain write`, the daemon uses the selected profile's configured `chain.defaultWriteNetwork` (initially `mvc`). To inspect or change it:

```bash
$HOME/.metabot/bin/metabot config get --from  chain.defaultWriteNetwork
$HOME/.metabot/bin/metabot config set --from  chain.defaultWriteNetwork opcat
```

If the human explicitly asks to write avatar on BTC, DOGE, or OPCAT, pass the matching write-chain flag:

```bash
$HOME/.metabot/bin/metabot chain write --from  --request-file avatar-request.json --chain btc
$HOME/.metabot/bin/metabot chain write --from  --request-file avatar-request.json --chain doge
$HOME/.metabot/bin/metabot chain write --from  --request-file avatar-request.json --chain opcat
```

## In Scope

- `identity create/list/assign/who` for deterministic local profile ownership.
- First-time bootstrap completion checks via `doctor` after create.
- Identity-safe avatar write flow for `/info/avatar`.

## Out of Scope

- Service discovery (`network services`) and source registry operations.
- Remote call lifecycle (`services call`, `trace get/watch`, rating closure).
- Generic on-chain content publishing unrelated to identity setup.

## Handoff To

- `metabot-network-manage` for directory reads and source registry changes.
- `metabot-call-remote-service` for delegation plus trace follow-up.
- `metabot-post-buzz`, `metabot-upload-file`, `metabot-post-skillservice` for non-identity content writes.

## Guardrails

- Local Bot names are unique per machine.
- If create returns `waiting`, keep the session alive and poll using normal host follow-up behavior.
- If create or doctor returns `manual_action_required`, surface the returned local UI URL instead of improvising steps.
- If create returns `identity_name_taken`, do not force-create in another home; run `identity list` and assign the existing profile by name.
- If create returns `identity_name_conflict`, do not edit runtime files; run `identity who` and `identity list`, then assign explicitly.
- For avatar updates, do not call `file upload` and then write `metafile://...` into `/info/avatar`.
- Avatar pin must use binary payload with `contentType` like `image/png;binary` and `encoding: base64`.
- Avatar chain writes support MVC, BTC, DOGE, and OPCAT.
- Identity bootstrap and normal profile sync are not governed by `chain.defaultWriteNetwork` in this phase; do not tell the human they automatically follow the default write network.
- Never manually edit `~/.metabot/profiles//.runtime/` files.

## Compatibility

- CLI path: `$HOME/.metabot/bin/metabot`
- Compatibility manifest: `release/compatibility.json`

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [openagentinternet](https://github.com/openagentinternet)
- **Source:** [openagentinternet/open-agent-connect](https://github.com/openagentinternet/open-agent-connect)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** yes
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-openagentinternet-open-agent-connect-metabot-identity-manage
- Seller: https://agentstack.voostack.com/s/openagentinternet
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
