Skip to main content
Glama
cc-exporter

cc-exporter

by saieeshb

unabridged

Export your AI coding agent chats.

Claude Code and Codex. Just the conversation by default, or every tool call, file read and subagent with --full. Markdown, HTML or JSON.

test release Claude Code Codex MCP server macOS · Linux · Windows MIT license

Install · Use · What's exported · Any agent · Thinking · FAQ

curl -fsSL https://raw.githubusercontent.com/saieeshb/unabridged/main/install.sh | bash

IMPORTANT

The official sources are this repository, itsreleases, and the saieeshb/tap Homebrew tap. unabridged only reads files on your computer and never uploads anything. It was called cc-exporter before 0.2.0, and the old command still works.

How it works

Claude Code keeps every chat in ~/.claude/projects/, and Codex keeps its chats in ~/.codex/sessions/. unabridged:

  1. Finds the session: the one you're in, the previous one, or any past one by id or title.

  2. Reads the whole transcript, including what the agents' own exports leave out: tool calls and their results, subagent threads, large outputs saved to disk, injected context.

  3. Rebuilds the conversation: merges streamed message parts, attaches each tool result to its call, and nests subagents where they ran.

  4. Writes just the conversation, or everything with --full, as Markdown, HTML or JSON. It can mask secrets on the way out.

Related MCP server: mcp-session-insight

Install

One line (macOS and Linux) installs the unabridged command and offers to add it to every agent it finds. It shows the changes first.

curl -fsSL https://raw.githubusercontent.com/saieeshb/unabridged/main/install.sh | bash

Windows (PowerShell):

irm https://raw.githubusercontent.com/saieeshb/unabridged/main/install.ps1 | iex

Or install it the way each agent expects:

Agent

Install

Claude Code

/plugin marketplace add saieeshb/unabridged then /plugin install unabridged@unabridged

Codex

codex plugin marketplace add saieeshb/unabridged then codex plugin add unabridged@unabridged

Gemini CLI

gemini extensions install https://github.com/saieeshb/unabridged

Qwen Code

qwen extensions install https://github.com/saieeshb/unabridged

Claude desktop app

Download unabridged.mcpb and open it

Cursor

Add to Cursor

VS Code (Copilot)

Install in VS Code

Windsurf, Copilot CLI, Antigravity, OpenCode, Kiro, Factory Droid, Cline, …

unabridged setup (see below)

Any agent with skills

npx skills add saieeshb/unabridged (installs the export skill into ~70 agents)

Homebrew

brew tap saieeshb/tap && brew trust saieeshb/tap && brew install unabridged

No install

npx -y https://github.com/saieeshb/unabridged/archive/refs/tags/v0.2.0.tar.gz --help

Everything needs Node.js 18+.

GitHub redirects the old repository, and cc-exporter still works as a command. To move the Claude Code plugin to its new name:

claude plugin uninstall cc-exporter@cc-exporter
claude plugin marketplace remove cc-exporter
claude plugin marketplace add saieeshb/unabridged && claude plugin install unabridged@unabridged

With Homebrew: brew uninstall cc-exporter && brew install unabridged.

Variable

Default

Meaning

UNABRIDGED_REF

latest release

tag, branch or commit to install

UNABRIDGED_HOME

~/.unabridged, or %LOCALAPPDATA%\unabridged on Windows

where the files go

UNABRIDGED_BIN

~/.local/bin (macOS/Linux)

where the command goes

UNABRIDGED_NO_SETUP

unset

set to 1 to skip the agent setup step

To uninstall, run unabridged setup --remove, then delete that folder and the unabridged command.

Use

In Claude Code, use the slash command, or just ask:

/export-chat                          this chat, just the conversation → ./chat-exports/<date>_<title>_<id>.md
/export-chat --full                   everything: thinking, tool calls, file reads, diffs, subagents, hooks
/export-chat -f html --open           the searchable HTML page, opened when done
/export-chat --redact                 mask keys, tokens, passwords, emails and your home folder
/export-chat --list                   sessions for this folder
/export-chat previous                 the session before this one
/export-chat "login bug"              the session whose title or first prompt matches

In Codex, Gemini CLI, Cursor or any other agent with it installed, ask: "export this chat", "export everything from this session as HTML", or "list my recent Codex sessions".

From a terminal:

unabridged --list --from all
unabridged latest --from codex -f html --open
TIP

Exports go to./chat-exports/, which writes its own .gitignore, so they never end up in a commit. Pick another folder with -o.

Options

Option

Meaning

--full

everything, as in the table below (aliases --extended, -F, -d full)

-f, --format

md (default), html, json, or all; combine with commas: -f md,html

--from

claude, codex or all (default: the agent you run it in, else Claude Code); --codex for short

-d, --detail

conversation (default) · standard · full

--thinking / --no-thinking

add thinking to the conversation view, or drop it from --full

-o, --out DIR

output folder (default ./chat-exports; ~/chat-exports outside a project)

--redact

mask API keys and tokens (Anthropic, OpenAI, GitHub, GitLab, AWS, Slack, Google, Stripe, Supabase, npm, JWTs, bearer tokens, private keys), password=… values, emails and your home folder

--no-subagents · --no-images

leave subagent transcripts or images out

--max-output N

cut each tool output or file body to N characters

--raw

also copy the raw transcript files

--open · --json

open the export when done · print the result as JSON

--list [--all] [--search TEXT] [--limit N]

list sessions

What's exported

