← 返回 Skills 市场
netanel-abergel

Chat History Local

作者 Netanel Abergel · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
108
总下载
0
收藏
1
当前安装
1
版本数
在 OpenClaw 中安装
/install chat-history-local
功能描述
Search past WhatsApp/chat conversations stored in the audit log PostgreSQL database. Use when the user asks about past conversations, what was discussed, wha...
使用说明 (SKILL.md)

Chat History Search

Search and reference past conversations from the audit log database.

⚠️ Two Databases — Know the Difference

There are TWO PostgreSQL databases on port 15432:

Database Table Purpose Use when
openclaw_audit messages WhatsApp/chat messages — who said what, when, in which chat Searching conversations, finding what someone said, quoting messages
openclaw_audit audit_log LLM API costs — model usage, tokens, cost per call Checking spending, model usage stats, cost analysis

For message search: always use the messages table.

Database Connection

  • Host: 127.0.0.1, Port: 15432, User: postgres, DB: openclaw_audit
  • psql: LC_ALL=C /opt/homebrew/Cellar/postgresql@18/18.2/bin/psql -h 127.0.0.1 -p 15432 -U postgres -d openclaw_audit
  • Important: Must use PG 18 binary and LC_ALL=C prefix

Messages Table Schema

Column Type Description
id bigint Auto-increment PK
ts timestamptz Message timestamp
message_id text WhatsApp message ID (use for reply_to)
chat_id text Chat identifier (+972... for direct, [email protected] for groups)
chat_type text direct / group / device / unknown
chat_name text Group name or chat label
sender_phone text Sender phone number
sender_name text Sender display name / 'assistant' for Nova
body text Message text content
media_type text image/audio/etc or null
is_from_me boolean true = assistant's messages
session_key text OpenClaw session UUID
tokens_in integer Input tokens (assistant msgs only)
tokens_out integer Output tokens (assistant msgs only)
cost_usd numeric Cost of response
model varchar(80) Model used

Indexes

  • Full-text search: idx_messages_body_fts (GIN on to_tsvector('simple', body))
  • By chat + time: idx_messages_chat (chat_id, ts)
  • By sender: idx_messages_sender (sender_phone)
  • By time: idx_messages_ts (ts)
  • Unique message_id: idx_messages_unique_id

How to Run Queries

LC_ALL=C /opt/homebrew/Cellar/postgresql@18/18.2/bin/psql -h 127.0.0.1 -p 15432 -U postgres -d openclaw_audit -c "QUERY"

Always add LIMIT. Start with 20, increase if needed.

Query Patterns

Full-text search (preferred for keyword searches)

SELECT id, ts, chat_name, sender_name, is_from_me, LEFT(body, 200), message_id
FROM messages
WHERE to_tsvector('simple', body) @@ plainto_tsquery('simple', 'search terms')
ORDER BY ts DESC LIMIT 20;

Search by chat

-- Roy's direct messages
SELECT id, ts, LEFT(body, 200) FROM messages 
WHERE chat_id = '+972542440470' AND chat_type = 'direct'
ORDER BY ts DESC LIMIT 20;

-- A specific group
SELECT id, ts, sender_name, LEFT(body, 200) FROM messages 
WHERE chat_id = '[email protected]'
ORDER BY ts DESC LIMIT 20;

Search by date range

SELECT id, ts, chat_name, sender_name, is_from_me, LEFT(body, 200)
FROM messages WHERE ts BETWEEN '2026-02-20' AND '2026-02-21'
ORDER BY ts LIMIT 50;

ILIKE search (for phrases or partial matches)

SELECT id, ts, chat_name, sender_name, is_from_me, LEFT(body, 200)
FROM messages WHERE body ILIKE '%exact phrase%'
ORDER BY ts DESC LIMIT 20;

Get conversation context around a message

SELECT id, ts, chat_name, sender_name, is_from_me, LEFT(body, 300)
FROM messages WHERE id BETWEEN (TARGET_ID - 5) AND (TARGET_ID + 5)
ORDER BY ts;

List all chats

SELECT chat_id, chat_type, chat_name, COUNT(*) as msgs,
  MIN(ts) as first_msg, MAX(ts) as last_msg
FROM messages GROUP BY chat_id, chat_type, chat_name
ORDER BY msgs DESC;

Replying to Past Messages

