{"id":31614277,"url":"https://github.com/t30tom/chatgpt-speedup","last_synced_at":"2026-05-01T12:32:20.603Z","repository":{"id":317308891,"uuid":"1066862775","full_name":"T30Tom/chatgpt-speedup","owner":"T30Tom","description":"Chrome/Opera MV3 extension that speeds up ChatGPT by keeping only the last N messages visible. Older turns are archived (storage or hidden container). Popup controls + live stats. Privacy-friendly: data stays in your browser. Open to PRs \u0026 ideas.","archived":false,"fork":false,"pushed_at":"2025-09-30T05:50:13.000Z","size":26,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-30T06:12:42.122Z","etag":null,"topics":["chatgpt","chrome","chrome-extension","extension","javascript","manifest-v3","mv3","opera","performance","performance-optimization","webextension"],"latest_commit_sha":null,"homepage":"https://github.com/T30Tom/chatgpt-speedup","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/T30Tom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-30T04:14:48.000Z","updated_at":"2025-09-30T05:50:07.000Z","dependencies_parsed_at":"2025-09-30T06:12:51.273Z","dependency_job_id":"41f8702e-9660-4ae8-8f26-fd70127ecc71","html_url":"https://github.com/T30Tom/chatgpt-speedup","commit_stats":null,"previous_names":["t30tom/chatgpt-speedup"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/T30Tom/chatgpt-speedup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/T30Tom%2Fchatgpt-speedup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/T30Tom%2Fchatgpt-speedup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/T30Tom%2Fchatgpt-speedup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/T30Tom%2Fchatgpt-speedup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/T30Tom","download_url":"https://codeload.github.com/T30Tom/chatgpt-speedup/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/T30Tom%2Fchatgpt-speedup/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278596668,"owners_count":26013119,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chatgpt","chrome","chrome-extension","extension","javascript","manifest-v3","mv3","opera","performance","performance-optimization","webextension"],"created_at":"2025-10-06T10:36:59.755Z","updated_at":"2025-10-06T10:37:01.467Z","avatar_url":"https://github.com/T30Tom.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ChatGPT Speedup — MV3 Extension\n\n[![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)\n[![CI](https://github.com/T30Tom/chatgpt-speedup/actions/workflows/ci.yml/badge.svg)](../../actions)\n\n\u003e Make long ChatGPT chats feel snappy. This extension prunes older messages in the DOM and keeps only the most recent **N** visible (default 5). Older tu\ns are archived either in **storage** or moved to a **hidden container**, and can be restored on demand. All data stays **local** in your browser.\n\n## ✨ Features\n- Keep last **N** visible; archive older messages (storage or hidden)\n- **Popup controls**: Keep N, mode, quick actions (+5, −5, collapse to 1)\n- Works on **chat.openai.com** and **chatgpt.com**\n- Privacy-friendly: archives live in `chrome.storage.local`\n- MV3, Chromium-compatible (Chrome, Opera, Edge)\n\n## 🧩 How it works\nThe content script detects conversation tu\ns (robust selectors), prunes older nodes, and updates counts. In storage mode, pruned nodes are serialized and removed from the DOM; in hidden mode, they’re moved to an off-screen container for fast restore.\n\n## 🔧 Install (dev)\n1. Clone this repo\n2. Go to `chrome://extensions` → enable **Developer mode**\n3. **Load unpacked** → select the project folder\n4. Open a ChatGPT conversation and use the **extension popup**\n\n## 📁 Project structure\nmanifest.json\nbackground.js\ncontent.js\ncontent.css\npopup.html\npopup.js\nicons/\n\nmarkdown\nCopy code\n\n## 🛠 Settings (Popup)\n- **Keep N**: number of visible tu\ns\n- **Mode**: `storage` (serialize + remove) or `hidden` (move to hidden container)\n- **Quick actions**: +5, −5, collapse to 1\n- **Refresh Tabs**: ask open ChatGPT tabs to refresh after updates\n\n## 🧪 Dev tips\n- Use DevTools Console on ChatGPT pages for logs\n- If popup says it can’t reach the content script, click **Refresh Tabs** or reload the page\n- Test both domains: `chat.openai.com` and `chatgpt.com`\n\n## 🔒 Privacy\nNo servers. No analytics. Archives are saved in your browser’s `chrome.storage.local`.\n\n## 🤝 Contributing\nIssues and PRs welcome!  \n- Keep PRs focused and well-scoped\n- Describe user-visible changes in the PR\n- Test on both domains and include a short QA checklist\n\n## 🧾 License\n[MIT](LICENSE)\n\n---\n\n**Ideas / roadmap**\n- Keyboard shortcuts\n- Smarter prune heuristics (skip when user scrolls up)\n- Export/import archives (JSON)\n- Per-conversation profiles\n\nSee: [How to cut a release](RELEASING.md)\n\n\n## How to cut a release\n\nTo create a GitHub Release (the Action zips the extension and attaches a checksum), tag a version and push the tag:\n\n```bash\ngit tag -a v0.1.0 -m \"v0.1.0\"\ngit push origin v0.1.0\ngit tag -a v0.1.0 -m \"v0.1.0\" creates an annotated tag locally named v0.1.0.\n\ngit push origin v0.1.0 pushes that tag to GitHub.\n\nThe Release workflow (triggered by tags matching v*) builds chatgpt-speedup-vX.Y.Z.zip,\ngenerates SHA256SUMS.txt, and publishes a GitHub Release with those files attached.\n\nSee: [How to cut a release](RELEASING.md)\n\n\nSee: [How to cut a release](RELEASING.md)\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ft30tom%2Fchatgpt-speedup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ft30tom%2Fchatgpt-speedup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ft30tom%2Fchatgpt-speedup/lists"}