搜索

PythonReactSEOPDF
OpenClaw

Identity Resolver

identity resolver

bowen313370 来源安装数☆ 0 仓库 Stars

安装与使用

请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。

SkillHub CLI

skillhub install bowen31337/identity-resolver

打开来源仓库,查看说明和兼容环境后,按来源提供的命令或步骤安装。

将来源链接提供给你的 Agent,让它先读取说明、核对依赖,并向你说明将执行的安装步骤。

查看来源 ↗使用指南

技能说明

identity-resolver

Canonical user identity resolution across messaging channels

Description

Resolves multi-channel user identities (Telegram, WhatsApp, Discord, web, etc.) to canonical user IDs, preventing state fragmentation when users interact via multiple channels.

Problem it solves: Without identity resolution, a user messaging via Telegram and WhatsApp appears as two different users, causing fragmented memory, access control, and per-user state across skills.

Solution: Maps all channel identities to one canonical user ID automatically.

Installation

Prerequisites: Install uv if not already installed:

curl -LsSf https://astral.sh/uv/install.sh | sh

Install the skill:

cd /path/to/openclaw/workspace

# Via ClawHub (recommended)
clawhub install identity-resolver

# Or via Git
git clone https://github.com/clawinfra/identity-resolver skills/identity-resolver

Quick Start

For End Users
# Initialize identity map (auto-detects owner from USER.md)
cd /path/to/workspace
uv run python skills/identity-resolver/scripts/identity_cli.py init

# Verify your identity
uv run python skills/identity-resolver/scripts/identity_cli.py resolve \
  --channel telegram --user-id YOUR_TELEGRAM_ID
# Output: your-canonical-id

# List all registered identities
uv run python skills/identity-resolver/scripts/identity_cli.py list
For Skill Developers

Add to your skill's Python code:

import sys
from pathlib import Path

# Import identity resolver
sys.path.insert(0, str(Path.cwd() / "skills" / "identity-resolver" / "scripts"))
from identity import resolve_canonical_id

# Get canonical user ID from session context
import os
channel = os.getenv("OPENCLAW_CHANNEL")  # e.g., "telegram"
user_id = os.getenv("OPENCLAW_USER_ID")   # e.g., "123456789"

canonical_id = resolve_canonical_id(channel, user_id)
# Use canonical_id for all user-specific operations

# Example: User-specific memory file
memory_file = f"...

来源信息

Source
github
Repository
openclaw/skills
Path
skills/bowen31337/identity-resolver
Version
—
Commit
7102210cdefda5dd200246ce044fb82e1e4f32a8
分类来源
rules
状态
active
可见性
public

这些信息来自收录时的来源分析,可能滞后;使用前请核对最新来源文件。

README

identity-resolver

Solve multi-channel identity fragmentation in OpenClaw

License: MIT Tests

The Problem

Users interact via multiple channels — Telegram, WhatsApp, Discord, web. Without identity resolution, each channel creates a separate user identity, fragmenting state across your skills:

telegram:123456789      → memory tree A
whatsapp:+1234567890    → memory tree B
discord:user#1234        → memory tree C
web:session_abc          → memory tree D

Result: User has 4+ fragmented states instead of one unified identity.

The Solution

identity-resolver maps all channel identities to one canonical user ID:

telegram:123456789  ─┐
whatsapp:+1234567890─┼─→ "alice" (canonical ID)
discord:user#1234    ─┤
web:session_abc      ─┘

Now all channels share one memory tree, one access level, one user state.

Features

✅ Auto-registers owner from workspace USER.md
✅ Thread-safe file operations (fcntl locking)
✅ CLI + Python API — works for users and skill developers
✅ Path traversal protection — secure by design
✅ Zero dependencies — pure Python stdlib
✅ Test coverage — 24 tests, 100% passing

Installation

Prerequisites

Install uv (modern Python package manager):

curl -LsSf https://astral.sh/uv/install.sh | sh
Install the Skill

Option 1: Via ClawHub (recommended)

cd /path/to/openclaw/workspace
clawhub install identity-resolver

Option 2: Via Git

cd /path/to/openclaw/workspace
git clone https://github.com/clawinfra/identity-resolver skills/identity-resolver
cd skills/identity-resolver
uv sync  # Optional: creates .venv for development

Quick Start

Initialize
uv run python skills/identity-resolver/scripts/identity_cli.py init

Auto-detects owner from `USER...

来源内容

SKILL.md
# identity-resolver

**Canonical user identity resolution across messaging channels**

## Description

Resolves multi-channel user identities (Telegram, WhatsApp, Discord, web, etc.) to canonical user IDs, preventing state fragmentation when users interact via multiple channels.

**Problem it solves:** Without identity resolution, a user messaging via Telegram and WhatsApp appears as two different users, causing fragmented memory, access control, and per-user state across skills.

**Solution:** Maps all channel identities to one canonical user ID automatically.

## Installation

**Prerequisites:** Install `uv` if not already installed:
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```