When you find a message to reference, use message_id:

  • Include [[reply_to:\x3Cmessage_id>]] in your response for a native WhatsApp reply

Known Limitations

  • Messages before Feb 18, 2026 use old ingest format (chat_id from JSONL metadata)
  • Messages from Feb 18+ use ingest-v2 (chat_id from gateway.log correlation)
  • Sub-agent sessions show as unknown-* chat_id (no gateway log match)
  • NO_REPLY / HEARTBEAT_OK messages are filtered out during ingest

Tips

  • is_from_me = true → Nova sent it
  • is_from_me = false → a human sent it
  • For group chats, chat_name has the group name
  • sender_name = 'assistant' → Nova's outbound messages
  • Always respect child safety rules — never reveal info about Ben
安全使用建议
This skill queries a local PostgreSQL audit DB containing sensitive WhatsApp/chat messages. Before installing, confirm you actually want an agent that can run psql on your host and read message rows. Pay attention to these points: - The SKILL.md expects the Postgres 18 psql binary at a specific path but the skill metadata lists no required binaries; verify psql is available at that location or adjust the metadata. - The DB host/port/user are hardcoded (127.0.0.1:15432, user=postgres, db=openclaw_audit). Ensure that access to that DB is intended and that authentication (password/.pgpass/peer auth) is configured safely. - The agent will be able to run arbitrary SELECT queries you or the skill instructs; these will expose private conversations. Only enable the skill if you trust it and want the agent to access those messages. - If you are concerned about autonomous queries, disable autonomous invocation or restrict the skill's usage to interactive/manual runs; consider adding explicit required-binaries and credential metadata so the skill's footprint matches its runtime needs. - If you need higher assurance, ask the publisher for provenance (source/homepage) and for the skill to declare required binaries/credentials explicitly.
能力评估
Purpose & Capability
The SKILL.md clearly describes searching a local PostgreSQL audit DB for WhatsApp/chat messages, which matches the skill name and description. However, the instructions require a specific psql binary path and PostgreSQL 18 (LC_ALL=C /opt/homebrew/.../psql), but the skill metadata declares no required binaries — that's an inconsistency between declared requirements and actual runtime expectations.
Instruction Scope
The instructions are narrowly scoped to constructing and running SQL queries against the local openclaw_audit.messages table, with templates for FTS, chat/date filters, and reply behavior. They do not instruct contacting external endpoints or reading unrelated system files. They do assume the agent will execute psql on the host and will run arbitrary SQL queries against the DB (which has sensitive chat content).
Install Mechanism
There is no install spec (instruction-only), so nothing new is written to disk. This is low-risk from an install perspective. The instruction to use a specific local psql binary is operational guidance, not an installer.
Credentials
The skill declares no environment variables or credentials, yet the SKILL.md hardcodes DB connection parameters (127.0.0.1:15432, user 'postgres', DB 'openclaw_audit') and expects password-less or local-auth PostgreSQL access. That implicit credential/access assumption should be explicit; reading the messages table gives access to sensitive personal conversations, so the privilege implied is significant even if no env vars are listed.
Persistence & Privilege
The skill does not request always: true and has no install step that persists on disk. It would be invoked at runtime and may run psql commands; autonomous invocation is allowed by default (not unusual) but combined with DB access this increases potential impact.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install chat-history-local
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /chat-history-local 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
- Initial release of chat-history skill. - Enables searching and referencing past WhatsApp/chat conversations stored in the audit log PostgreSQL database. - Clearly documents table schemas, index usage, and query examples for common message search scenarios. - Explains key differences between the messages and audit_log tables. - Provides instructions for replying to and quoting past messages using message_id. - Includes usage tips and known limitations for accurate search and reply functionality.
元数据
Slug chat-history-local
版本 1.0.0
许可证 MIT-0
累计安装 1
当前安装数 1
历史版本数 1
常见问题

Chat History Local 是什么?

Search past WhatsApp/chat conversations stored in the audit log PostgreSQL database. Use when the user asks about past conversations, what was discussed, wha... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 108 次。

如何安装 Chat History Local?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install chat-history-local」即可一键安装,无需额外配置。

Chat History Local 是免费的吗?

是的,Chat History Local 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Chat History Local 支持哪些平台?

Chat History Local 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Chat History Local?

由 Netanel Abergel(@netanel-abergel)开发并维护,当前版本 v1.0.0。

💬 留言讨论