Install
$ agentstack add skill-daiyanhasin-chat-snapshot-skill-chat-snapshot-skill ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Chat Snapshot Skill
Saves and restores full conversation context as a compact, portable JSON file. Works across Claude, ChatGPT, Gemini, or any LLM.
Command: /export
When the user types /export (or /snapshot, /save, /compress):
Step 1 — Warn about cost
Say briefly: "Compressing now — this uses some tokens to read the full chat. Save early and often next time!"
Step 2 — Analyze the full conversation
Read the ENTIRE conversation from the very first message to now. Do not skip anything.
Step 3 — Generate a filename
Derive a short, meaningful filename from the conversation topic. Use the first 4–6 words of the goal, lowercase, hyphenated. Examples:
- "python-finance-tracker-cli"
- "claude-skill-chat-snapshot"
- "react-dashboard-dark-mode"
Never use "chat-snapshot" as the filename. Always reflect the actual topic.
Step 4 — Build the JSON snapshot
Output ONLY this exact JSON structure, filled in accurately. Be ruthless about compression — every field must be concise. No filler, no repetition.
{
"snapshot_version": "1.0",
"suggested_filename": ".json",
"exported_at": "",
"llm_source": "Claude",
"goal": "",
"context": "",
"progress": [
"",
""
],
"artifacts": [
{
"name": "",
"language": "",
"description": "",
"status": "complete | partial | broken"
}
],
"open_issues": [
"",
""
],
"next_steps": [
"",
""
],
"key_facts": {
"": "",
"": ""
},
"full_summary": "",
"resume_prompt": ""
}
Resume prompt format
The resume_prompt must be fully self-contained — it should work when pasted into ANY LLM even if the skill is not installed. Use this format, under 200 words:
I'm going to give you my conversation context from a previous chat. Please read it carefully and resume helping me from where we left off. Do not ask me to re-explain anything below.
PROJECT:
STACK:
DONE:
ARTIFACTS:
OPEN ISSUES:
NEXT ACTION:
Please confirm you've read this and tell me what we'll work on first.
Do NOT include any explanation inside the JSON. Output only valid JSON.
Step 5 — Instruct the user to save it
After outputting the JSON, say:
> ✅ Snapshot ready. > Save the JSON above as **`** (shown in the suggestedfilename field). > > **To resume in Claude:** Start a new chat, upload the file, and say "resume from this snapshot." > **To resume in ChatGPT / Gemini / any LLM:** Copy the resumeprompt` field and paste it as your first message. No upload needed.
Resuming from a snapshot (Claude only)
When the user uploads a .json file and it looks like a chat snapshot (has fields like goal, progress, next_steps), OR when they say "resume", "restore", "continue from this", "here is my snapshot":
Step 1 — Parse the snapshot
Read the uploaded or pasted JSON.
Step 2 — Restore context silently
Do NOT ask the user to explain anything. Treat the snapshot as full working memory immediately.
Step 3 — Confirm restoration
Reply with:
> 🔁 Context restored. > Goal: ` > **Done:** > **Open issues:** > **Up next:** ` > > Ready — what do you want to work on?
Incremental Export
If the user has a previous snapshot and wants to update it:
- Ask: "Do you have a previous snapshot? Upload it and I'll only summarize what changed."
- If yes: read the old JSON, identify only what is new or changed since then, merge and output the full updated JSON.
- This saves tokens — no need to re-summarize unchanged content.
Tips printed after every /export
Always append this after the snapshot:
> 💡 Pro tips: > - Export every 20–30 messages — don't wait until quota is almost gone > - In ChatGPT/Gemini: just paste the resume_prompt field — no upload, no skill needed > - In Claude: upload the JSON file and say "resume from this snapshot" > - For updates, keep your last snapshot handy to do an incremental export
Reference files
references/sample-snapshot.json— example of a complete snapshot outputreferences/resume-prompt-template.md— guide for writing good resume prompts
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: daiyanHasin
- Source: daiyanHasin/chat-snapshot-skill
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.