**Install the skill:**
```bash
cd /path/to/openclaw/workspace

# Via ClawHub (recommended)
clawhub install identity-resolver

# Or via Git
git clone https://github.com/clawinfra/identity-resolver skills/identity-resolver
```

## Quick Start

### For End Users

```bash
# Initialize identity map (auto-detects owner from USER.md)
cd /path/to/workspace
uv run python skills/identity-resolver/scripts/identity_cli.py init

# Verify your identity
uv run python skills/identity-resolver/scripts/identity_cli.py resolve \
  --channel telegram --user-id YOUR_TELEGRAM_ID
# Output: your-canonical-id

# List all registered identities
uv run python skills/identity-resolver/scripts/identity_cli.py list
```

### For Skill Developers

Add to your skill's Python code:

```python
import sys
from pathlib import Path

# Import identity resolver
sys.path.insert(0, str(Path.cwd() / "skills" / "identity-resolver" / "scripts"))
from identity import resolve_canonical_id

# Get canonical user ID from session context
import os
channel = os.getenv("OPENCLAW_CHANNEL")  # e.g., "telegram"
user_id = os.getenv("OPENCLAW_USER_ID")   # e.g., "123456789"

canonical_id = resolve_canonical_id(channel, user_id)
# Use canonical_id for all user-specific operations

# Example: User-specific memory file
memory_file = f"...
README
# identity-resolver

**Solve multi-channel identity fragmentation in OpenClaw**

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Tests](https://img.shields.io/badge/tests-24%20passing-success)](tests/)

## The Problem

Users interact via multiple channels — Telegram, WhatsApp, Discord, web. Without identity resolution, each channel creates a separate user identity, fragmenting state across your skills:

```
telegram:123456789      → memory tree A
whatsapp:+1234567890    → memory tree B
discord:user#1234        → memory tree C
web:session_abc          → memory tree D
```

**Result:** User has 4+ fragmented states instead of one unified identity.

## The Solution

**identity-resolver** maps all channel identities to one canonical user ID:

```
telegram:123456789  ─┐
whatsapp:+1234567890─┼─→ "alice" (canonical ID)
discord:user#1234    ─┤
web:session_abc      ─┘
```

Now all channels share one memory tree, one access level, one user state.

## Features

✅ **Auto-registers owner** from workspace USER.md  
✅ **Thread-safe** file operations (fcntl locking)  
✅ **CLI + Python API** — works for users and skill developers  
✅ **Path traversal protection** — secure by design  
✅ **Zero dependencies** — pure Python stdlib  
✅ **Test coverage** — 24 tests, 100% passing

## Installation

### Prerequisites

Install `uv` (modern Python package manager):
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```

### Install the Skill

**Option 1: Via ClawHub** (recommended)
```bash
cd /path/to/openclaw/workspace
clawhub install identity-resolver
```

**Option 2: Via Git**
```bash
cd /path/to/openclaw/workspace
git clone https://github.com/clawinfra/identity-resolver skills/identity-resolver
cd skills/identity-resolver
uv sync  # Optional: creates .venv for development
```

## Quick Start

### Initialize

```bash
uv run python skills/identity-resolver/scripts/identity_cli.py init
```

Auto-detects owner from `USER...

相关技能

OpenClaw

bambu-studio-ai

heyixuan2

Bambu Lab 3D printer control and automation. Activate when user mentions: printer status, 3D printing, slice, analyze model, generate 3D, AMS filament, print monitor, Bambu Lab, or any 3D printing task. Full pi...

OpenClaw

geo-optimization

capt-marbles

Generative Engine Optimization (GEO) for AI search visibility. Optimize content to appear in ChatGPT, Perplexity, Claude, and Google AI Overviews. Use when optimizing websites, pages, or content for LLM discove...

OpenClaw

parakeet-stt

carlulsoe

Local speech-to-text with NVIDIA Parakeet TDT 0.6B v3 (ONNX on CPU). 30x faster than Whisper, 25 languages, auto-detection, OpenAI-compatible API. Use when transcribing audio files, converting speech to text, o...

OpenClaw

feishu-process-feedback

carlzhao007

飞书消息自动处理与进度反馈技能。安装后后台运行,监听飞书任务消息并自动创建独立进程处理。 在处理前后发送实时进度反馈(任务确认、进度百分比、完成通知)。 支持任务类型识别、智能解析、错误重试、并发控制、状态持久化...