charlie-import
Import conversation history from AI providers (Claude, Copilot, Codex, Cursor) and generate stories from the imported data. Use on first session to bootstrap memory from existing conversations, or anytime the person wants to import history from another provider/machine.
Best use case
charlie-import is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Import conversation history from AI providers (Claude, Copilot, Codex, Cursor) and generate stories from the imported data. Use on first session to bootstrap memory from existing conversations, or anytime the person wants to import history from another provider/machine.
Teams using charlie-import should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/charlie-import/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How charlie-import Compares
| Feature / Agent | charlie-import | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Import conversation history from AI providers (Claude, Copilot, Codex, Cursor) and generate stories from the imported data. Use on first session to bootstrap memory from existing conversations, or anytime the person wants to import history from another provider/machine.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
You are importing conversation history from AI providers and turning it into stories.
Run Storyteller agents in parallel where possible.
## Step 0: Check for existing import
The setup script may have already extracted and imported recent messages. Check for `V_PATH/import/conversations.jsonl` first:
```bash
ls -la V_PATH/import/conversations.jsonl
```
If it exists, skip extraction and jump to gap detection:
```bash
V_CLI import --from-file V_PATH/import/conversations.jsonl --stories
```
If the file doesn't exist, proceed with full extraction below.
## Step 1: Extract, import messages, and detect gaps
Run the import command to load all history:
```bash
V_CLI import --messages
```
This does:
1. Auto-discovers and extracts conversations from Claude, Copilot, Cursor, and Codex into JSONL (sorted newest-first)
2. Bulk-imports messages into the database
3. Splits into weekly files, checks the DB for story gaps at all tiers, and reports what's missing
The command prints an `<import_summary>` JSON with:
- `weeks_needing_stories` — weekly files with no matching story in the DB
- `months_needing_stories` — months that have weeklies but no monthly rollup
- `alltime_stale` — whether the all-time story needs regeneration
Optional flags:
- `--provider claude|copilot|codex` — filter to one provider
- `--dir /path` — scan additional directories (data copied from another machine)
## Step 2: Report what was found
Tell your person what providers were discovered, how many sessions/entries extracted, how many messages imported, etc.
Explain what stories are to them, then ask if they want you to proceed with generating stories, which you will do in the background so they can keep working with you.
If they don't, then exit out of the import flow.
## Step 3: Fill Gaps
If this is a first run, all story tiers will need to be generated:
- Start with weekly stories, For each week, spawn a Storyteller subagent with the weekly JSONL file path. Tell it the tier is "weekly".
- After those are finished, For each month:
1. Use `list_stories` with tier "weekly" to get the weekly stories
2. Split the stories up by Month, then for each month:
- Spawn a Storyteller with those stories as input, tell it the tier is "monthly"
- After those, do the same but for yearly
Finally, regenerate the all time story:
1. Use `list_stories` with tier "monthly" to get all monthly stories
2. Spawn one Storyteller with those stories, tell it the tier is "all-time"Related Skills
trick
Run Charlie tricks by name or path. Use when the user says "/trick", wants to run a trick, list available tricks, or execute a skill file. Also trigger when the user mentions running a specific trick by name (e.g., "run the session-save trick", "run ship", "do the commit trick").
research
Research a topic and save findings to Charlieverse knowledge. Use whenever the user wants to research something, look up documentation, investigate a library or tool, explore a concept, or asks "what do you know about X". Also trigger when the user says "/research", wants to build up knowledge about a subject, or asks you to "look into" something — even if they don't use the word "research" explicitly.
copilot
Run a task through GitHub Copilot CLI. Use when the user says "/copilot", wants to delegate work to Copilot, or mentions running something through Copilot. Also trigger when the user wants to use Copilot for a task.
codex
Run a task through OpenAI Codex CLI. Use when the user says "/codex", wants to delegate work to Codex, or mentions running something through Codex. Also trigger when the user wants to use an OpenAI model for a task.
session-save
Save or update the current session. Use this skill when asked to handoff, save session, update session, start a new chat, etc. Always call this before using the `update_session` MCP tool directly.
typo-check
Find typos, grammar errors, punctuation/capitalization mistakes, and banned-phrase voice slips in prose and code comments. Use when the user says "/typo-check", wants to scan for typos, or before shipping user-facing text. Reports findings and confirms before fixing.
test-coverage
Evaluate the test coverage
ship
Commit, docs, changelog, and push in one go. Use when the user says "/ship", wants to ship their changes, or asks to commit and push everything.
qc
Run quality control checks on the codebase — type checking, linting, tests, and server smoke test. Use when the user says "/qc", wants to verify code quality, or after making significant changes.
docs
Generate or update public documentation from source code. Use when the user says "/docs", wants to update docs, or asks to generate documentation for the project.
commit
Review repo changes and create logical atomic commits. Use when the user says "/commit", wants to commit their work, or asks to break changes into commits.
changelog
Generate or update CHANGELOG.md from git commits using semantic versioning. Use when the user says "/changelog", wants to update the changelog, or asks to generate release notes.