New to Claude Skills? Learn how to install them →

daymade on GitHub

Local Conversation History

Free

Effortlessly list recent local AI conversations.

Get this skill

Free · Opens the source repo

What Local Conversation History does

The Local Conversation History skill provides a straightforward way to access and list recent conversations from Claude Code and OpenAI Codex within a specified workspace. By executing a single command, users can generate a comprehensive view of their local chat history without the need for complex scripts or manual searches. The skill automatically combines data from active configuration homes and long-term archives, ensuring that users have a complete picture of their interactions. It filters out duplicate session IDs and organizes the output based on internal timestamps, providing a clear and chronological view of past conversations.

This skill is particularly useful for developers and designers who frequently engage with AI models and need to keep track of their dialogue history for reference or analysis. The output can be formatted in either Markdown or JSON, making it easy to integrate into documentation or further processing. Users can customize their queries by specifying parameters such as conversation date ranges, source providers, and whether to include archived threads, allowing for tailored results that meet specific needs.

While the skill excels at listing and summarizing conversation histories, it is important to note that it is not designed for keyword searches or recovering deleted files. For users looking to resume work from a previous session or analyze specific tool calls, other dedicated skills are recommended. Overall, Local Conversation History streamlines the process of accessing AI conversation data, making it an essential tool for those who rely on Claude Code and Codex in their workflows.

When to use it

Use this skill when you need a quick overview of recent conversations with Claude Code or Codex in a specific workspace.

When not to use it

Avoid using this skill for keyword searches, recovering deleted files, or resuming previous sessions; other tools are better suited for those tasks.

What you can build with it

Review Recent AI Interactions

Quickly access a list of your last conversations with AI models to refresh your memory before starting a new task.

Generate Documentation

Use the skill to compile a Markdown report of recent discussions for project documentation or knowledge sharing.

Analyze Conversation Trends

List conversations over a specific date range to identify trends or frequent topics in your AI interactions.

How to install Local Conversation History

View source

1. Install with the skills CLI

npx skills add daymade/claude-code-skills/local-conversation-history --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by daymade

Local Conversation History

List project-scoped local histories without reconstructing ad hoc rg, stat, jq, or SQLite pipelines. The bundled script performs provider and archive discovery, schema introspection, filtering, de-duplication, title extraction, internal-time sorting, and rendering in one process.

Completeness invariant

For a normal Claude Code inventory, the source set is indivisible:

  1. auto-discovered active homes (~/.claude, profile homes, and the current CLAUDE_CONFIG_DIR), and
  2. every archive registered in ~/.claude/history-sources.json.

Do not claim that a Claude conversation is absent unless the output shows that the registered archives were searched. A required archive that is unavailable is a hard configuration error, not permission to return an incomplete result. Explicit --claude-home is a diagnostic scope override and intentionally bypasses the registry; never use it for a completeness claim.

Route the request

  • List/recent/show/browse local conversations: run the bundled script once.
  • Restrict to one provider: pass --source claude or --source codex.
  • Include child workspaces under a directory: pass --recursive.
  • List every workspace: pass --all-projects; omit --cwd.
  • Include archived Codex threads: pass --include-archived.
  • Restrict by conversation date: pass --from-date and/or --to-date.
  • Include internal agents or obvious smoke prompts only when explicitly asked: pass --include-subagents or --include-automated.
  • Search inside full transcripts, recover deleted files, or analyze tool calls: use the daymade-claude-code:claude-code-history-files-finder skill instead.
  • Reconstruct and continue a Claude Code session with daymade-claude-code:continue-claude-work; use daymade-claude-code:continue-codex-work for a Codex thread.

Run exactly one inventory command

Resolve scripts/list_local_history.py relative to this SKILL.md. Do not search the machine for the script and do not recreate its logic inline.

On macOS or Linux, execute the script directly when its executable bit is available; otherwise use Python 3. On Windows, use py or python:

<skill-dir>/scripts/list_local_history.py --cwd <workspace> --limit 10 --language en
py <skill-dir>/scripts/list_local_history.py --cwd <workspace> --limit 10 --language en

Choose --language zh when the user is speaking Chinese. If the user supplied no path, pass the shell's current working directory explicitly. Use forward slashes in Windows command examples, while allowing the actual --cwd value to use the platform's native path form.

Expected output is already presentation-ready Markdown:

# Local conversation history
Scope: `<workspace>`

## Claude Code — 3 conversations
| Updated | Title | Session ID | Source | Flags |
|---|---|---|---|---|
| 2026-01-15 10:30 +00:00 | Review authentication flow | `019...` | active:main, archive:long-term | — |

Return that output directly, with at most one short observation. Do not run follow-up find, rg, stat, or database calls merely to restate the result.

Preserve the evidence boundary

Treat the command as an inventory, not a transcript export:

  • Keep the script read-only. It never resumes, renames, archives, deletes, or repairs a conversation.
  • Report titles only; do not paste raw JSONL or full prompts unless the user asks for a specific session afterward.
  • Keep every displayed timestamp's explicit timezone offset.
  • For Claude Code, treat the minimum and maximum valid top-level timestamp values across the JSONL as the session range. Never substitute file mtime: copying or migrating an archive changes mtime without changing conversation time.
  • For Codex, prefer the state database's internal created/updated fields. If the database is unavailable, compute the rollout range from internal top-level event timestamps plus session_meta.payload.timestamp; never use rollout mtime or database-file mtime as chronology.
  • A date-only filter means the whole local calendar day. A datetime filter must include Z or an explicit UTC offset. Sessions without internal timestamps are excluded with a visible warning while a date filter is active.
  • Preserve provider labels and session IDs exactly as printed.
  • State warnings from the script instead of silently hiding a missing, unreadable, or unsupported store.
  • Do not claim Claude Desktop native chats are included. The Claude source here is Claude Code history; Codex covers local Codex CLI/Desktop thread stores.

Handle source configuration and failures

The script honors CLAUDE_CONFIG_DIR and CODEX_HOME. Register durable Claude archives once in ~/.claude/history-sources.json; the default command then searches them on every run. Use --history-sources <file> to test another registry. Use --claude-home <dir> or --codex-home <dir> only when the user explicitly requests an exact single-store diagnostic scope.

If no conversations appear, use the diagnostics already printed by the same command. Read references/storage_and_portability.md only when the format or path needs diagnosis; it documents the source registry, inspected stores, internal-time policy, Windows path normalization, and known boundaries.

Maintainer verification

In the source repository, daymade-claude-code/_conversation_core/ is the code SSOT shared by this skill, claude-code-history-files-finder, continue-claude-work, and continue-codex-work. The four skills remain self-contained at install time because sync_core.py copies that package into each scripts/_core/. Never edit a bundled _core copy directly.

After changing shared code, synchronize and verify all four bundles, then run this skill's standard-library regression suite:

uv run python ../sync_core.py sync
uv run python ../sync_core.py check
python -m unittest discover -s tests -p "test_*.py"

The test suite builds isolated Claude and Codex fixtures, including SQLite and raw-JSONL paths, so it never depends on the maintainer's personal conversation content. Development trigger cases live in evals/evals.json.

Frequently asked questions about Local Conversation History

Similar skills