{"id":47662943,"url":"https://github.com/n24q02m/jules-task-archiver","last_synced_at":"2026-05-25T01:06:23.922Z","repository":{"id":346379468,"uuid":"1189630741","full_name":"n24q02m/jules-task-archiver","owner":"n24q02m","description":"Chrome Extension for bulk operations on Jules tasks via batchexecute API -- archive tasks and start code suggestions at scale","archived":false,"fork":false,"pushed_at":"2026-05-03T11:44:34.000Z","size":464,"stargazers_count":1,"open_issues_count":108,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-03T13:25:34.569Z","etag":null,"topics":["automation","browser-extension","chrome-extension","github-api","google-jules","jules","manifest-v3","task-archiver"],"latest_commit_sha":null,"homepage":"https://github.com/n24q02m/jules-task-archiver/releases","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/n24q02m.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-03-23T14:11:43.000Z","updated_at":"2026-04-16T07:30:53.000Z","dependencies_parsed_at":"2026-03-24T13:00:13.841Z","dependency_job_id":null,"html_url":"https://github.com/n24q02m/jules-task-archiver","commit_stats":null,"previous_names":["n24q02m/jules-task-archiver"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/n24q02m/jules-task-archiver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n24q02m%2Fjules-task-archiver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n24q02m%2Fjules-task-archiver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n24q02m%2Fjules-task-archiver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n24q02m%2Fjules-task-archiver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/n24q02m","download_url":"https://codeload.github.com/n24q02m/jules-task-archiver/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n24q02m%2Fjules-task-archiver/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32810391,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"online","status_checked_at":"2026-05-09T02:00:06.633Z","response_time":123,"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":["automation","browser-extension","chrome-extension","github-api","google-jules","jules","manifest-v3","task-archiver"],"created_at":"2026-04-02T11:42:50.222Z","updated_at":"2026-05-09T07:06:51.011Z","avatar_url":"https://github.com/n24q02m.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jules Task Archiver\n\n**Chrome Extension for bulk operations on Jules tasks via batchexecute API -- archive tasks and start code suggestions at scale.**\n\n[![CI](https://github.com/n24q02m/jules-task-archiver/actions/workflows/ci.yml/badge.svg)](https://github.com/n24q02m/jules-task-archiver/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)\n[![semantic-release](https://img.shields.io/badge/semantic--release-conventionalcommits-e10079?logo=semantic-release)](https://github.com/semantic-release/semantic-release)\n\n\u003c!-- BEGIN: AUTO-GENERATED-CROSS-PROMO --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003eSister projects from n24q02m\u003c/strong\u003e (click to expand)\u003c/summary\u003e\n\n| Project | Tagline | Tag |\n|---|---|---|\n| [better-code-review-graph](https://github.com/n24q02m/better-code-review-graph) | Knowledge graph for token-efficient code reviews -- fixed search, configurabl... | MCP |\n| [better-email-mcp](https://github.com/n24q02m/better-email-mcp) | IMAP/SMTP email server for AI agents -- 6 composite tools with multi-account ... | MCP |\n| [better-godot-mcp](https://github.com/n24q02m/better-godot-mcp) | Composite MCP server for Godot Engine -- 17 mega-tools for AI-assisted game d... | MCP |\n| [better-notion-mcp](https://github.com/n24q02m/better-notion-mcp) | Markdown-first Notion API server for AI agents -- 10 composite tools replacin... | MCP |\n| [better-telegram-mcp](https://github.com/n24q02m/better-telegram-mcp) | MCP server for Telegram with dual-mode support: Bot API (httpx) for quick bot... | MCP |\n| [claude-plugins](https://github.com/n24q02m/claude-plugins) | Full documentation: mcp.n24q02m.com — unified docs for all 8 servers + the mc... | Marketplace |\n| [imagine-mcp](https://github.com/n24q02m/imagine-mcp) | Production-grade MCP server for image and video understanding + generation ac... | MCP |\n| [jules-task-archiver](https://github.com/n24q02m/jules-task-archiver) | Chrome Extension for bulk operations on Jules tasks via batchexecute API -- a... | Tooling |\n| [mcp-core](https://github.com/n24q02m/mcp-core) | Unified MCP Streamable HTTP 2025-11-25 transport, OAuth 2.1 Authorization Ser... | MCP |\n| [mnemo-mcp](https://github.com/n24q02m/mnemo-mcp) | Persistent AI memory with hybrid search and embedded sync. Open, free, unlimi... | MCP |\n| [qwen3-embed](https://github.com/n24q02m/qwen3-embed) | Lightweight Qwen3 text embedding and reranking via ONNX Runtime and GGUF | Library |\n| [skret](https://github.com/n24q02m/skret) | Secrets without the server. | CLI |\n| [web-core](https://github.com/n24q02m/web-core) | Shared web infrastructure package for search, scraping, HTTP security, and st... | Library |\n| [wet-mcp](https://github.com/n24q02m/wet-mcp) | Open-source MCP Server for web search, content extraction, library docs \u0026 mul... | MCP |\n\n\u003c/details\u003e\n\u003c!-- END: AUTO-GENERATED-CROSS-PROMO --\u003e\n\n## Table of contents\n\n- [Features](#features)\n- [Installation](#installation)\n- [Usage](#usage)\n- [How It Works](#how-it-works)\n- [Permissions](#permissions)\n- [Development](#development)\n- [Related Projects](#related-projects)\n- [Contributing](#contributing)\n- [License](#license)\n\n\n\n## Features\n\n### Archive Tasks\n\n- **Bulk archive** -- archive all completed tasks for repos with zero open PRs in one click\n- **GitHub PR check** -- skips repos with open PRs to avoid archiving active work\n- **Force mode** -- skip PR check and archive everything\n\n### Start Suggestions\n\n- **Bulk start** -- start all recommended code suggestions (security, performance, testing, cleanup) across repos\n- **Category-aware prompts** -- generates tailored prompts per suggestion category (security fix, performance optimization, test coverage, code cleanup)\n- **Config capture** -- observes Jules UI to capture model config and experiment IDs for accurate reproduction\n\n### General\n\n- **Multi-account** -- processes all Jules tabs (`/u/0`, `/u/1`, etc.) automatically\n- **Dry run mode** -- preview what would happen without making changes\n- **batchexecute API** -- direct HTTP calls, no DOM automation, 10x faster than UI clicks\n- **Live progress** -- real-time log and progress bar in popup UI\n- **State persistence** -- operation continues even if popup is closed; progress restored on reopen\n\n## Installation\n\n1. Download the latest `jules-task-archiver.zip` from [Releases](../../releases)\n2. Extract the zip\n3. Open `chrome://extensions` in Chrome\n4. Enable **Developer mode** (top right toggle)\n5. Click **Load unpacked** and select the extracted folder\n\n## Usage\n\n1. Open one or more `jules.google.com` tabs (supports multiple accounts)\n2. Click the extension icon in the toolbar\n3. Configure:\n   - **Operation** -- Archive Tasks or Start Suggestions\n   - **GitHub Owner** -- your GitHub username (for PR checks in archive mode)\n   - **GitHub Token** -- optional, for private repos\n   - **Mode** -- Dry Run (preview) or Run (execute)\n   - **Force** -- skip PR check (archive mode only)\n   - **Scope** -- current tab only or all Jules tabs\n4. Click **Start**\n\n### Start Suggestions tips\n\n- For best results, manually click \"Start\" on any suggestion in the Jules UI first -- the extension captures the model config and experiment IDs from that request\n- Without this capture, the extension uses sensible defaults that may differ from Jules' current configuration\n\n## How It Works\n\n### v2 Architecture\n\n```\npopup.js (UI) \u003c-\u003e background.js (batchexecute client) \u003c-\u003e content.js (message relay)\n                        |                                        |\n                  fetch() to jules.google.com          main-world.js (MAIN world)\n                  /_/Swebot/data/batchexecute          reads WIZ_global_data tokens\n```\n\n1. `main-world.js` runs in the page's MAIN world, reads auth tokens from `WIZ_global_data`, and observes fetch calls for StartSuggestion config\n2. `content.js` relays tokens and config to the background service worker\n3. `background.js` makes direct HTTP calls to Jules' batchexecute API endpoint\n4. `popup.js` displays real-time progress and manages settings\n\n### RPC IDs\n\n| RPC | ID | Purpose |\n|-----|-----|---------|\n| ListTasks | `p1Takd` | Fetch all active tasks |\n| ArchiveTask | `Tjmm5c` | Archive a single task |\n| ListSuggestions | `hQP40d` | Fetch code suggestions for a repo |\n| StartSuggestion | `Rja83d` | Start a suggestion as a new task |\n\n## Permissions\n\n| Permission | Why |\n|-----------|-----|\n| `storage` | Save settings and operation state |\n| `tabs` | Query all Jules tabs for multi-account support |\n| `scripting` | Inject content script into pre-existing tabs |\n| `jules.google.com` | Content script for token extraction |\n| `api.github.com` | Check open PRs via GitHub REST API |\n\n## Development\n\n```bash\n# Lint and format\nnpx @biomejs/biome check .\nnpx @biomejs/biome check --write .\n\n# Run tests\nnode --test\n\n# Load unpacked in chrome://extensions for testing\n```\n\nNo build step, no dependencies. Pure vanilla JavaScript with `node:test` for unit tests.\n\n## Related Projects\n\nCheck out these MCP servers for AI-powered development:\n\n- [wet-mcp](https://github.com/n24q02m/wet-mcp) -- Web search, extract, and media MCP server\n- [better-notion-mcp](https://github.com/n24q02m/better-notion-mcp) -- Notion API MCP server\n- [mnemo-mcp](https://github.com/n24q02m/mnemo-mcp) -- Persistent AI memory MCP server\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## License\n\n[MIT](LICENSE)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fn24q02m%2Fjules-task-archiver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fn24q02m%2Fjules-task-archiver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fn24q02m%2Fjules-task-archiver/lists"}