Chat Learnings Extractor
/install chat-learnings-extractor
Conversation Learnings Extractor
Extract structured learnings (lessons, decisions, patterns, dead ends) from exported AI conversations using either a local Ollama model or any OpenAI-compatible API. This skill is designed to work with exports from OpenAI and Anthropic, and pairs well with the chat-history-importer skill for a complete conversation analysis workflow.
Quick Start
Using Ollama (default)
python3 scripts/extract.py --dir /path/to/exports --limit 3 --dry-run
python3 scripts/extract.py --file single-conversation.json
python3 scripts/extract.py --dir /path/to/exports --since 2026-04-01
Using OpenAI-compatible API (e.g., OpenAI, Anthropic Bedrock, etc.)
export OPENAI_API_KEY=sk-...
export OPENAI_BASE_URL=https://api.openai.com/v1 # optional, defaults to OpenAI
python3 scripts/extract.py --dir /path/to/exports --model gpt-4o-mini
How It Works
- Parse OpenAI/Anthropic JSON exports using bundled parsers (from sibling
chat-history-importerskill) - Deduplicate via
.processed_idsfile (skip already-processed chats) - Summarize conversation to key excerpts (to fit model context)
- Extract structured learnings using your chosen model: lessons, decisions, patterns, dead ends
- Append results to
memory/semantic/learnings-from-exports.md
Integration with chat-history-importer
This skill pairs with chat-history-importer:
- First, run
chat-history-importerto ingest raw conversations into episodic memory (memory/episodic/YYYY-MM-DD.md) - Then, run this skill to extract structured learnings into semantic memory (
memory/semantic/learnings-from-exports.md)
This workflow keeps raw conversation logs separate from actionable insights, enabling better knowledge organization.
Configuration
Using Ollama (Local)
Prerequisites: Ollama running at http://127.0.0.1:11434 (default)
# Use default model (gemma4:26b)
python3 scripts/extract.py --dir /path/to/exports
# Use a different local model
python3 scripts/extract.py --dir /path/to/exports --model llama2
# Custom Ollama endpoint
export OLLAMA_BASE_URL=http://ollama.example.com:11434
python3 scripts/extract.py --dir /path/to/exports
Environment Variables:
OLLAMA_BASE_URL— Ollama API endpoint (default:http://127.0.0.1:11434)
Using OpenAI-compatible API
Any API supporting the OpenAI /chat/completions endpoint (OpenAI, Bedrock, LM Studio, etc.)
export OPENAI_API_KEY=sk-...
export OPENAI_BASE_URL=https://api.openai.com/v1 # optional
python3 scripts/extract.py --dir /path/to/exports --model gpt-4o-mini
Environment Variables:
OPENAI_API_KEY— API key (required to enable this mode; if set, OpenAI mode is used instead of Ollama)OPENAI_BASE_URL— API base URL (default:https://api.openai.com/v1)
Model auto-selection:
- If
OPENAI_API_KEYis set → defaults togpt-4o-mini - If
OPENAI_API_KEYis not set → defaults togemma4:26b(Ollama)
Flags
--dir DIR— Process all JSON files in directory--file FILE— Process single file--limit N— Process only first N conversations (useful for testing or limiting API costs)--since YYYY-MM-DD— Skip conversations before this date--model MODEL— Override default model name--dry-run— Print output without writing to disk or updating dedup state
Output Format
Results are appended to memory/semantic/learnings-from-exports.md with this structure:
## Chat Title (YYYY-MM-DD)
### Lessons Learned
- [bullet points]
### Decisions Made
- [bullet points]
### Patterns Noticed
- [bullet points]
### Dead Ends
- [bullet points]
Each category is optional — if a conversation doesn't have notable insights for a category, it will show "None".
References
references/prompt-template.md— The extraction prompt sent to the modelscripts/extract.py— Main script (reuses parsers from sibling skill)
Implementation Notes
- Tracks processed chat IDs in
.processed_idsto avoid re-processing - Workspace detection: checks
OPENCLAW_WORKSPACEenv var, falls back to~/.openclaw/workspace - Automatically detects OpenAI vs Anthropic export formats
- Truncates long messages for context efficiency
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install chat-learnings-extractor - After installation, invoke the skill by name or use
/chat-learnings-extractor - Provide required inputs per the skill's parameter spec and get structured output
What is Chat Learnings Extractor?
Extract structured learnings (lessons, decisions, patterns, dead ends) from AI conversation exports using a local Ollama model or any OpenAI-compatible API.... It is an AI Agent Skill for Claude Code / OpenClaw, with 126 downloads so far.
How do I install Chat Learnings Extractor?
Run "/install chat-learnings-extractor" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Chat Learnings Extractor free?
Yes, Chat Learnings Extractor is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Chat Learnings Extractor support?
Chat Learnings Extractor is cross-platform and runs anywhere OpenClaw / Claude Code is available (linux, darwin, win32).
Who created Chat Learnings Extractor?
It is built and maintained by Deonte Cooper (@djc00p); the current version is v1.0.3.