ClawKit Logo
ClawKitReliability Toolkit
Back to Registry
Official Verified

openclaw-spirits

Companion spirit system for OpenClaw agents. Every user gets a unique spirit creature — deterministically generated from their identity (24 species, 5 rarities from Common to Mythic 2%). Spirits have personality, elemental affinity, and evolve with interactions. Features: deterministic generation (same user always gets same spirit), rarity system, personality traits, interaction tracking, visual generation prompts. Use when: spirit, companion, pet, 灵兽, summon, familiar, creature, virtual pet, agent companion, gamification, engagement.

skill-install — Terminal

Install via CLI (Recommended)

clawhub install openclaw/skills/skills/ahaaiclub/openclaw-spirits
Or

OpenClaw Spirits

⚡ First-Time Setup (IMPORTANT)

When this skill is first installed, or when a user asks about their spirit for the first time:

  1. Run node {baseDir}/scripts/generate.js "<userId>" to get the spirit's bones
    • Use the user's unique ID (Feishu open_id, Telegram ID, Discord ID, etc.)
    • If no ID available, use their name or username as seed
  2. Generate a soul (name + personality) using the prompt from node {baseDir}/scripts/soul.js prompt '<bones-json>'
    • Call LLM with that prompt to get {"name":"...","personality":"..."}
  3. Save: node {baseDir}/scripts/soul.js save '<full-companion-json>'
  4. Display the FULL spirit card (see format below)

You MUST display the complete card on first summon. Do not skip any section.

Commands

CommandWhat it does
spirit or spirit showDisplay your spirit card
spirit summonFirst-time summoning (with hatching animation)
spirit statsDetailed stats panel
spirit talk <message>Talk to your spirit (respond in its personality)

Shortcut: User can also just call the spirit by name (e.g. "Rune", "Rune 你觉得呢") or say "灵兽" — the agent should recognize this and let the spirit respond. No command prefix needed. | spirit rename <name> | Rename your spirit |

Complete Spirit Card Format

You MUST output ALL of the following when showing a spirit. No skipping, no summarizing.

Chinese (for Feishu / Chinese users)

🥚 灵兽降世!

[ASCII sprite here — from: node {baseDir}/scripts/render.js '<bones-json>' 0]

[emoji] [Name] — [中文名] [English name]  [rarity dots] [中文稀有度] [EN rarity]

"[personality description]"

┌──────────────────────────────┐
│ 直觉 INTUITION   [bar]  [n] │
│ 韧性 GRIT        [bar]  [n] │
│ 灵动 SPARK       [bar]  [n] │
│ 沉稳 ANCHOR      [bar]  [n] │
│ 锋芒 EDGE        [bar]  [n] │
└──────────────────────────────┘

[If shiny: ✨ 闪光!]

🔮 灵兽与主人的灵魂绑定,不可选择,不可交易。

English (for Telegram / Discord / English users)

🥚 A Spirit emerges!

[ASCII sprite]

[emoji] [Name] — [English name]  [rarity dots] [EN rarity]

"[personality description]"

┌──────────────────────────────┐
│ INTUITION      [bar]  [n]    │
│ GRIT           [bar]  [n]    │
│ SPARK          [bar]  [n]    │
│ ANCHOR         [bar]  [n]    │
│ EDGE           [bar]  [n]    │
└──────────────────────────────┘

[If shiny: ✨ Shiny!]

🔮 Spirits are soul-bound. No choosing. No trading.

Stat bar format: Use █ for filled and ░ for empty, 10 chars total. Example: ████████░░ for 82. Calculate: filled = floor(value / 10), empty = 10 - filled.

Or use display.js directly:

node {baseDir}/scripts/display.js {baseDir}/assets/companion.json zh
node {baseDir}/scripts/display.js {baseDir}/assets/companion.json en

Metadata

Author@ahaaiclub
Stars4473
Views0
Updated2026-05-01
View Author Profile
AI Skill Finder

Not sure this is the right skill?

Describe what you want to build — we'll match you to the best skill from 16,000+ options.

Find the right skill
Add to Configuration

Paste this into your clawhub.json to enable this plugin.

{
  "plugins": {
    "official-ahaaiclub-openclaw-spirits": {
      "enabled": true,
      "auto_update": true
    }
  }
}
Safety NoteClawKit audits metadata but not runtime behavior. Use with caution.