MCP Server Builder
shareAI-lab/learn-claude-code
Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.
Reads, searches and exports local OpenAI Codex history without continuing work: session inventory, timelines, verbatim user input, indexed search, and rollout identity/fork lineage.
$ npx skills add daymade/claude-code-skills --skill read-codex-history -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install daymade/claude-code-skills read-codex-history --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/daymade/claude-code-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/daymade-claude-code/read-codex-history .claude/skills/read-codex-history && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "read-codex-history" agent skill from https://github.com/daymade/claude-code-skills/tree/main/daymade-claude-code/read-codex-history into .claude/skills/read-codex-history/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "read-codex-history", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/daymade/claude-code-skills/tree/main/daymade-claude-code/read-codex-historyType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add daymade/claude-code-skills --skill read-codex-history -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install daymade/claude-code-skills read-codex-history --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/daymade/claude-code-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/daymade-claude-code/read-codex-history .agents/skills/read-codex-history && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "read-codex-history" agent skill from https://github.com/daymade/claude-code-skills/tree/main/daymade-claude-code/read-codex-history into .agents/skills/read-codex-history/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "read-codex-history", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add daymade/claude-code-skills --skill read-codex-history -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install daymade/claude-code-skills read-codex-history --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/daymade/claude-code-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/daymade-claude-code/read-codex-history .cursor/skills/read-codex-history && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "read-codex-history" agent skill from https://github.com/daymade/claude-code-skills/tree/main/daymade-claude-code/read-codex-history into .cursor/skills/read-codex-history/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "read-codex-history", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/daymade/claude-code-skills.git --path daymade-claude-code/read-codex-history--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add daymade/claude-code-skills --skill read-codex-history -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install daymade/claude-code-skills read-codex-history --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/daymade/claude-code-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/daymade-claude-code/read-codex-history .gemini/skills/read-codex-history && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "read-codex-history" agent skill from https://github.com/daymade/claude-code-skills/tree/main/daymade-claude-code/read-codex-history into .gemini/skills/read-codex-history/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "read-codex-history", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install daymade/claude-code-skills read-codex-historyInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add daymade/claude-code-skills --skill read-codex-history -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/daymade/claude-code-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/daymade-claude-code/read-codex-history .github/skills/read-codex-history && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "read-codex-history" agent skill from https://github.com/daymade/claude-code-skills/tree/main/daymade-claude-code/read-codex-history into .github/skills/read-codex-history/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "read-codex-history", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add daymade/claude-code-skills --skill read-codex-history -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install daymade/claude-code-skills read-codex-history --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/daymade/claude-code-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/daymade-claude-code/read-codex-history .opencode/skills/read-codex-history && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "read-codex-history" agent skill from https://github.com/daymade/claude-code-skills/tree/main/daymade-claude-code/read-codex-history into .opencode/skills/read-codex-history/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "read-codex-history", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
read-codex-historyReads, searches and exports local OpenAI Codex history without continuing work: session inventory, timelines, verbatim user input, indexed search, and rollout identity/fork lineage.
Read Codex History is an agent skill from daymade/claude-code-skills. Reads, searches and exports local OpenAI Codex history without continuing work: session inventory, timelines, verbatim user input, indexed search, and rollout identity/fork lineage. Use when the user asks what they told Codex, wants a Session ID, or evidence of what a run did. Not for Claude Code (use read-claude-code-history); with no platform named, start at local-conversation-history.
Its SKILL.md is about 5.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 34 other files, including scripts and reference files (for example `evals/evals.json`, `references/codex_rollout_format.md` and `references/legacy_multi_provider_inventory.md`).
It works with SQLite. The repository describes itself as: Professional Claude Code skills marketplace featuring production-ready skills for enhanced development workflows. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 91bed2b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 11 files in scripts/ (Python, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
codexsqlite3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Read Codex History loads about 5.3k tokens when it runs, and up to ~20k if it reads all its reference files. Until then it costs about 102 tokens; SKILL.md has 2,455 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from daymade/claude-code-skills at commit 91bed2b, republished under its MIT licence (© daymade). 2,455 words, ~5,255 tokens.
.claude/skills/read-codex-history/SKILL.md (or your agent's skills folder). This skill also uses 30 other files; get the full folder from GitHub.Read Codex evidence only. Do not continue the old task or change its project. If
the user wants execution after the read is complete, pass the verified evidence
to daymade-claude-code:continue-codex-work.
| Surface | Authority | Use |
|---|---|---|
<codex-home>/history.jsonl | What the user submitted, keyed by Session ID and internal epoch timestamp | Exact recent user-input tables |
state_*.sqlite | Inventory metadata such as cwd, title, update time, and rollout path | Fast listing and candidate discovery |
sessions/**/rollout-*.jsonl and archived_sessions/** | Full user/assistant/tool/compaction/fork event stream | Exact-session evidence and keyword verification after indexed or physical preselection |
<codex-home>/logs_*.sqlite (pick the latest by mtime) | Runtime events: per-event ts, level, target, feedback_log_body, process_uuid (embeds the OS pid), optional thread_id | Which live process is failing and how — error-shape bucketing and time distribution |
Do not substitute one surface for another. A prompt-ledger row proves what was
submitted, not what the Agent answered. A state DB path is only a candidate until
the rollout's session_meta.id matches. A rollout can exist without a prompt-ledger
row, and a /fork prompt can exist without a child rollout. A runtime-log thread
is not a resumable session until state_*.sqlite confirms it (see below).
logs_*.sqlite)For "Codex is slow / keeps reconnecting / which of my sessions is erroring", read
this surface before blaming the network or the service. Bucket by error shape and
by hour: errors clustered in time windows mean episodic transport instability; a
steady rate means a standing condition; one process_uuid failing where others
are clean means a per-process cause (for example a stale in-memory token), not an
outage.
-- error shapes in the last 24h
SELECT CASE WHEN feedback_log_body LIKE '%timed out%' THEN 'timeout'
WHEN feedback_log_body LIKE '%could not be refreshed%' THEN 'token-refresh'
WHEN feedback_log_body LIKE '%error sending request%' THEN 'send-failure'
ELSE 'other' END AS shape, COUNT(*)
FROM logs WHERE ts >= strftime('%s','now','-24 hours') AND level IN ('ERROR','WARN')
GROUP BY shape ORDER BY 2 DESC;
-- the same buckets per hour: clustered windows or a steady rate?
SELECT strftime('%m-%d %H', ts, 'unixepoch', 'localtime') AS hr,
SUM(feedback_log_body LIKE '%timed out%') AS timeouts,
SUM(feedback_log_body LIKE '%could not be refreshed%') AS token_refresh
FROM logs WHERE ts >= strftime('%s','now','-72 hours') AND level IN ('ERROR','WARN')
GROUP BY hr ORDER BY hr;
-- which OS processes are failing, and since when
SELECT process_uuid, COUNT(*), datetime(MIN(ts),'unixepoch','localtime') first_seen
FROM logs WHERE feedback_log_body LIKE '%could not be refreshed%'
GROUP BY process_uuid ORDER BY 2 DESC;Two pitfalls measured 2026-10-03:
thread_id found here is an app-server thread handle, not proof of a
resumable rollout. Verify it exists in state_*.sqlite threads.id before
handing out codex resume <id>; a logs-only id fails with "No saved session
found with ID".strftime('%s', '<local wall time>', 'localtime') double-converts and can
push the boundary into the future, returning 0 rows that look like "no data".
Write boundaries as UTC literals (local wall time minus your offset) instead.Read references/storage_and_portability.md for source discovery, timestamps, writer-lock semantics, legacy Kimi compatibility, and storage failures. Read references/codex_rollout_format.md before interpreting fork snapshots, compaction, event streams, or end reasons.
| User wants | Use |
|---|---|
| Recent Codex sessions, titles, IDs, or positive writer-lock evidence | scripts/list_local_history.py --source codex --index-only; an unavailable index leaves inventory unknown |
| Find the Session containing a pasted quote, with a known project, date, or title clue | Locate a quoted exchange below: inventory candidates, then verify the original messages |
| Exact recent user inputs from newest to oldest, grouped by Session | scripts/list_codex_user_inputs.py |
| Whole-conversation original-input counts and quotations, including inherited history | scripts/reconcile_codex_inputs.py --session <ID> |
| Locate one exact rollout by internal identity | scripts/analyze_sessions.py locate-codex <ID> |
| Reconstruct one Session and its declared parent snapshots | scripts/read_codex_session.py --session <ID> |
| Verify a tool return, a comment ID, or external messages already read in a known Session | The Original tool and record evidence command below; briefing previews are not complete tool evidence |
| Find a rollout containing a topic or phrase | read-claude-code-history/scripts/history_index.py recall --provider codex, then verify the exact rollout |
| Which live processes are erroring, error shapes over time, reconnect/timeout history | The Runtime error log section above (logs_*.sqlite bucketing); not the rollout event stream |
| Content remembered but whose wording drifted | The same indexed recall in hybrid mode, if vectors are complete |
| Continue after evidence is complete | Stop reading and invoke daymade-claude-code:continue-codex-work |
The requested output wins over the motivation. “Show my recent original inputs” means a chronological raw-input table, not feedback classification, topic mining, an interactive app, or all historical sessions.
For “how many messages/feedback did I give in this conversation; list them
verbatim,” read references/user_input_reconciliation.md.
Use the reconciler to compose the existing ledger and strict lineage readers.
It preserves occurrences, original strings, and source coordinates. Treat exit 2
or complete: false as an incomplete result: scope_input_count: null is not
zero, and verified inputs are not a complete total. Review unmatched records
against their actual source before supplying any hash-bound injection exclusion.
State the counting unit and cutoff; do not call message counts a count of
distinct criticisms. Keep ordinary recent-input requests on the ledger-only route.
Resolve scripts relative to this SKILL.md. Do not rebuild the join with ad-hoc
SQLite, Node, jq, or recursive grep.
<skill-dir>/scripts/list_local_history.py \
--source codex --index-only --cwd <workspace> --limit 20 --language zhWriter-lock output is positive-only: a held lock proves that exact advisory lock was held during the snapshot. It does not identify the process or prove liveness; an unmarked row does not prove the Session stopped.
For “which Session was this?” with a project, date, or title clue, use the existing inventory first. Select the strongest candidate by title and scope; a title match is only a lead. Do not begin with a full-corpus scan or a cross-provider index when these clues already bound discovery.
<skill-dir>/scripts/list_local_history.py \
--source codex --index-only --cwd <workspace> --include-archived \
--from-date <YYYY-MM-DD> --to-date <YYYY-MM-DD> --limit 20
<skill-dir>/scripts/read_codex_session.py --session <CANDIDATE_ID> --fullOmit unknown date bounds; replace --cwd with --all-projects when the workspace
is unknown. A date describes when the quoted exchange happened, not when the
Session was created. Inventory checks the created/updated interval for overlap,
so an older Session resumed that day remains a candidate. Never restrict rollout
directories to that day's creation folder. An asset's date is not a message date.
Exclude the current Session from candidate selection. Require the reader's
verified identity and the quoted text in the original speaker's timeline entry
(for a pasted assistant reply, ASSISTANT with a record coordinate). A user
quoting that reply, a tool result, or a compacted summary alone does not prove
where it was originally said. For a large briefing, use the private-file path
below and inspect the matching entry with its role and record heading; a Session
lookup does not require reading unrelated history or continuing the old task.
Stop once the quote and identity are verified; return the ID and source coordinate. If a candidate misses, try the remaining plausible candidates. A truncated listing, missing timestamps, an unavailable inventory, or no matching candidate is not absence: refine indexed recall and state its coverage. Do not fall back to raw corpus search.
# Global recent window, then group by Session
<skill-dir>/scripts/list_codex_user_inputs.py --recent 200 --language zh
# Expand exact Sessions already shown, preserving their order
<skill-dir>/scripts/list_codex_user_inputs.py \
--session-id <ID-1> --session-id <ID-2> \
--per-session 100 --language zhMarkdown is the human surface; JSON preserves the stored string value for forensic or machine use. Preserve duplicates, line order, timestamps, wording, and Session boundaries. Do not invent titles or split one Session into semantic categories.
<skill-dir>/scripts/reconcile_codex_inputs.py --session <EXACT_ID> --format jsonUse --through-record for an explicit inclusive cutoff in the selected session,
and --omit-first / --omit-last only for exclusions the user actually requested.
Neither option decides whether a message is an opening instruction or feedback.
Use --format markdown for literal numbered quotations after resolving gaps.
Read the linked reconciliation reference for result fields, reviewed exclusions,
partial results, and deterministic fixture-only validation.
<skill-dir>/scripts/read_codex_session.py --session <SESSION_ID> --fullExpected output: # Codex Session Evidence Briefing, verified selected identity,
root-to-child fork lineage, exact parent byte boundaries, chronological handoff,
compacted context, latest plan, tool calls, files, errors, end reason, and workspace
state. If the state DB points to a rollout with the wrong identity, the reader must
reject it and try the exact session_meta.id locator; never continue from the wrong
file because its title or filename looked close. Codex 0.160 separates a logical
thread from its immutable physical rollouts: the state index selects the current
rollout, and history_base.thread_id references a physical rollout ID. Multiple
segments require a valid indexed selection. Copies of the same physical rollout
must be byte-identical or an append-only superset; divergent copies remain errors.
Inherited prefixes must match both byte and ordinal boundaries. Paginated records
must retain continuous stored ordinals. Missing, malformed, ambiguous, cyclic,
oversized, identity-mismatched, or partial-line history fails visibly.
If the complete briefing is too large for one model context, materialize it once to a private temporary file and record its SHA-256 plus line count before reading. That one immutable file is still the single briefing; “one briefing” does not mean one stdout payload or one monolithic context load. Read bounded, non-overlapping ranges using its existing headings or exact record coordinates, keep coverage against the recorded line count, and report every unread range as a gap. Do not rerun the reader with different truncation and fuse the outputs into a complete-looking chronology.
After selecting a Session by identity or indexed recall, read stored tool results with the bundled reader rather than writing another JSONL parser:
<skill-dir>/scripts/read_codex_session.py --session <ID> --tools --contains '<literal clue>' --format json
<skill-dir>/scripts/read_codex_session.py --session <ID> --record <ORDINAL> --format json--tools without --record expands the complete declared logical history in
root-to-selected order, using exact ancestor prefixes. Its scope is
logical_history; sources names every physical source and cutoff. Each result
retains its source path, physical rollout ID, physical record ordinal, and
logical_record position. A paired_call can point into an earlier segment.
Separate subagent threads and attachment bytes are not expanded.
Repeat --record for several 1-based nonblank-record ordinals in the selected
physical rollout. This selector keeps scope: selected_rollout_only; combining
it with --tools intersects those selected physical records. --contains is a
literal substring filter within the reported scope. Both modes preserve
the original stored record, including every output string and field, with no
content redaction or preview truncation. paired_call locates the preceding call
for a result; inspect both coordinates before attributing an external message.
Role labels do not establish human authorship.
Expected output reports identity, records_examined, matched_records, source
coordinates, and truncated: false. Missing requested ordinals fail visibly.
Zero matches apply only to the reported scope. --full still governs prose
briefing clipping; it does not turn a briefing into complete tool evidence.
The index returns candidates from stored prose. Read the exact rollout to check tool outputs, thinking, compaction, and the speaker of a quoted line.
<read-claude-code-history-dir>/scripts/history_index.py status
<read-claude-code-history-dir>/scripts/history_index.py recall '<keyword>' \
--mode bm25 --provider codex --exclude-session <CURRENT_ID>Start with an exact ID, known date, or indexed content lead. Verify candidate
rollouts by their session_meta.id. A timeout and the old --from-date filter
do not prevent the raw command from reading every rollout; that command now
rejects live sources.
The separate ~/.claude-flow-viewer/search.sqlite FTS index can also locate
candidate sessions. Check its provider coverage and freshness before using it,
then verify each hit with the exact-session reader. A hit is a lead, not evidence.
sqlite3 ~/.claude-flow-viewer/search.sqlite "
SELECT s.source, s.session_id, s.project_encoded, substr(c.text, 1, 600)
FROM search_chunks_fts fts
JOIN search_chunks c ON c.rowid = fts.rowid
JOIN indexed_sessions s ON s.session_id = c.session_id
AND s.source = c.source AND s.project_encoded = c.project_encoded
WHERE fts.search_chunks_fts MATCH '\"keyword-one\" OR \"keyword-two\"'
AND c.kind IN ('prompt','ai-text')
LIMIT 15;"Constraints measured against this index, each of which changes what a zero means:
sqlite3 ~/.claude-flow-viewer/search.sqlite "SELECT * FROM search_meta;" prints last_indexed_at; sessions newer than that timestamp are not in the index at all, so a query cannot see them. Report that bound alongside any coverage claim.search_chunks_fts, never search_chunks directly. A direct query is an unindexed full scan of the ~9GB table — measured 26s against 0.03s for the indexed path.search_embeddings holds 0 rows; the sqlite-vec shard tables exist but were never populated. So this path recovers only what literally occurred in the corpus, never a paraphrase or a synonym. For a paraphrase use the hybrid recall index in read-claude-code-history.OR. An unquoted multi-term query is implicit AND: two terms joined by a bare space match only rows containing both, so a query that should widen the search returns nothing instead. Write "term-a" OR "term-b". NEAR/n slash syntax raises a syntax error; the standard two-operand NEAR(A B, k) form parses without error (it returned 0 rows on one tested query — that was a real no-co-occurrence result, not a syntax failure, so do not read the 0 as "NEAR is broken").unicode61 tokenizer makes a contiguous CJK run one token, so a Chinese phrase matches only when it aligns with a whole run. Measured on 技术选型: phrase query 10 rows against 163 substring occurrences; on 闭门造车: 10 against 790. The decisive proof that a single character is not its own token: 闭 returns 2 rows while 闭门 returns 17 — if 闭 tokenized independently it could not be the smaller set. A longer run in the same family queries far better (不要闭门造车 → 314 rows against 790), so for Chinese search the longest contiguous run you can guess, and note that a short phrase can silently miss ~94% of real occurrences. ASCII and punctuation-delimited terms do not have this problem (technology-selection matched 35 against 34). Never read a zero-row or low-row Chinese query as absence — a miss here is indistinguishable in shape from "we never discussed it", which is the exact failure this path exists to prevent.c.kind to get the user's own words. prompt is the user's input and ai-text the assistant's; thinking, tool-call, and tool-result are also indexed, so an unfiltered query mostly reads tool output back to you.s.source before attributing a hit. The index spans three providers, so a hit found here is not by itself a Codex finding.Before making any behavior claim about a named Session:
session_meta.id, not filename alone.session_meta.id == requested ID.history_base.end_byte_offset; reject missing, ambiguous, cyclic, or mismatched
ancestry rather than reading the parent's current tail. A legacy rollout with no
history_base that inlines its parent's session_meta as the very next record is
instead verified record-for-record against the real parent file before its
derived byte boundary is trusted.This gate is the direct correction for two observed cases: a prompt-ledger Session
whose state DB pointed at another rollout, and a /fork input with no child rollout.
Every answer must state:
“Not found” is scoped to this coverage. Do not call a timeout or incomplete scan a negative result.
codex resume, codex --continue, or a new implementation experiment.The current local-conversation-history is a cross-provider router; it sends a
provider-specific Codex read here and does not replace this Skill's identity,
lineage, or evidence contract. The older combined command contract remains in
references/legacy_multi_provider_inventory.md
so its Kimi branch and historical flags are not silently erased. Provider-specific
Claude requests route to daymade-claude-code:read-claude-code-history.
© daymade, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 30 other files (scripts, references) in daymade-claude-code/read-codex-history of daymade/claude-code-skills.
Open the folder on GitHubat commit 91bed2b
Read Codex History next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Read Codex History this skilldaymade/claude-code-skills | 1.4k | — | ~5.3k | Automated safety check: Pass | MIT | |
| MCP Server BuildershareAI-lab/learn-claude-code | 78k | 5 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Copilot Session Failure Analysisdotnet/maui | 23k | — | ~3.4k | Automated safety check: Pass | MIT | |
| RTK Rust Design Patternsrtk-ai/rtk | 83k | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| OpenWork Desktop CDP Driverdifferent-ai/openwork | 24k | — | ~465 | Automated safety check: Pass | Custom licence | |
| OpenRig Upgrade Proceduremvschwarz/openrig | 5.9k | 1 repos | ~2.9k | Automated safety check: Pass | Apache-2.0 |
shareAI-lab/learn-claude-code
Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.
dotnet/maui
Mines local Copilot CLI session logs for dotnet/maui to rank costly or failing runs, tag recurring failure modes, propose repo edits and emit guard evals.
rtk-ai/rtk
Describes seven Rust design patterns for the RTK CLI filter modules, with when to use each, RTK examples, and notes on when a pattern is overkill.
different-ai/openwork
Drives a running OpenWork desktop window over CDP from the shell to evaluate JS, take screenshots, start sessions and send prompts for hand checks.
mvschwarz/openrig
Walks an agent through upgrading the OpenRig CLI and daemon one observed step at a time, keeping live seats alive and reconciling managed plugin files.
EverMind-AI/EverOS
Walks through adding a new persisted memory kind to EverOS: choose storage among Markdown, SQLite and LanceDB, pick a Markdown strategy, then wire schemas, repos and writers.
daymade/claude-code-skills
This skill should be used when comparing two videos to analyze compression results or quality differences.
daymade/claude-code-skills
Generates professional animated CLI demos as GIFs using VHS terminal recordings.
daymade/claude-code-skills
Converts DOCX/PDF/PPTX and saved HTML/HTM to high-quality Markdown with automatic post-processing.
daymade/claude-code-skills
Generates several distinct, clickable HTML interaction prototypes for one product surface into a Design Board and collects selection/remix feedback before implementation.
daymade/claude-code-skills
Diagnoses and repairs repository setup and guarded Git workflows for Claude Code or Codex — environment repair, startup sync, hook auditing, collaborator handoff.
daymade/claude-code-skills
Pulls Bigdata.com (RavenPack) financial and news data via the official bigdata-client SDK and /v1/ REST endpoints — structured financials, prices, analyst estimates, entity-sentiment series…
Works with
Reads, searches and exports local OpenAI Codex history without continuing work: session inventory, timelines, verbatim user input, indexed search, and rollout identity/fork lineage. Read Codex History is an agent skill from daymade/claude-code-skills. Reads, searches and exports local OpenAI Codex history without continuing work: session inventory, timelines, verbatim user input, indexed search, and rollout identity/fork lineage.
Read Codex History fits situations like: the user asks what they told Codex; wants a Session ID; evidence of what a run did.
Run `npx skills add daymade/claude-code-skills --skill read-codex-history -a claude-code`. Or copy the skill folder (daymade-claude-code/read-codex-history in daymade/claude-code-skills) into .claude/skills/read-codex-history in your project. Claude Code loads it when a task matches its description.
Run `npx skills add daymade/claude-code-skills --skill read-codex-history -a codex`. Or copy the skill folder (daymade-claude-code/read-codex-history in daymade/claude-code-skills) into .agents/skills/read-codex-history in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add daymade/claude-code-skills --skill read-codex-history -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/read-codex-history, .gemini/skills/read-codex-history, .github/skills/read-codex-history and .opencode/skills/read-codex-history in your project.
Going by SKILL.md and its folder, Read Codex History needs Python for the scripts in its folder and the command-line tools its instructions call (codex and sqlite3). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Read Codex History is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.3k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 15k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Read Codex History: MCP Server Builder (shareAI-lab/learn-claude-code, 78k stars), Copilot Session Failure Analysis (dotnet/maui, 23k stars), RTK Rust Design Patterns (rtk-ai/rtk, 83k stars) and OpenWork Desktop CDP Driver (different-ai/openwork, 24k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
daymade (a GitHub user) maintains it in daymade/claude-code-skills, which has 1,444 GitHub stars. The repository holds 103 skills in this directory. The repository was last updated on October 8, 2026.
Source: daymade/claude-code-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.