技能详情(站内镜像,无评论)
作者:Terry Ellison @terellison
许可证:MIT-0
MIT-0 ·免费使用、修改和重新分发。无需归因。
版本:v1.0.0
统计:⭐ 0 · 456 · 1 current installs · 1 all-time installs
⭐ 0
安装量(当前) 1
🛡 VirusTotal :可疑 · OpenClaw :良性
Package:imessage-signal-analyzer
安全扫描(ClawHub)
- VirusTotal :可疑
- OpenClaw :良性
OpenClaw 评估
This skill's code and instructions match its stated purpose: it analyzes local iMessage DBs and Signal export JSONs, asks for local read access (Full Disk Access on macOS) but does not request external credentials or appear to exfiltrate data.
目的
Name/description, SKILL.md, and the included Python script all focus on analyzing iMessage (macOS) and Signal exports. The script reads ~/Library/Messages/chat.db and Signal export JSONs and performs local analysis; no unrelated services, binaries, or credentials are requested.
说明范围
Runtime instructions are consistent with the task: grant Full Disk Access to read chat.db if needed, use signal-cli to export Signal data, and run the provided analyze.py script. The instructions and script only read local message/contact files and print analysis; they do not instruct sending data to external endpoints.
安装机制
There is no install spec (instruction-only with a bundled script). The README suggests installing signal-cli via brew/GitHub, which is reasonable for Signal exports. No downloads or archive extraction are performed by the skill itself.
证书
The skill requires no environment variables, credentials, or config paths in metadata. It legitimately may require Full Disk Access on macOS to read the Messages DB and requires a user-run signal-cli export for Signal; these are proportionate to its stated functionality.
持久
The skill is not set to always:true and does not request persistent system changes. However, it reads highly sensitive local data (messages/contacts). Because the agent can invoke skills autonomously by default, consider the privacy implications of allowing autonomous runs that could open the Messages DB if Full Disk Access is granted.
综合结论
This skill appears to do exactly what it claims: local analysis of iMessage and Signal exports. It does require reading sensitive local files (~/Library/Messages/chat.db and your Address Book) and may need Full Disk Access for Python/Terminal on macOS; be careful about granting that. The included script does not make network calls or require external credentials, but review the script yourself if you can and run it locally rather than giving a…
安装(复制给龙虾 AI)
将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。
请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「iMessage & Signal Analyzer」。简介:Analyze iMessage (macOS) and Signal conversation history to reveal relationship…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/terellison/imessage-signal-analyzer/SKILL.md
(来源:yingzhi8.cn 技能库)
SKILL.md
---
name: imessage-signal-analyzer
description: Analyze iMessage (macOS) and Signal conversation history to reveal relationship dynamics — message volume, initiation patterns, silence gaps, tone samples, and recent exchanges. Use when asked to analyze messages, read message history, check conversation patterns, or evaluate a relationship based on text history. Works on macOS (iMessage + Signal), Linux/Windows (Signal only).
---
# iMessage & Signal Analyzer
Analyze iMessage (macOS) and Signal conversations to produce relationship reports.
## Prerequisites
### macOS (iMessage)
iMessage data is stored locally on macOS. Depending on your security settings, you may need to grant Full Disk Access:
**Option 1:** Run the script directly with Python (no special permissions needed if you have read access to `~/Library/Messages/chat.db`)
**Option 2:** If you get a permission error, grant Full Disk Access:
- Open **System Settings → Privacy & Security → Full Disk Access**
- Click **+** and add Python or your terminal app
### Linux / Windows (Signal only)
- iMessage is not available on Linux/Windows
- Signal analysis works via exported JSON
### Signal (All Platforms)
- Install signal-cli: `brew install signal-cli` (macOS) or see https://github.com/AsamK/signal-cli
- Link your device: `signal-cli link` and scan QR code
- Export messages: `signal-cli export --output ~/signal_export.json`
## Usage
### iMessage Analysis
```bash
python3 skills/message-analyzer/scripts/analyze.py imessage <phone_or_handle>
```
**Examples:**
```bash
python3 skills/message-analyzer/scripts/analyze.py imessage "+15551234567"
python3 skills/message-analyzer/scripts/analyze.py imessage "+15551234567" --limit 500
```
### Signal Analysis
First, export your Signal data (one-time):
```bash
signal-cli export --output ~/signal_export.json
```
Then analyze:
```bash
python3 skills/message-analyzer/scripts/analyze.py signal ~/signal_export.json <phone_or_name>
```
**Examples:**
```bash
python3 skills/message-analyzer/scripts/analyze.py signal ~/signal_export.json "+15551234567"
python3 skills/message-analyzer/scripts/analyze.py signal ~/signal_export.json "+15559876543"
```
## Finding a Contact's Number
### iMessage
If you have a name but not a number:
```bash
DB=$(ls ~/Library/Application Support/AddressBook/Sources/*/AddressBook-v22.abcddb 2>/dev/null | head -1)
sqlite3 "$DB" "SELECT ZFIRSTNAME, ZLASTNAME FROM ZABCDRECORD WHERE ZFIRSTNAME LIKE '%Name%';"
```
If AddressBook returns no results, ask the user for the number.
### Signal
Signal exports include phone numbers in the JSON. Search by name or number.
## Key Data Caveats
### iMessage
- **Your sent messages** may only exist from the current device's setup date — older sent messages are lost when switching devices. This skews initiation stats.
- **Binary messages** (attributedBody) are partially decoded — some formatting artifacts like `+@` prefixes may appear in samples; these are normal.
- **Multiple handles**: One contact may have 2–3 duplicate handles (iMessage + SMS + RCS). The script aggregates them automatically.
### Signal
- **Export required**: You must export Signal data first using `signal-cli export`
- **Media**: Exported JSON contains message text; media (images, files) is not included
- **Reactions**: Emoji reactions are included as separate message entries
## Analysis Output
The script produces:
- Total message count (you vs. them)
- Date range
- Messages per year with volume bar
- Conversation initiation breakdown (new convo = gap > 4 hours)
- Notable silences (>30 days)
- Sample messages by year
- Most recent 10 messages
## Interpreting Results
After running the script, synthesize findings conversationally:
- **Volume patterns**: When was the friendship most active? Any notable surges or drops?
- **Initiation skew**: Who reaches out first? (Note: your sent messages may be missing from old periods)
- **Gaps**: Were long silences mutual drift or explainable (device switch, platform change, life event)?
- **Tone/content**: What do the sample messages reveal about the relationship's energy?
- **Context from user**: Always ask the user to fill in context gaps
Present the analysis conversationally, not just as raw numbers. Offer a genuine take on the relationship dynamic.