PromptLens 用于扫描本地 AI 代理历史,只提取用户自己撰写的消息,渲染支持中英文的 PNG 词云。
用途:把 Codex、Claude Code、OpenCode、OpenClaw、Hermes Agent 等工具的历史记录汇总成词云,帮助回顾自己常问什么、关注哪些主题。
主要能力:支持多来源扫描,codex 扫描 $CODEX_HOME/sessions、archived_sessions 并回退到 history.jsonl;claude 扫描 $CLAUDE_CONFIG_DIR/history.jsonl 及 projects//.jsonl 中的 CLI 用户消息;opencode 读取 ~/.opencode、~/.config/opencode 或 OPENCODE_DATA_DIR 下的 SQLite opencode.db;openclaw 读取 ~/.openclaw/agents/*/agent/openclaw-agent.sqlite 及旧版 JSONL;hermes 读取 ~/.hermes/state.db;custom 扫描 --path 指定的文件或目录。扫描仅本地进行,不调用网络服务。
使用方式:在技能目录运行,例如:
uv run --with jieba --with wordcloud --with matplotlib --with pillow
scripts/promptlens.py
--sources codex
--days 90
-o outputs/wordcloud.png
--report-json outputs/wordcloud.json
可用 --path 添加任意 JSONL/JSON 文件或目录,用 --project、--exclude-project、--since、--until 过滤项目与时间。默认输出带边框的宣传图,含代理标签、时间范围、消息数与会话数;加 --plain 只渲染词云,--frame-label 可覆盖标签。
加权机制:默认按会话相对、非线性计分,先清理代码块、行内代码、URL/路径、粘贴标记和斜杠命令,再按长度衰减计算权重,在会话内归一化并按用户消息数开方缩放,粘贴较多的消息乘以 0.35,每条消息有固定词预算。
常用选项:--days、--since、--until、--project、--exclude-project、--list-projects、--max-words、--length-scale、--exponent、--paste-penalty、--font、--stopwords-file、--report-json、--verbose、--plain、--frame-label。
限制:仅处理本地历史,来源覆盖与字段解析依赖各工具的数据格式;未提供官方托管服务、价格或平台支持信息。