{
  "markdown": "<p align=\"center\">\n  <span style=\"font-size: 100px;\">📸</span>\n</p>\n\n<h1 align=\"center\">snapshot</h1>\n\n<p align=\"center\">\n  <strong>never lose context. always ship faster.</strong>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/Pedro-B-Siqueira/snapshot/stargazers\"><img src=\"https://img.shields.io/github/stars/Pedro-B-Siqueira/snapshot?style=flat&color=4F46E5\" alt=\"Stars\"></a>\n  <a href=\"https://github.com/Pedro-B-Siqueira/snapshot/commits/master\"><img src=\"https://img.shields.io/github/last-commit/Pedro-B-Siqueira/snapshot?style=flat&color=4F46E5\" alt=\"Last Commit\"></a>\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/github/license/Pedro-B-Siqueira/snapshot?style=flat&color=4F46E5\" alt=\"License\"></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"#what-is-snapshot\">What is it</a> •\n  <a href=\"#before--after\">Before/After</a> •\n  <a href=\"#install\">Install</a> •\n  <a href=\"#usage\">Usage</a> •\n  <a href=\"#what-gets-captured\">What gets captured</a> •\n  <a href=\"#faq\">FAQ</a>\n</p>\n\n---\n\n## What is snapshot?\n\nEvery development session builds context. Context gets lost between chats. You restart. You explain everything again. Your brain cycles backwards instead of forwards.\n\n**Snapshot captures your entire session in one command.** One `/snapshot`. Structured. Copy-paste ready. No friction.\n\nThink of it like a save-game for your development workflow.\n\n---\n\n## Before / After\n\n<table>\n<tr>\n<td width=\"50%\">\n\n### 😩 Without snapshot\n\n**You type something like:**\n> \"hey so last session i was building this auth feature for a nextjs app. we had some issues with jwt tokens and i think we decided to use httpOnly cookies. also we were trying to figure out the refresh token expiry time and there was this bug where... wait what was the bug again?\"\n\n**Next chat wastes 3–5 messages re-explaining:**\n- What you were building\n- Which stack/frameworks\n- What problems you hit\n- What decisions you made\n- Where you left off\n\n</td>\n<td width=\"50%\">\n\n### ✨ With snapshot\n\n**You type:** `/snapshot`\n\n**Claude returns:**\n```\n## 📸 Session Snapshot\n\n**Project:** NextJS auth with JWT + refresh tokens\n**Stack:** React, Next.js, TypeScript, PostgreSQL\n**Goal:** Implement secure auth flow\n\n### What we did\n• Added JWT with 15min access token, 7d refresh token\n• Moved refresh token to httpOnly cookie (not localStorage)\n  to prevent XSS — rejected localStorage after security review\n• Fixed race condition in token refresh endpoint using\n  SELECT FOR UPDATE on the token record\n• Rejected session-based auth — app is stateless, needs\n  horizontal scaling across pods\n\n### Current state\nAuth flow working. Redis blocklist integrated.\nStill need logout endpoint and integration tests.\n\n### Agreed next steps\n• Add logout endpoint that invalidates refresh tokens\n• Write integration tests for the refresh flow\n```\n\n**Next chat starts immediately.** No context debt.\n\n</td>\n</tr>\n</table>\n\n---\n\n## Install\n\nPick your agent. One command. Done.\n\n| Agent | Install |\n|-------|---------|\n| **Claude Code** | `claude plugin marketplace add Pedro-B-Siqueira/snapshot && claude plugin install snapshot@snapshot` |\n| **Gemini CLI** | `gemini extensions install https://github.com/Pedro-B-Siqueira/snapshot` |\n| **Cursor** | `npx skills add Pedro-B-Siqueira/snapshot -a cursor` |\n| **Windsurf** | `npx skills add Pedro-B-Siqueira/snapshot -a windsurf` |\n| **Copilot** | `npx skills add Pedro-B-Siqueira/snapshot -a github-copilot` |\n| **Cline** | `npx skills add Pedro-B-Siqueira/snapshot -a cline` |\n| **Any other** | `npx skills add Pedro-B-Siqueira/snapshot` |\n\n### Manual install\n\n```bash\ngit clone https://github.com/Pedro-B-Siqueira/snapshot.git\ncp -r snapshot ~/.claude/plugins/\n```\n\n### Via .skill file\n\nDownload `snapshot.skill` from [releases](https://github.com/Pedro-B-Siqueira/snapshot/releases) and run:\n\n```bash\nclaude skill install snapshot.skill\n```\n\n---\n\n### What You Get\n\n| Feature | Claude Code | Gemini CLI | Cursor | Windsurf | Cline | Copilot |\n|---------|:-----------:|:----------:|:------:|:--------:|:-----:|:-------:|\n| `/snapshot` command | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| `/recap`, `/handoff`, `/context` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| Structured output format | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| Respects user's language (PT/EN/etc) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n\n> **Note:** `npx skills add` installs the skill file — it does **not** auto-activate snapshot on session start. Snapshot only runs when you explicitly type `/snapshot`. This is intentional: you control when context is captured.\n\n---\n\n<details>\n<summary><strong>Claude Code — full details</strong></summary>\n\n```bash\nclaude plugin marketplace add Pedro-B-Siqueira/snapshot\nclaude plugin install snapshot@snapshot\n```\n\nOr install from a local `.skill` file:\n```bash\nclaude skill install snapshot.skill\n```\n\nThen type `/snapshot` in any session to capture context.\n\n</details>\n\n<details>\n<summary><strong>Gemini CLI — full details</strong></summary>\n\n```bash\ngemini extensions install https://github.com/Pedro-B-Siqueira/snapshot\n```\n\nUpdate: `gemini extensions update snapshot` · Uninstall: `gemini extensions uninstall snapshot`\n\n</details>\n\n<details>\n<summary><strong>Cursor / Windsurf / Cline / Copilot — full details</strong></summary>\n\n```bash\n# Cursor\nnpx skills add Pedro-B-Siqueira/snapshot -a cursor\n\n# Windsurf\nnpx skills add Pedro-B-Siqueira/snapshot -a windsurf\n\n# Cline\nnpx skills add Pedro-B-Siqueira/snapshot -a cline\n\n# Copilot\nnpx skills add Pedro-B-Siqueira/snapshot -a github-copilot\n\n# Auto-detect\nnpx skills add Pedro-B-Siqueira/snapshot\n```\n\nUninstall: `npx skills remove snapshot`\n\n</details>\n\n<details>\n<summary><strong>Any other agent (opencode, Roo, Amp, Goose, and 40+ more)</strong></summary>\n\n```bash\nnpx skills add Pedro-B-Siqueira/snapshot           # auto-detect agent\nnpx skills add Pedro-B-Siqueira/snapshot -a amp\nnpx skills add Pedro-B-Siqueira/snapshot -a goose\nnpx skills add Pedro-B-Siqueira/snapshot -a roo\n```\n\n**Want it always available?** Paste this into your agent's system prompt or rules file:\n\n```\nWhen user types /snapshot (or /recap, /handoff, /context, /summary), read the entire\nconversation and output a structured snapshot:\n\n## 📸 Session Snapshot\n**Project:** [name] | **Stack:** [tools] | **Goal:** [what was being solved]\n\n### What we did\n• [5–7 self-contained bullets — real names, real decisions, reasons for each choice]\n\n### Current state\n[2–4 lines: what works, what's pending, what's broken]\n\n### Essential code (if relevant)\n[Only the most critical snippet]\n\n### Agreed next steps\n• [Next step 1]\n\n> Paste this block at the top of your next chat to continue right where you left off.\n```\n\n</details>\n\n---\n\n## Usage\n\n### Basic\n\nType `/snapshot` anywhere in a session:\n\n```\n/snapshot\n```\n\nClaude reads the full conversation and outputs a structured snapshot. Copy it. Open a new chat. Paste at the top. Continue exactly where you stopped.\n\n### Also works with\n\n- `/recap` — same output\n- `/handoff` — same output\n- `/context` — same output\n- `/summary` — same output\n- \"summarize the session\"\n- \"export context for a new chat\"\n- \"catch me up\"\n\n---\n\n## What gets captured\n\n| Section | What's included |\n|---|---|\n| **Project** | Name, one-line description |\n| **Stack** | Languages, frameworks, tools |\n| **Goal** | What was being built or solved |\n| **What we did** | 5–7 self-contained bullets: decisions, fixes, tradeoffs, with reasons |\n| **Current state** | What's working, what's pending, what's broken |\n| **Essential code** | Only the most critical snippet (omitted if not relevant) |\n| **Next steps** | Anything agreed upon or left pending |\n\nEvery bullet is self-contained — someone reading cold has full context.\n\n---\n\n## FAQ\n\n**Q: Does snapshot work for non-coding sessions?**\n\nA: Yes. It works for any kind of work: architecture planning, document writing, debugging, research. If there's context worth preserving, snapshot captures it.\n\n**Q: What if my session is messy or non-linear?**\n\nA: Snapshot handles it. It extracts signal (decisions, implementations, blockers) from noise (back-and-forth, dead ends, tangents).\n\n**Q: Does it capture sensitive information?**\n\nA: No. Snapshot is instructed to identify and strictly ignore API keys, access tokens, passwords, and sensitive credentials. If it detects that sensitive keys were shared during the session, it will omit them from the output and add a security warning to the snapshot (e.g., \"*Sensitive keys were shared in the original session but were ignored in this snapshot creation*\"). You should still always review the final output before sharing it just to be safe.\n\n**Q: Can I customize the output format?**\n\nA: Yes — edit `snapshot/SKILL.md`. Change sections, add your team's preferred structure, adjust language defaults.\n\n**Q: Does it slow down my agent?**\n\nA: Zero impact. Snapshot runs on-demand only when you type `/snapshot`. No background processes.\n\n---\n\n## License\n\nMIT — use it, modify it, share it.\n\n---\n\n<p align=\"center\">\n  <strong>Ship faster. Keep context.</strong><br>\n  One <code>/snapshot</code> at a time.\n</p>\n",
  "bytes": 9028,
  "sha": "0c31dacd1a8cb81d462441da6cb0f15750275ea278735075ecafbc86b8792c63",
  "repo_slug": "pedro-b-siqueira/snapshot",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_pedro_b_siqueira_snapshot_91af2eae/readme"
}