with one click
previous-conversations
// Use when the user references a previous conversation, asks you to continue earlier work, or you need to look up what was discussed before.
// Use when the user references a previous conversation, asks you to continue earlier work, or you need to look up what was discussed before.
Use when the user wants to customize Shelley by injecting behavior at lifecycle events. It documents Shelley's hooks.
Use when the user asks for a diagram, sketch, flowchart, architecture diagram, sequence diagram, mind map, or other visual explanation. Renders hand-drawn-style diagrams from Excalidraw JSON via the output_iframe tool.
Use to discover external services and APIs available on this exe.dev VM via network-edge-injected credentials and to discover VM metadata like owner email, VM tags, and default port.
Use when the user needs Node.js or npm installed, or is running a JS framework dev server (Next.js, Vite, webpack, etc.) on an exe.dev VM — especially if the browser logs 'WebSocket ... failed', or the dev server complains about cross-origin requests, allowedDevOrigins, or allowedHosts.
Use when a user requests a task to be done later or on a schedule.
| name | previous-conversations |
| description | Use when the user references a previous conversation, asks you to continue earlier work, or you need to look up what was discussed before. |
Shelley stores conversation history in a SQLite database.
First, locate the database:
DB="${SHELLEY_DB:-$HOME/.config/shelley/shelley.db}"
sqlite3 "$DB" "SELECT conversation_id, slug, datetime(created_at, 'localtime') as created, datetime(updated_at, 'localtime') as updated FROM conversations ORDER BY updated_at DESC LIMIT 20;"
Replace CONVERSATION_ID with the actual ID:
sqlite3 "$DB" "SELECT CASE type WHEN 'user' THEN 'User' ELSE 'Agent' END, substr(json_extract(llm_data, '$.Content[0].Text'), 1, 500) FROM messages WHERE conversation_id='CONVERSATION_ID' AND type IN ('user', 'agent') AND json_extract(llm_data, '$.Content[0].Type') = 2 AND json_extract(llm_data, '$.Content[0].Text') != '' ORDER BY sequence_id;"
sqlite3 "$DB" "SELECT conversation_id, slug FROM conversations WHERE slug LIKE '%SEARCH_TERM%';"