By default an export is just the conversation: what you typed and what the agent replied, the way you read it in the chat. Add --full for everything else.

conversation (default)

standard

full (--full)

Your prompts, slash commands, ! shell commands, and the replies

✓

✓

✓

Thinking blocks / reasoning summaries

with --thinking

✓

✓

Tool calls with inputs and outputs, file reads, diffs, images

✓

✓

Subagent transcripts and Codex review threads

✓

✓

Compactions and their summaries, API errors, hook runs

✓

✓

Injected context (CLAUDE.md, AGENTS.md, environment, reminders, skill listings)

✓

System prompt snapshot, per-message ids, tokens and stop reasons

✓

The HTML page needs no network connection. It has search (press /), a prompt index, filters, light and dark themes, and a print layout for saving as PDF. The Markdown file uses <details> for collapsible parts, and its images go in a _files folder beside it. The JSON holds the merged, nested session model.

Use it from any agent

unabridged setup finds the coding agents on your computer, shows what it will change, and asks before doing it.

  • Agents with their own plugin system (Claude Code, Codex, Gemini CLI) get the plugin or extension through their CLI.

  • The others get the MCP server in their config file and the export skill in their skills folder. Each file is backed up first, and unabridged setup --remove undoes everything.

unabridged setup
unabridged setup --list
unabridged setup --agent cursor,windsurf --yes

Agent

What setup adds

Claude Code

the plugin: /export-chat, the skill and the MCP server

Codex

the plugin: the skill and the MCP server

Gemini CLI

the extension (MCP server + context)

Cursor, Windsurf, Kiro, Qwen Code, Factory Droid

MCP server + skill

VS Code (Copilot), GitHub Copilot CLI

MCP server + skill (~/.copilot/skills)

OpenCode, Antigravity

MCP server + skill

Claude Desktop, Cline

MCP server

Goose, Zed

prints the snippet to add by hand

Amp, Warp, Pi and others that read ~/.agents/skills

skill

The connector has three tools: list_sessions, read_session (returns a transcript as Markdown, page by page, so the agent can summarize or search it) and export_session. Other agents can read and export your Claude Code and Codex sessions, but not their own chats.

Claude Code (without the plugin):

claude mcp add unabridged -- npx -y https://github.com/saieeshb/unabridged/archive/refs/tags/v0.2.0.tar.gz mcp

Codex (without the plugin):

codex mcp add unabridged -- npx -y https://github.com/saieeshb/unabridged/archive/refs/tags/v0.2.0.tar.gz mcp

Any client with an mcpServers config (Claude Desktop, Cursor, Windsurf, …):

{
  "mcpServers": {
    "unabridged": {
      "command": "npx",
      "args": ["-y", "https://github.com/saieeshb/unabridged/archive/refs/tags/v0.2.0.tar.gz", "mcp"]
    }
  }
}

If unabridged is installed, use "command": "unabridged", "args": ["mcp"] instead.

Getting the thinking text

Both agents keep most thinking encrypted, so no tool can show it. unabridged marks those blocks as "not stored". To keep readable summaries in new sessions:

  • Claude Code: add "showThinkingSummaries": true to ~/.claude/settings.json.

  • Codex: add model_reasoning_summary = "detailed" to ~/.codex/config.toml.

This applies to sessions started afterwards; older thinking stays encrypted. The exporter reminds you when it finds thinking without text.

FAQ

Claude Code's /export copies the visible conversation as plain text, and Codex has no export at all. unabridged gives you that same clean conversation as Markdown or HTML by default. With --full it adds thinking, every tool call with its complete input and output, Edit diffs, subagent threads, images, saved large outputs, injected context, compactions, errors, tokens and cost. It also works for past sessions.

No. It only reads the agents' local transcripts and writes files where you tell it. The HTML export makes no network requests.

A conversation export has only what was said. A --full export also contains file contents the agent read, command output, and any secret that appeared in either. Use --redact, then still skim the result, since redaction only knows common formats.

The transcripts are append-only, so messages from a rewound or edited branch stay in the file. The export shows the full history in the order it happened.

  • Claude Code keeps them in ~/.claude/projects/ (or under CLAUDE_CONFIG_DIR) and deletes them after 30 days unless you raise cleanupPeriodDays.

  • Codex keeps them in ~/.codex/sessions/ and moves older ones to archived_sessions/ (or under CODEX_HOME). Reading archived sessions needs Node 22.15+.

Export what you want to keep.

Yes. CI runs the tests and both installers on Windows, macOS and Linux. The slash command works under Git Bash and PowerShell.

Contributing

Issues and pull requests are welcome. See CONTRIBUTING.md for the layout and how to run the tests. Report security problems as described in SECURITY.md.

Support

If unabridged saved you some time, you can buy me a coffee ☕. Thank you!

License

MIT © Saieesh Bairam. Not affiliated with Anthropic or OpenAI. Claude and Claude Code are trademarks of Anthropic; Codex is a trademark of OpenAI.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables searching and retrieving Claude Code conversation history that would otherwise expire after 30 days. Supports full-text search, semantic search, and session management with automatic backup of all conversations.
    17 npm
    28
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to query and analyze past Claude Code sessions, providing structured insights like file changes, decisions, errors, and git history across projects.
    11
    17 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables Claude Code to search and retrieve past chat history from Claude.ai exports and Claude Code sessions, allowing the AI to reference previous conversations and decisions.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to list, inspect, and export OpenCode AI coding sessions as HTML/JSON archives with secret redaction and token statistics.
    2
    MIT