previous-conversations
SkillAI & modelsUse when the user references a previous conversation, asks you to continue earlier work, or you need to look up what was discussed before. Includes subagent conversations.
Use previous-conversations in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add previous-conversations and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the previous-conversations skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
What this skill tells your AI
The instructions your AI receives, as published by boldsoftware/shelley in skills/builtin/previous-conversations/SKILL.md and read by Ahel’s review.
Shelley stores top-level and subagent conversation history in a SQLite database.
First, locate the database:
DB="${SHELLEY_DB:-$HOME/.config/shelley/shelley.db}"
List recent conversations
sqlite3 "$DB" "SELECT conversation_id, slug, parent_conversation_id, json_extract(conversation_options, '$.kind') AS kind, datetime(created_at, 'localtime') as created, datetime(updated_at, 'localtime') as updated FROM conversations ORDER BY updated_at DESC LIMIT 20;"
Get messages from a conversation
Replace CONVERSATION_ID with the actual ID:
sqlite3 "$DB" "SELECT CASE m.type WHEN 'user' THEN 'User' ELSE 'Agent' END, substr(json_extract(content.value, '$.Text'), 1, 500) FROM messages AS m, json_each(m.llm_data, '$.Content') AS content WHERE m.conversation_id='CONVERSATION_ID' AND m.type IN ('user', 'agent') AND json_extract(content.value, '$.Type') = 2 AND trim(COALESCE(json_extract(content.value, '$.Text'), '')) != '' ORDER BY m.sequence_id, CAST(content.key AS INTEGER);"
Get a conversation's subagents
A subagent ID, such as one shown in a transcribed by subagent marker, is itself a CONVERSATION_ID. Use it directly with the messages query above.
To discover child IDs from a parent, replace PARENT_CONVERSATION_ID below. Shelley links child conversations—including ordinary subagents and specialized workers—through parent_conversation_id; kind and archived help distinguish them.
sqlite3 "$DB" "SELECT conversation_id, slug, json_extract(conversation_options, '$.kind') AS kind, archived, datetime(created_at, 'localtime') as created, datetime(updated_at, 'localtime') as updated FROM conversations WHERE parent_conversation_id='PARENT_CONVERSATION_ID' ORDER BY created_at;"
Use a returned conversation_id with the messages query above. Repeat the child query with that ID to follow nested subagents.
Search conversations by slug
sqlite3 "$DB" "SELECT conversation_id, slug FROM conversations WHERE slug LIKE '%SEARCH_TERM%';"
Signals
- GitHub stars
- 676
- Forks
- 111
- Last commit
- Oct 2026
Advanced
- Item type
- skill
- Key
previous-conversations- Source
- github.com/boldsoftware/shelley
github.com/boldsoftware/shelley
Related picks
Skill · aiskillstore
The pick for SQLiteskill-creator
Skill · anthropics
More in AI & modelstriage
Skill · mattpocock
More in AI & modelswayfinder
Skill · mattpocock
More in AI & modelsalgorithmic-art
Skill · anthropics
More in AI & modelscode-review-and-quality
Skill · addyosmani
More in AI & models