本文へ移動
cccskills
無料GitHub で公開

session

Extract conversation turns from AI session history files (.jsonl)

インストール方法を見る

含まれるファイル(4)

  • SKILL.md3.5 KB
  • __init__.py0 B
  • scripts/__init__.py0 B
  • scripts/main.py7.4 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Session Skill

Extracts human-readable conversation turns from AI coding session history files (.jsonl). Supports two formats:

  • Claude Code — the JSONL format written by Anthropic's Claude Code CLI (~/.claude/projects/<hash>/<session-id>.jsonl)
  • Codex / Cursor — the simpler {"role": ..., "content": ...} per-line format used by OpenAI Codex and Cursor IDE sessions

Format is detected automatically from the first parseable line.

What gets extracted

Only substantive conversation turns are kept:

Content typeAction
User text messagesKept if ≥ 3 words
Assistant text responsesKept if ≥ 20 words
Assistant thinking blocksSkipped (internal reasoning, not final output)
Tool use / tool result blocksSkipped (avoids leaking file contents or credentials)
Image / attachment blocksSkipped
Sub-agent scaffolding (isSidechain: true)Skipped (internal sub-agent turns)
Session metadata linesSkipped (permission-mode, file-history-snapshot, system, last-prompt)

The extracted text is then passed through Synthadoc's standard pre-LLM source sanitizer (zero-width characters, bidi overrides, HTML comments, hidden CSS spans, base64 blobs, instruction-override phrases), exactly like PDF, DOCX, URL, and every other source type.

Output format

Each turn is labelled [USER] or [ASSISTANT] and separated by ---:

[USER]
How do I implement a sliding window algorithm?

---

[ASSISTANT]
A sliding window algorithm maintains a contiguous subarray (the "window") …

suggested_slug

The skill returns a suggested_slug in metadata derived from the session file's modification time and the first substantive user message:

session-2026-07-15-how-do-i-implement-a-sliding

Large sessions — chunking

Sessions longer than 30 substantive turns are split into 30-turn chunks. Each chunk is labelled with a ## Part N of M header so the downstream LLM can process sections independently. The metadata dict includes chunk_total when chunking occurs; single-chunk sessions (≤ 30 turns) are unchanged.

Limitations

  • Tool output excluded — tool result blocks (shell output, file reads, etc.) are stripped. This is intentional: it avoids leaking file contents and credentials into the wiki.
  • Format auto-detection — detection inspects the first 30 parseable lines. Corrupt or empty files produce an empty ExtractedContent.
  • No deduplication across ingest runs — re-ingesting the same session file creates or updates the same wiki page (standard ingest dedup applies via source hash).

When this skill is used

  • Source path ends with .jsonl
  • Intent phrases: "claude session", "codex session", "cursor session", "ai session", "session history"

Standalone usage

import asyncio
from synthadoc.skills.session.scripts.main import SessionSkill

skill = SessionSkill()

async def main():
    result = await skill.extract("/path/to/session.jsonl")
    print(result.text)       # [USER]\n...\n\n---\n\n[ASSISTANT]\n...
    print(result.metadata)   # {"format": "claude_code", "turn_count": 42, "suggested_slug": "..."}

asyncio.run(main())

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

docx

無料

Extract text from Microsoft Word documents

日本語の概要は準備中です。原文の説明を表示しています。

axoviq-ai/synthadoc1,5822026年10月13日 更新

image

無料

Extract text from images using a vision LLM

日本語の概要は準備中です。原文の説明を表示しています。

axoviq-ai/synthadoc1,5822026年10月13日 更新

markdown

無料

Ingest Markdown and plain text files

日本語の概要は準備中です。原文の説明を表示しています。

axoviq-ai/synthadoc1,5822026年10月13日 更新

pdf

無料

Extract text from PDF documents

日本語の概要は準備中です。原文の説明を表示しています。

axoviq-ai/synthadoc1,5822026年10月13日 更新

pptx

無料

Extract text from Microsoft PowerPoint presentations

日本語の概要は準備中です。原文の説明を表示しています。

axoviq-ai/synthadoc1,5822026年10月13日 更新

url

無料

Fetch and extract text from web URLs

日本語の概要は準備中です。原文の説明を表示しています。

axoviq-ai/synthadoc1,5822026年10月13日 更新

axoviq-ai のスキルをすべて見る

このスキルの問題を報告する