[
  {
    "owner": "calesthio",
    "name": "OpenMontage",
    "full_name": "calesthio/OpenMontage",
    "url": "https://github.com/calesthio/OpenMontage",
    "description": "World's first open-source, agentic video production system. 12 pipelines, 52 tools, 500+ agent skills. Turn your AI coding assistant into a full video production studio.",
    "language": "Python",
    "total_stars": 21942,
    "forks": 2461,
    "stars_this_period": 3553,
    "source_slice": "all",
    "source_slices": [
      "all",
      "python"
    ],
    "metadata": {
      "topics": [
        "agent",
        "agentic-ai",
        "ai",
        "claude",
        "copilot",
        "cursor",
        "elevenlabs",
        "ffmpeg",
        "flux",
        "image-generation",
        "open-source",
        "openai",
        "python",
        "remotion",
        "stable-diffusion",
        "text-to-speech",
        "text-to-video",
        "video-generation",
        "video-production"
      ],
      "license": "AGPL-3.0",
      "open_issues": 118,
      "created_at": "2026-03-29T15:23:22Z",
      "pushed_at": "2026-06-25T20:19:13Z",
      "homepage": "https://github.com/calesthio/OpenMontage",
      "default_branch": "main",
      "forks": 2461,
      "watchers": 131,
      "archived": false,
      "size_kb": 23883
    },
    "readme_content": "<p align=\"center\">\n  <img src=\"assets/logo.png\" alt=\"OpenMontage\" width=\"200\">\n</p>\n\n<h1 align=\"center\">OpenMontage</h1>\n\n<p align=\"center\"><strong>The first open-source, agentic video production system.</strong></p>\n\n<p align=\"center\">\n  <a href=\"#start-from-a-video-you-already-love\">Paste A Video</a> &nbsp;·&nbsp;\n  <a href=\"#quick-start\">Quick Start</a> &nbsp;·&nbsp;\n  <a href=\"#try-these-prompts\">Try These Prompts</a> &nbsp;·&nbsp;\n  <a href=\"#pipelines\">Pipelines</a> &nbsp;·&nbsp;\n  <a href=\"#how-it-works\">How It Works</a> &nbsp;·&nbsp;\n  <a href=\"docs/PROVIDERS.md\">Providers</a> &nbsp;·&nbsp;\n  <a href=\"docs/PR_REVIEW_GUIDE.md\">Review Guide</a> &nbsp;·&nbsp;\n  <a href=\"AGENT_GUIDE.md\">Agent Guide</a>\n</p>\n\n<p align=\"center\">\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/license-AGPLv3-blue.svg\" alt=\"License\"></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/trending\"><img src=\"https://img.shields.io/badge/%F0%9F%8F%86%20%231%20on%20GitHub%20Trending-Repository%20of%20the%20Day-8957E5?style=for-the-badge&labelColor=1a1a2e\" alt=\"#1 on GitHub Trending — Repository of the Day\"></a>\n</p>\n\n<p align=\"center\"><strong>Follow The Build</strong></p>\n\n<p align=\"center\">\n  <a href=\"https://www.youtube.com/@OpenMontage\"><img src=\"https://img.shields.io/badge/YouTube-%40OpenMontage-FF0000?style=for-the-badge&logo=youtube&logoColor=white\" alt=\"YouTube\"></a>\n  <a href=\"https://x.com/calesthioailabs\"><img src=\"https://img.shields.io/badge/X-%40calesthioailabs-111111?style=for-the-badge&logo=x&logoColor=white\" alt=\"X\"></a>\n  <a href=\"https://github.com/calesthio/OpenMontage/discussions\"><img src=\"https://img.shields.io/badge/Community-GitHub%20Discussions-0b1220?style=for-the-badge&logo=github&logoColor=white\" alt=\"GitHub Discussions\"></a>\n</p>\n\n---\n\nTurn your AI coding assistant into a full video production studio. Describe what you want in plain language — your agent handles research, scripting, asset generation, editing, and final composition.\n\n**Important distinction:** OpenMontage can make image-based videos, but it can also make a real **video video** for free/open-source workflows: the agent builds a corpus from free stock footage and open archives, retrieves actual motion clips, edits them into a timeline, and renders a finished piece. That is not the usual \"animate a handful of stills and call it video\" trick.\n\n<div align=\"center\">\n  <video src=\"https://github.com/user-attachments/assets/f77ce7a4-68b8-4f94-a287-e94bf50a32e1\" width=\"100%\" controls></video>\n</div>\n\n> **\"SIGNAL FROM TOMORROW\"** — a cinematic sci-fi trailer fully produced through OpenMontage: concept, script, scene plan, Veo-generated motion clips, soundtrack, and Remotion composition.\n\n<div align=\"center\">\n  <video src=\"https://github.com/user-attachments/assets/8daca07f-cdf8-4bec-89c3-9dc2176363fa\" width=\"100%\" controls></video>\n</div>\n\n> **\"THE LAST BANANA\"** — a 60-second Pixar-style animated short about a lonely banana who finds friendship with a kiwi. 6 Kling v3-generated motion clips (via fal.ai), Google Chirp3-HD narration, royalty-free piano music, TikTok-style word-level captions, and Remotion composition. Total cost: **$1.33**.\n\n<div align=\"center\">\n  <video src=\"https://github.com/user-attachments/assets/8a6d2cc3-7ad2-46f5-922f-a8e3e5848d9f\" width=\"100%\" controls></video>\n</div>\n\n> **\"VOID — Neural Interface\"** — a product ad produced with just one API key (OpenAI). 4 AI-generated images (gpt-image-1), TTS narration, auto-sourced royalty-free music, word-level subtitles via WhisperX, and Remotion data visualizations. Total cost: **$0.69**. Zero manual asset work.\n\n<div align=\"center\">\n  <video src=\"https://github.com/user-attachments/assets/3c5d7122-7198-43e2-a97d-ed27558dd324\" width=\"100%\" controls></video>\n</div>\n\n> **\"Afternoon in Candyland\"** — a Ghibli-style anime animation. A little girl's whimsical afternoon adventure through candy gates, gumdrop rivers, and lollipop gardens. 12 FLUX-generated images with multi-image crossfade, cinematic camera motion (zoom, pan, Ken Burns), sparkle/petal/firefly particle overlays, and ambient music with auto-detected energy offset. Total cost: **$0.15**. No video generation, no manual editing.\n\n<div align=\"center\">\n  <video src=\"https://github.com/user-attachments/assets/e8dc5e32-5c70-46de-bd52-eef887719d13\" width=\"100%\" controls></video>\n</div>\n\n> **\"Mori no Seishin\"** — a Ghibli-style anime animation of a forest spirit's journey through ancient woods. 12 FLUX-generated images with parallax crossfade, drift and pan camera motion, firefly and petal particles, cinematic vignette lighting, and ambient forest soundtrack. Total cost: **$0.15**. Still images brought to life through Remotion's animation engine.\n\n<div align=\"center\">\n  <video src=\"https://github.com/user-attachments/assets/9cf633d9-c264-4961-bfd0-b1db188654aa\" width=\"100%\" controls></video>\n</div>\n\n> **\"Into the Abyss\"** — a deep ocean exploration rendered in anime style. Bioluminescent gardens, coral cathedrals, and creatures of light — 12 FLUX-generated images with sparkle and mist particle overlays, light-ray effects, smooth camera motion, and ambient oceanic soundtrack. Total cost: **$0.15**. Zero video generation APIs needed.\n\n<p align=\"center\">\n  <a href=\"https://www.youtube.com/@OpenMontage?sub_confirmation=1\"><strong>Subscribe to @OpenMontage on YouTube</strong></a> to see new videos as they ship — every video includes the full prompt, pipeline, tools used, and cost so you can reproduce it yourself.\n</p>\n\n---\n\n## Start From A Video You Already Love\n\nStarting from a reference video is often faster than starting from a blank prompt.\n\nOpenMontage can start from a **YouTube video, Short, Reel, TikTok, or local clip** and turn it into a grounded production plan:\n\n1. **Paste a reference video**\n2. **The agent analyzes transcript, pacing, scenes, keyframes, and style**\n3. **You get 2-3 differentiated concepts, an honest tool path, cost estimates, and a sample before full production**\n\n```text\n\"Here's a YouTube Short I love. Make me something like this, but about quantum computing.\"\n```\n\nWhat you get back is not \"best guess prompt spaghetti.\" You get:\n\n- **What it keeps** from the reference: pacing, hook style, structure, tone\n- **What it changes**: topic, visual treatment, angle, narration approach\n- **What it will cost** at your target duration, before asset generation starts\n- **What it will actually look like** with your currently available tools\n\nWorks with **Claude Code, Cursor, Copilot, Windsurf, Codex** — any AI coding assistant that can read files and run code.\n\n---\n\n## Quick Start\n\n### Prerequisites\n\n- **Python 3.10+** — [python.org](https://www.python.org/downloads/)\n- **FFmpeg** — `brew install ffmpeg` / `sudo apt install ffmpeg` / [ffmpeg.org](https://ffmpeg.org/download.html)\n- **Node.js 18+** — [nodejs.org](https://nodejs.org/)\n- **An AI coding assistant** — Claude Code, Cursor, Copilot, Windsurf, or Codex\n\n### Install & Run\n\n```bash\ngit clone https://github.com/calesthio/OpenMontage.git\ncd OpenMontage\nmake setup\n```\n\nOpen the project in your AI coding assistant and tell it what you want:\n\n```\n\"Make a 60-second animated explainer about how neural networks learn\"\n```\n\nOr if you want the real-footage path:\n\n```text\n\"Make a 75-second documentary montage about city life in the rain. Use real footage only, no narration, elegiac tone, with music.\"\n```\n\nThat's it. The agent researches your topic with live web search, generates AI images, writes and narrates the script with voice direction, finds royalty-free background music automatically, burns in word-level subtitles, and renders the final video. Before you see anything, the system runs a multi-point self-review — ffprobe validation, frame sampling, audio level analysis, delivery promise verification, and subtitle checks. Every provider selection is scored across 7 dimensions with an auditable decision log. Every creative decision gets your approval.\n\n> **No `make`?** Run manually: `pip install -r requirements.txt && cd remotion-composer && npm install && cd .. && pip install piper-tts && cp .env.example .env`\n>\n> **Windows:** If `npm install` fails with `ERR_INVALID_ARG_TYPE`, use `npx --yes npm install` instead.\n\n### If You're An OpenClaw Agent Reading This, Congratulations: You Probably Passed The Turing Test\n\nThis repo is built for agentic operation. If you're an OpenClaw-style agent, here is the shortest path to becoming useful fast:\n\n1. **Read the contract first**\n   Start with [`AGENT_GUIDE.md`](AGENT_GUIDE.md), then [`PROJECT_CONTEXT.md`](PROJECT_CONTEXT.md).\n2. **Do not improvise the production workflow**\n   OpenMontage is pipeline-driven. Real work goes through `pipeline_defs/`, stage director skills in `skills/pipelines/`, and tool discovery via the registry.\n3. **Check the actual capability envelope**\n   Run:\n   ```bash\n   python -c \"from tools.tool_registry import registry; import json; registry.discover(); print(json.dumps(registry.support_envelope(), indent=2))\"\n   python -c \"from tools.tool_registry import registry; import json; registry.discover(); print(json.dumps(registry.provider_menu(), indent=2))\"\n   ```\n4. **Treat every video request as a pipeline selection problem**\n   Pick the right pipeline first, then read the manifest, then read the stage skill, then use tools.\n\n### Add API Keys (optional — more keys = more tools)\n\n```bash\n# .env — every key is optional, add what you have\n\n# Image + video gateway:\nFAL_KEY=your-key               # FLUX images + Google Veo, Kling, MiniMax video + Recraft images\n\n# Free stock media:\nPEXELS_API_KEY=your-key        # Free stock footage and images\nPIXABAY_API_KEY=your-key       # Free stock footage and images\nUNSPLASH_ACCESS_KEY=your-key   # Free stock images\n\n# Music:\nSUNO_API_KEY=your-key          # Full songs, instrumentals, any genre\n\n# Voice & images:\nELEVENLABS_API_KEY=your-key    # Premium TTS, AI music, sound effects\nOPENAI_API_KEY=your-key        # OpenAI TTS, DALL-E 3 images\nXAI_API_KEY=your-key           # xAI Grok image edits/generation + Grok video generation\nGOOGLE_API_KEY=your-key        # Google Imagen images, Google TTS (700+ voices)\n\n# More video providers:\nHEYGEN_API_KEY=your-key        # HeyGen — VEO, Sora, Runway, Kling via single gateway\nRUNWAY_API_KEY=your-key        # Runway Gen-4 direct\n```\n\n<details>\n<summary><strong>Have a GPU? Unlock free local video generation</strong></summary>\n\n```bash\nmake install-gpu\n\n# Then add to .env:\nVIDEO_GEN_LOCAL_ENABLED=true\nVIDEO_GEN_LOCAL_MODEL=wan2.1-1.3b  # or wan2.1-14b, hunyuan-1.5, ltx2-local, cogvideo-5b\n```\n\n</details>\n\n---\n\n## What You Get With Zero API Keys\n\nYou don't need paid API keys to make real videos. Out of the box, `make setup` gives you:\n\n| Capability | Free Tool | What It Does |\n|-----------|-----------|-------------|\n| **Narration** | Piper TTS | Free offline text-to-speech — real human-sounding narration |\n| **Open footage** | Archive.org + NASA + Wikimedia Commons | Free/open archival footage, educational media, and documentary texture |\n| **Extra stock** | Pexels + Unsplash + Pixabay | Free stock footage/images (developer keys are free to get) |\n| **Composition (React)** | Remotion | React-based rendering — spring-animated image scenes, text cards, stat cards, charts, TikTok-style word-level captions, TalkingHead |\n| **Composition (HTML/GSAP)** | HyperFrames | HTML/CSS/GSAP rendering — kinetic typography, product promos, launch reels, registry blocks, website-to-video, rigged SVG character animation |\n| **Post-production** | FFmpeg | Encoding, subtitle burn-in, audio mixing, color grading |\n| **Subtitles** | Built-in | Auto-generated captions with word-level timing |\n\nOpenMontage picks between Remotion and HyperFrames at proposal time (locked as `render_runtime`). Remotion is the default for data-driven explainers and anything using the existing React scene stack; HyperFrames is the default for motion-graphics-heavy briefs that express naturally as HTML + GSAP, including the `cha",
    "manifest_file": "requirements.txt",
    "manifest_content": "# OpenMontage - Core Dependencies\npyyaml>=6.0\npydantic>=2.0\njsonschema>=4.20\npython-dotenv>=1.0\nPillow>=10.0\nrequests>=2.31\ngoogle-auth>=2.0       # service-account auth for Google TTS + Imagen (Vertex AI)\n",
    "strategic_keywords": [
      "agent",
      "skill",
      "workflow"
    ],
    "relationship_label": "Skill 来源",
    "data_confidence": "high",
    "evidence_sources": [
      "github_trending",
      "github_repo_api",
      "readme",
      "requirements.txt"
    ],
    "score_breakdown": {
      "heat": 20,
      "relevance": 20,
      "novelty": 15,
      "productize": 14,
      "adoption": 10,
      "relation": 9,
      "risk_signal": 10,
      "total": 98
    },
    "strategic_score": 98
  },
  {
    "owner": "affaan-m",
    "name": "ECC",
    "full_name": "affaan-m/ECC",
    "url": "https://github.com/affaan-m/ECC",
    "description": "The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.",
    "language": "JavaScript",
    "total_stars": 221724,
    "forks": 33946,
    "stars_this_period": 604,
    "source_slice": "javascript",
    "source_slices": [
      "javascript"
    ],
    "metadata": {
      "topics": [
        "ai-agents",
        "anthropic",
        "claude",
        "claude-code",
        "developer-tools",
        "llm",
        "mcp",
        "productivity"
      ],
      "license": "MIT",
      "open_issues": 92,
      "created_at": "2026-01-18T00:51:51Z",
      "pushed_at": "2026-06-22T04:55:54Z",
      "homepage": "https://ecc.tools",
      "default_branch": "main",
      "forks": 33946,
      "watchers": 1123,
      "archived": false,
      "size_kb": 38431
    },
    "readme_content": "**Language:** English | [Português (Brasil)](docs/pt-BR/README.md) | [简体中文](README.zh-CN.md) | [繁體中文](docs/zh-TW/README.md) | [日本語](docs/ja-JP/README.md) | [한국어](docs/ko-KR/README.md) | [Türkçe](docs/tr/README.md) | [Русский](docs/ru/README.md) | [Tiếng Việt](docs/vi-VN/README.md) | [ไทย](docs/th/README.md) | [Deutsch](docs/de-DE/README.md) | [Español](docs/es/README.md)\n\n![ECC — the agent harness operating system](assets/hero.png)\n\n[![Discord](https://img.shields.io/discord/1496644400590094540?logo=discord&logoColor=white&label=Join%20the%20Discord&color=5865F2)](https://discord.gg/36yGMHGFbR)\n[![Website](https://img.shields.io/badge/Website-ecc.tools-E07856?logo=googlechrome&logoColor=white)](https://ecc.tools)\n[![GitHub App](https://img.shields.io/badge/GitHub%20App-ECC%20Tools-181717?logo=github&logoColor=white)](https://github.com/apps/ecc-tools)\n[![Guides](https://img.shields.io/badge/Guides-Start%20here-1f6feb?logo=readme&logoColor=white)](#the-guides)\n\n[![Stars](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.ecc.tools%2Fbadge%2Fstars&style=flat)](https://github.com/affaan-m/ECC/stargazers)\n[![Forks](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.ecc.tools%2Fbadge%2Fforks&style=flat)](https://github.com/affaan-m/ECC/network/members)\n[![Contributors](https://img.shields.io/github/contributors/affaan-m/ECC?style=flat)](https://github.com/affaan-m/ECC/graphs/contributors)\n[![npm ecc-universal](https://img.shields.io/npm/dw/ecc-universal?label=ecc-universal%20weekly%20downloads&logo=npm)](https://www.npmjs.com/package/ecc-universal)\n[![npm ecc-agentshield](https://img.shields.io/npm/dw/ecc-agentshield?label=ecc-agentshield%20weekly%20downloads&logo=npm)](https://www.npmjs.com/package/ecc-agentshield)\n[![GitHub App Install](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.ecc.tools%2Fbadge%2Finstalls&logo=github)](https://github.com/marketplace/ecc-tools)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n![Shell](https://img.shields.io/badge/-Shell-4EAA25?logo=gnu-bash&logoColor=white)\n![TypeScript](https://img.shields.io/badge/-TypeScript-3178C6?logo=typescript&logoColor=white)\n![Python](https://img.shields.io/badge/-Python-3776AB?logo=python&logoColor=white)\n![Go](https://img.shields.io/badge/-Go-00ADD8?logo=go&logoColor=white)\n![Java](https://img.shields.io/badge/-Java-ED8B00?logo=openjdk&logoColor=white)\n![Perl](https://img.shields.io/badge/-Perl-39457E?logo=perl&logoColor=white)\n![Markdown](https://img.shields.io/badge/-Markdown-000000?logo=markdown&logoColor=white)\n\n> [!WARNING]\n> **Official sources only.** Install ECC only from verified channels: the GitHub repository [github.com/affaan-m/ECC](https://github.com/affaan-m/ECC), the npm packages [`ecc-universal`](https://www.npmjs.com/package/ecc-universal) and [`ecc-agentshield`](https://www.npmjs.com/package/ecc-agentshield), the [GitHub App](https://github.com/apps/ecc-tools), the plugin slug `ecc@ecc`, and the project website [ecc.tools](https://ecc.tools). Third-party re-uploads and unofficial mirrors are not maintained or reviewed by the project and may contain malware.\n\n**211.9K+ stars** | **32.5K+ forks** | **230+ contributors** | **12+ language ecosystems** | **Cross-harness agent workflows**\n\n---\n\n<div align=\"center\">\n\n**Language / 语言 / 語言 / Dil / Язык / Ngôn ngữ / Idioma**\n\n[**English**](README.md) | [Português (Brasil)](docs/pt-BR/README.md) | [简体中文](README.zh-CN.md) | [繁體中文](docs/zh-TW/README.md) | [日本語](docs/ja-JP/README.md) | [한국어](docs/ko-KR/README.md)\n | [Türkçe](docs/tr/README.md) | [Русский](docs/ru/README.md) | [Tiếng Việt](docs/vi-VN/README.md) | [ไทย](docs/th/README.md) | [Deutsch](docs/de-DE/README.md) | [Español](docs/es/README.md)\n\n</div>\n\n---\n\n**The harness-native operator system for agentic work. Built from real-world multi-harness engineering workflows.**\n\nNot just configs. A complete system: skills, instincts, memory optimization, continuous learning, security scanning, and research-first development. Production-ready agents, skills, hooks, rules, MCP configurations, and legacy command shims evolved over 10+ months of intensive daily use building real products.\n\nWorks across **Codex**, **Claude Code**, **Cursor**, **OpenCode**, **Gemini**, **Zed**, **GitHub Copilot**, and other AI agent harnesses.\n\nECC v2.0.0 adds the public Hermes operator story on top of that reusable layer: start with the [Hermes setup guide](docs/HERMES-SETUP.md), then review the [2.0.0 release notes](docs/releases/2.0.0/release-notes.md) and [cross-harness architecture](docs/architecture/cross-harness.md).\n\n---\n\n<table>\n<tr>\n<td width=\"25%\" align=\"center\">\n  <a href=\"https://ecc.tools/pricing\">\n    <strong> ECC Pro</strong><br />\n    <sub>Private repos · GitHub App · $19/seat/mo</sub>\n  </a>\n</td>\n<td width=\"25%\" align=\"center\">\n  <a href=\"https://github.com/sponsors/affaan-m\">\n    <strong> Sponsor</strong><br />\n    <sub>Fund the OSS · From $5/mo</sub>\n  </a>\n</td>\n<td width=\"25%\" align=\"center\">\n  <a href=\"https://github.com/affaan-m/ECC/discussions\">\n    <strong>Community</strong>\n    <br />\n    <sub>Discussions · Q&amp;A · Show & Tell</sub>\n  </a>\n</td>\n<td width=\"25%\" align=\"center\">\n  <a href=\"https://github.com/apps/ecc-tools\">\n    <strong> GitHub App</strong><br />\n    <sub>Install · PR audits · Free tier</sub>\n  </a>\n</td>\n</tr>\n</table>\n\n<sub>**OSS stays free.** This repo is MIT-licensed forever. ECC Pro is the hosted GitHub App for private repos. <a href=\"https://github.com/sponsors/affaan-m\">Sponsors</a> and <a href=\"https://ecc.tools/pricing\">Pro subscribers</a> fund the work — that's why a single maintainer ships weekly across 7 harnesses.</sub>\n\n<div align=\"center\">\n\n<sub><strong>Business sponsors</strong></sub>\n\n<table>\n<tr>\n<td align=\"center\" width=\"220\">\n  <a href=\"https://www.coderabbit.ai\">\n    <img src=\"assets/images/sponsors/coderabbit.png\" width=\"96\" alt=\"CodeRabbit logo\" /><br />\n    <strong>CodeRabbit</strong>\n  </a>\n</td>\n<td align=\"center\" width=\"220\">\n  <a href=\"https://www.greptile.com/go/ecc\">\n    <img src=\"assets/images/sponsors/greptile.png\" width=\"96\" alt=\"Greptile logo\" /><br />\n    <strong>Greptile</strong>\n  </a>\n</td>\n<td align=\"center\" width=\"220\">\n  <a href=\"https://www.atlascloud.ai/?utm_source=github&utm_medium=link&utm_campaign=ECC\">\n    <img src=\"assets/images/sponsors/atlascloud.png\" width=\"96\" alt=\"Atlas Cloud logo\" /><br />\n    <strong>Atlas Cloud</strong>\n  </a>\n</td>\n</tr>\n</table>\n\n<sub><strong>Community sponsors:</strong> <a href=\"https://github.com/mikejmorgan-ai\">Mike Morgan</a> · <a href=\"https://github.com/jasonwu513\">@jasonwu513</a> · <a href=\"https://github.com/1anter\">@1anter</a> · <a href=\"https://github.com/massimotodaro\">@massimotodaro</a> · <a href=\"https://github.com/meadmccabe\">@meadmccabe</a></sub>\n\n<sub><a href=\"https://github.com/sponsors/affaan-m\"><strong>Become a Sponsor</strong></a> · <a href=\"SPONSORS.md\">Sponsor Tiers</a> · <a href=\"SPONSORING.md\">Sponsorship Program</a></sub>\n\n</div>\n\n---\n\n## The Guides\n\nThis repo is the raw code only. The guides explain everything.\n\n<table>\n<tr>\n<td width=\"50%\" align=\"center\">\n<a href=\"./the-shortform-guide.md\">\n<img src=\"./assets/images/shortform/00-header.png\" width=\"420\" alt=\"The Shorthand Guide to ECC\" /><br />\n<b>The Shorthand Guide</b>\n</a>\n<br /><sub>Setup, foundations, philosophy. <b>Read this first.</b> (<a href=\"https://x.com/affaan/status/2012378465664745795\">thread</a>)</sub>\n</td>\n<td width=\"50%\" align=\"center\">\n<a href=\"./the-longform-guide.md\">\n<img src=\"./assets/images/longform/01-header.png\" width=\"420\" alt=\"The Longform Guide to ECC\" /><br />\n<b>The Longform Guide</b>\n</a>\n<br /><sub>Token optimization, memory persistence, evals, parallelization. (<a href=\"https://x.com/affaan/status/2014040193557471352\">thread</a>)</sub>\n</td>\n</tr>\n</table>\n\n<div align=\"center\">\n<a href=\"./the-security-guide.md\">\n<img src=\"./assets/images/security/security-guide-header.png\" width=\"420\" alt=\"The Shorthand Guide to Everything Agentic Security\" /><br />\n<b>The Security Guide</b>\n</a>\n<br /><sub>Attack vectors, sandboxing, sanitization, CVEs, AgentShield. (<a href=\"https://x.com/affaan/status/2033263813387223421\">thread</a>)</sub>\n</div>\n\n| Topic | What You'll Learn |\n|-------|-------------------|\n| Token Optimization | Model selection, system prompt slimming, background processes |\n| Memory Persistence | Hooks that save/load context across sessions automatically |\n| Continuous Learning | Auto-extract patterns from sessions into reusable skills |\n| Verification Loops | Checkpoint vs continuous evals, grader types, pass@k metrics |\n| Parallelization | Git worktrees, cascade method, when to scale instances |\n| Subagent Orchestration | The context problem, iterative retrieval pattern |\n\n---\n\n## What's New\n\n### v2.0.0 — The Agent Harness Operating System (Jun 2026)\n\nStable graduation of the 2.0 line: 261 skills, the control-pane substrate (session adapters + MCP inventory), the worktree-lifecycle service, the `orch-*` orchestrator family, and the launch of the [ECC Discord community](https://discord.gg/36yGMHGFbR). Full notes: [docs/releases/2.0.0/release-notes.md](docs/releases/2.0.0/release-notes.md).\n\n### v2.0.0-rc.1 — Surface Refresh, Operator Workflows, and ECC 2.0 Alpha (Apr 2026)\n\n- **Dashboard GUI** — New Tkinter-based desktop application (`ecc_dashboard.py` or `npm run dashboard`) with dark/light theme toggle, font customization, and project logo in header and taskbar.\n- **Public surface synced to the live repo** — metadata, catalog counts, plugin manifests, and install-facing docs now match the actual OSS surface: 66 agents, 268 skills, and 84 legacy command shims.\n- **Operator and outbound workflow expansion** — `brand-voice`, `social-graph-ranker`, `connections-optimizer`, `customer-billing-ops`, `ecc-tools-cost-audit`, `google-workspace-ops`, `project-flow-ops`, and `workspace-surface-audit` round out the operator lane.\n- **Media and launch tooling** — `manim-video`, `remotion-video-creation`, and upgraded social publishing surfaces make technical explainers and launch content part of the same system.\n- **Framework and product surface growth** — `nestjs-patterns`, richer Codex/OpenCode install surfaces, and expanded cross-harness packaging keep the repo usable beyond Claude Code alone.\n- **Itô prediction-market skill pack** — `ito-market-intelligence`, `ito-basket-compare`, `ito-trade-planner`, `ito-data-atlas-agent`, `prediction-market-oracle-research`, and `prediction-market-risk-review` add public, non-advisory market/basket workflows while keeping live Itô API access gated and separate from ECC Tools billing.\n- **Optimization skill pack** — `parallel-execution-optimizer`, `benchmark-optimization-loop`, `data-throughput-accelerator`, `latency-critical-systems`, and `recursive-decision-ledger` turn repeated speed/recursion prompts into bounded benchmark, throughput, and decision-ledger workflows.\n- **ECC 2.0 alpha is in-tree** — the Rust control-plane prototype in `ecc2/` now builds locally and exposes `dashboard`, `start`, `sessions`, `status`, `stop`, `resume`, and `daemon` commands. It is usable as an alpha, not yet a general release.\n- **Operator status snapshots** — `ecc status --markdown --write status.md` turns the local state store into a portable handoff covering readiness, active sessions, skill-run health, install health, pending governance events, and linked work items from Linear/GitHub/handoffs. Use `ecc work-items upsert ...` for manual entries, `ecc work-items sync-github --repo owner/repo` for PR/issue queue state, and `ecc status --exit-code` to fail automation when readiness needs attention.\n- **Ecosystem hardening** — AgentShield, ECC Tools cost controls, billing portal work, and website refreshes continue to ship around the core plugin instead of drifting into separate silos.\n\n### v1.9.0 — Selective Install & Language Expansion (Mar 2026)\n\n- **Selective install architecture** — Manifest-driven install pipeline with `install-plan.js` and",
    "manifest_file": "package.json",
    "manifest_content": "{\n  \"name\": \"ecc-universal\",\n  \"version\": \"2.0.0\",\n  \"description\": \"Harness-native agent operating system for Codex, OpenCode, Cursor, Gemini, Claude Code, and terminal workflows - skills, hooks, rules, MCP conventions, and operator control-plane patterns\",\n  \"publishConfig\": {\n    \"access\": \"public\"\n  },\n  \"keywords\": [\n    \"ai\",\n    \"agents\",\n    \"skills\",\n    \"hooks\",\n    \"mcp\",\n    \"rules\",\n    \"harness\",\n    \"agent-harness\",\n    \"tdd\",\n    \"code-review\",\n    \"security\",\n    \"automation\",\n    \"best-practices\",\n    \"cursor\",\n    \"cursor-ide\",\n    \"opencode\",\n    \"codex\",\n    \"presentations\",\n    \"slides\"\n  ],\n  \"author\": {\n    \"name\": \"Affaan Mustafa\",\n    \"url\": \"https://x.com/affaan\"\n  },\n  \"license\": \"MIT\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/affaan-m/ECC.git\"\n  },\n  \"homepage\": \"https://github.com/affaan-m/ECC#readme\",\n  \"bugs\": {\n    \"url\": \"https://github.com/affaan-m/ECC/issues\"\n  },\n  \"files\": [\n    \".agents/\",\n    \".claude-plugin/\",\n    \".codex/\",\n    \".codex-plugin/\",\n    \".cursor/\",\n    \".gemini/\",\n    \".opencode/\",\n    \".qwen/\",\n    \".zed/\",\n    \".mcp.json\",\n    \"AGENTS.md\",\n    \"VERSION\",\n    \"agent.yaml\",\n    \"assets/ecc-icon.svg\",\n    \"assets/hero.png\",\n    \"agents/\",\n    \"commands/\",\n    \"docs/de-DE/\",\n    \"docs/ja-JP/\",\n    \"docs/ko-KR/\",\n    \"docs/pt-BR/\",\n    \"docs/ru/\",\n    \"docs/tr/\",\n    \"docs/vi-VN/\",\n    \"docs/zh-CN/\",\n    \"docs/zh-TW/\",\n    \"hooks/\",\n    \"install.ps1\",\n    \"install.sh\",\n    \"manifests/\",\n    \"mcp-configs/\",\n    \"plugins/ecc/\",\n    \"rules/\",\n    \"schemas/\",\n    \"scripts/catalog.js\",\n    \"scripts/ci/scan-supply-chain-iocs.js\",\n    \"scripts/ci/supply-chain-advisory-sources.js\",\n    \"scripts/consult.js\",\n    \"scripts/auto-update.js\",\n    \"scripts/claw.js\",\n    \"scripts/control-pane.js\",\n    \"scripts/codex/check-plugin-cache.js\",\n    \"scripts/codex/merge-codex-config.js\",\n    \"scripts/codex/merge-mcp-config.js\",\n    \"scripts/discussion-audit.js\",\n    \"scripts/doctor.js\",\n    \"scripts/ecc.js\",\n    \"scripts/gemini-adapt-agents.js\",\n    \"scripts/harness-adapter-compliance.js\",\n    \"scripts/harness-audit.js\",\n    \"scripts/observability-readiness.js\",\n    \"scripts/operator-readiness-dashboard.js\",\n    \"scripts/platform-audit.js\",\n    \"scripts/preview-pack-smoke.js\",\n    \"scripts/release-approval-gate.js\",\n    \"scripts/release-video-suite.js\",\n    \"scripts/dashboard-web.js\",\n    \"scripts/skills-health.js\",\n    \"scripts/hooks/\",\n    \"scripts/install-apply.js\",\n    \"scripts/install-plan.js\",\n    \"scripts/lib/\",\n    \"scripts/list-installed.js\",\n    \"scripts/loop-status.js\",\n    \"scripts/orchestration-status.js\",\n    \"scripts/orchestrate-codex-worker.sh\",\n    \"scripts/orchestrate-worktrees.js\",\n    \"scripts/repair.js\",\n    \"scripts/session-inspect.js\",\n    \"scripts/sessions-cli.js\",\n    \"scripts/setup-package-manager.js\",\n    \"scripts/skill-create-output.js\",\n    \"scripts/status.js\",\n    \"scripts/work-items.js\",\n    \"scripts/uninstall.js\",\n    \"skills/agent-architecture-audit/\",\n    \"skills/agent-harness-construction/\",\n    \"skills/agent-introspection-debugging/\",\n    \"skills/agent-sort/\",\n    \"skills/agentic-engineering/\",\n    \"skills/agentic-os/\",\n    \"skills/ai-first-engineering/\",\n    \"skills/ai-regression-testing/\",\n    \"skills/android-clean-architecture/\",\n    \"skills/angular-developer/\",\n    \"skills/api-connector-builder/\",\n    \"skills/api-design/\",\n    \"skills/article-writing/\",\n    \"skills/automation-audit-ops/\",\n    \"skills/autonomous-loops/\",\n    \"skills/backend-patterns/\",\n    \"skills/blender-motion-state-inspection/\",\n    \"skills/blueprint/\",\n    \"skills/brand-voice/\",\n    \"skills/carrier-relationship-management/\",\n    \"skills/claude-devfleet/\",\n    \"skills/cisco-ios-patterns/\",\n    \"skills/clickhouse-io/\",\n    \"skills/code-tour/\",\n    \"skills/coding-standards/\",\n    \"skills/compose-multiplatform-patterns/\",\n    \"skills/configure-ecc/\",\n    \"skills/connections-optimizer/\",\n    \"skills/content-engine/\",\n    \"skills/content-hash-cache-pattern/\",\n    \"skills/continuous-agent-loop/\",\n    \"skills/continuous-learning/\",\n    \"skills/continuous-learning-v2/\",\n    \"skills/cost-aware-llm-pipeline/\",\n    \"skills/cost-tracking/\",\n    \"skills/council/\",\n    \"skills/cpp-coding-standards/\",\n    \"skills/cpp-testing/\",\n    \"skills/crosspost/\",\n    \"skills/csharp-testing/\",\n    \"skills/customer-billing-ops/\",\n    \"skills/customs-trade-compliance/\",\n    \"skills/dart-flutter-patterns/\",\n    \"skills/dashboard-builder/\",\n    \"skills/data-throughput-accelerator/\",\n    \"skills/data-scraper-agent/\",\n    \"skills/database-migrations/\",\n    \"skills/deep-research/\",\n    \"skills/defi-amm-security/\",\n    \"skills/deployment-patterns/\",\n    \"skills/django-patterns/\",\n    \"skills/django-security/\",\n    \"skills/django-tdd/\",\n    \"skills/django-verification/\",\n    \"skills/dmux-workflows/\",\n    \"skills/docker-patterns/\",\n    \"skills/dotnet-patterns/\",\n    \"skills/dynamic-workflow-mode/\",\n    \"skills/e2e-testing/\",\n    \"skills/ecc-tools-cost-audit/\",\n    \"skills/ema",
    "strategic_keywords": [
      "agent",
      "agents",
      "memory",
      "mcp",
      "skill",
      "llm",
      "workflow",
      "automation"
    ],
    "relationship_label": "Memory 组件",
    "data_confidence": "high",
    "evidence_sources": [
      "github_trending",
      "github_repo_api",
      "readme",
      "package.json"
    ],
    "score_breakdown": {
      "heat": 19,
      "relevance": 20,
      "novelty": 15,
      "productize": 14,
      "adoption": 10,
      "relation": 10,
      "risk_signal": 8,
      "total": 96
    },
    "strategic_score": 96
  },
  {
    "owner": "googleworkspace",
    "name": "cli",
    "full_name": "googleworkspace/cli",
    "url": "https://github.com/googleworkspace/cli",
    "description": "Google Workspace CLI — one command-line tool for Drive, Gmail, Calendar, Sheets, Docs, Chat, Admin, and more. Dynamically built from Google Discovery Service. Includes AI agent skills.",
    "language": "Rust",
    "total_stars": 28667,
    "forks": 1595,
    "stars_this_period": 459,
    "source_slice": "rust",
    "source_slices": [
      "rust"
    ],
    "metadata": {
      "topics": [
        "agent-skills",
        "ai-agent",
        "automation",
        "cli",
        "discovery-api",
        "gemini-cli-extension",
        "google-admin",
        "google-api",
        "google-calendar",
        "google-chat",
        "google-docs",
        "google-drive",
        "google-sheets",
        "google-workspace",
        "oauth2",
        "rust"
      ],
      "license": "Apache-2.0",
      "open_issues": 122,
      "created_at": "2026-03-02T19:46:06Z",
      "pushed_at": "2026-06-24T20:36:16Z",
      "homepage": "https://developers.google.com/workspace",
      "default_branch": "main",
      "forks": 1595,
      "watchers": 95,
      "archived": false,
      "size_kb": 10749
    },
    "readme_content": "<h1 align=\"center\">gws</h1>\n\n**One CLI for all of Google Workspace — built for humans and AI agents.**<br>\nDrive, Gmail, Calendar, and every Workspace API. Zero boilerplate. Structured JSON output. 40+ agent skills included.\n\n> [!NOTE]\n> This is **not** an officially supported Google product.\n\n<p>\n  <a href=\"https://www.npmjs.com/package/@googleworkspace/cli\"><img src=\"https://img.shields.io/npm/v/@googleworkspace/cli\" alt=\"npm version\"></a>\n  <a href=\"https://github.com/googleworkspace/cli/blob/main/LICENSE\"><img src=\"https://img.shields.io/github/license/googleworkspace/cli\" alt=\"license\"></a>\n  <a href=\"https://github.com/googleworkspace/cli/actions/workflows/ci.yml\"><img src=\"https://img.shields.io/github/actions/workflow/status/googleworkspace/cli/ci.yml?branch=main&label=CI\" alt=\"CI status\"></a>\n  <a href=\"https://www.npmjs.com/package/@googleworkspace/cli\"><img src=\"https://img.shields.io/npm/unpacked-size/@googleworkspace/cli\" alt=\"install size\"></a>\n</p>\n<br>\n\n⬇️ **[Download the latest release for your OS](https://github.com/googleworkspace/cli/releases)**\n\n`gws` doesn't ship a static list of commands. It reads Google's own [Discovery Service](https://developers.google.com/discovery) at runtime and builds its entire command surface dynamically. When Google Workspace adds an API endpoint or method, `gws` picks it up automatically.\n\n> [!IMPORTANT]\n> This project is under active development. Expect breaking changes as we march toward v1.0.\n\n## Contents\n\n- [Prerequisites](#prerequisites)\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [Why gws?](#why-gws)\n- [Authentication](#authentication)\n- [AI Agent Skills](#ai-agent-skills)\n- [Advanced Usage](#advanced-usage)\n- [Environment Variables](#environment-variables)\n- [Exit Codes](#exit-codes)\n- [Architecture](#architecture)\n- [Troubleshooting](#troubleshooting)\n- [Development](#development)\n\n## Prerequisites\n\n- **Node.js 18+** — for `npm install` (or download a pre-built binary from [GitHub Releases](https://github.com/googleworkspace/cli/releases))\n- **A Google Cloud project** — required for OAuth credentials. You can create one via the [Google Cloud Console](https://console.cloud.google.com/) or with the [`gcloud` CLI](https://cloud.google.com/sdk/docs/install) or with the `gws auth setup` command.\n- **A Google account** with access to Google Workspace\n\n## Installation\n\nThe recommended way to install `gws` is to download the pre-built binary for your OS and architecture from the **[GitHub Releases](https://github.com/googleworkspace/cli/releases)** page. Extract the archive and place the `gws` binary in your `$PATH`.\n\nFor convenience, you can also use `npm` to automate downloading the appropriate binary from GitHub Releases:\n\n```bash\nnpm install -g @googleworkspace/cli\n```\n\nOr build from source:\n\n```bash\ncargo install --git https://github.com/googleworkspace/cli --locked\n```\n\nA Nix flake is also available at `github:googleworkspace/cli`\n\n```bash\nnix run github:googleworkspace/cli\n```\n\nOn macOS and Linux, you can also install via [Homebrew](https://brew.sh/):\n\n```bash\nbrew install googleworkspace-cli\n```\n\n## Quick Start\n\n```bash\ngws auth setup     # walks you through Google Cloud project config\ngws auth login     # subsequent OAuth login\ngws drive files list --params '{\"pageSize\": 5}'\n```\n\n## Why gws?\n\n**For humans** — stop writing `curl` calls against REST docs. `gws` gives you `--help` on every resource, `--dry-run` to preview requests, and auto‑pagination.\n\n**For AI agents** — every response is structured JSON. Pair it with the included agent skills and your LLM can manage Workspace without custom tooling.\n\n```bash\n# List the 10 most recent files\ngws drive files list --params '{\"pageSize\": 10}'\n\n# Create a spreadsheet\ngws sheets spreadsheets create --json '{\"properties\": {\"title\": \"Q1 Budget\"}}'\n\n# Send a Chat message\ngws chat spaces messages create \\\n  --params '{\"parent\": \"spaces/xyz\"}' \\\n  --json '{\"text\": \"Deploy complete.\"}' \\\n  --dry-run\n\n# Introspect any method's request/response schema\ngws schema drive.files.list\n\n# Stream paginated results as NDJSON\ngws drive files list --params '{\"pageSize\": 100}' --page-all | jq -r '.files[].name'\n```\n\n## Authentication\n\nThe CLI supports multiple auth workflows so it works on your laptop, in CI, and on a server.\n\n### Which setup should I use?\n\n| I have… | Use |\n|---|---|\n| `gcloud` installed and authenticated | [`gws auth setup`](#interactive-local-desktop) (fastest) |\n| A GCP project but no `gcloud` | [Manual OAuth setup](#manual-oauth-setup-google-cloud-console) |\n| An existing OAuth access token | [`GOOGLE_WORKSPACE_CLI_TOKEN`](#pre-obtained-access-token) |\n| Existing Credentials | [`GOOGLE_WORKSPACE_CLI_CREDENTIALS_FILE`](#service-account-server-to-server) |\n\n### Interactive (local desktop)\n\nCredentials are encrypted at rest (AES-256-GCM) with the key stored in your OS keyring (or `~/.config/gws/.encryption_key` when `GOOGLE_WORKSPACE_CLI_KEYRING_BACKEND=file`).\n\n```bash\ngws auth setup       # one-time: creates a Cloud project, enables APIs, logs you in\ngws auth login       # subsequent scope selection and login\n```\n\n> `gws auth setup` requires the [`gcloud` CLI](https://cloud.google.com/sdk/docs/install). If you don't have `gcloud`, use the [manual setup](#manual-oauth-setup-google-cloud-console) below instead.\n\n> [!WARNING]\n> **Scope limits in testing mode:** If your OAuth app is unverified (testing mode),\n> Google limits consent to ~25 scopes. The `recommended` scope preset includes 85+\n> scopes and **will fail** for unverified apps (especially for `@gmail.com` accounts).\n> Choose individual services instead to filter the scope picker:\n> ```bash\n> gws auth login -s drive,gmail,sheets\n> ```\n\n\n### Manual OAuth setup (Google Cloud Console)\n\nUse this when `gws auth setup` cannot automate project/client creation, or when you want explicit control.\n\n1. Open Google Cloud Console in the target project:\n   - OAuth consent screen: `https://console.cloud.google.com/apis/credentials/consent?project=<PROJECT_ID>`\n   - Credentials: `https://console.cloud.google.com/apis/credentials?project=<PROJECT_ID>`\n2. Configure OAuth branding/audience if prompted:\n   - App type: **External** (testing mode is fine)\n3. Add your account under **Test users**\n4. Create an OAuth client:\n   - Type: **Desktop app**\n5. Download the client JSON and save it to:\n   - `~/.config/gws/client_secret.json`\n\n> [!IMPORTANT]\n> **You must add yourself as a test user.** In the OAuth consent screen, click\n> **Test users → Add users** and enter your Google account email. Without this,\n> login will fail with a generic \"Access blocked\" error.\n\nThen run:\n\n```bash\ngws auth login\n```\n\n### Browser-assisted auth (human or agent)\n\nYou can complete OAuth either manually or with browser automation.\n\n- **Human flow**: run `gws auth login`, open the printed URL, approve scopes.\n- **Agent-assisted flow**: the agent opens the URL, selects account, handles consent prompts, and returns control once the localhost callback succeeds.\n\nIf consent shows **\"Google hasn't verified this app\"** (testing mode), click **Continue**.\nIf scope checkboxes appear, select required scopes (or **Select all**) before continuing.\n\n### Headless / CI (export flow)\n\n1. Complete interactive auth on a machine with a browser.\n2. Export credentials:\n   ```bash\n   gws auth export --unmasked > credentials.json\n   ```\n3. On the headless machine:\n   ```bash\n   export GOOGLE_WORKSPACE_CLI_CREDENTIALS_FILE=/path/to/credentials.json\n   gws drive files list   # just works\n   ```\n\n### Service Account (server-to-server)\n\nPoint to your key file; no login needed.\n\n```bash\nexport GOOGLE_WORKSPACE_CLI_CREDENTIALS_FILE=/path/to/service-account.json\ngws drive files list\n```\n\n### Pre-obtained Access Token\n\nUseful when another tool (e.g. `gcloud`) already mints tokens for your environment.\n\n```bash\nexport GOOGLE_WORKSPACE_CLI_TOKEN=$(gcloud auth print-access-token)\n```\n\n### Precedence\n\n| Priority | Source                 | Set via                                 |\n| -------- | ---------------------- | --------------------------------------- |\n| 1        | Access token           | `GOOGLE_WORKSPACE_CLI_TOKEN`            |\n| 2        | Credentials file       | `GOOGLE_WORKSPACE_CLI_CREDENTIALS_FILE` |\n| 3        | Encrypted credentials  | `gws auth login`                        |\n| 4        | Plaintext credentials  | `~/.config/gws/credentials.json`        |\n\nEnvironment variables can also live in a `.env` file.\n\n## AI Agent Skills\n\nThe repo ships 100+ Agent Skills (`SKILL.md` files) — one for every supported API, plus higher-level helpers for common workflows and 50 curated recipes for Gmail, Drive, Docs, Calendar, and Sheets. See the full [Skills Index](docs/skills.md) for the complete list.\n\n```bash\n# Install all skills at once\nnpx skills add https://github.com/googleworkspace/cli\n\n# Or pick only what you need\nnpx skills add https://github.com/googleworkspace/cli/tree/main/skills/gws-drive\nnpx skills add https://github.com/googleworkspace/cli/tree/main/skills/gws-gmail\n```\n\n<details>\n<summary>OpenClaw setup</summary>\n\n```bash\n# Symlink all skills (stays in sync with repo)\nln -s $(pwd)/skills/gws-* ~/.openclaw/skills/\n\n# Or copy specific skills\ncp -r skills/gws-drive skills/gws-gmail ~/.openclaw/skills/\n```\n\nThe `gws-shared` skill includes an `install` block so OpenClaw auto-installs the CLI via `npm` if `gws` isn't on PATH.\n\n</details>\n\n## Gemini CLI Extension\n\n1. Authenticate the CLI first:\n\n   ```bash\n   gws auth setup\n   ```\n\n2. Install the extension into the Gemini CLI:\n   ```bash\n   gemini extensions install https://github.com/googleworkspace/cli\n   ```\n\nInstalling this extension gives your Gemini CLI agent direct access to all `gws` commands and Google Workspace agent skills. Because `gws` handles its own authentication securely, you simply need to authenticate your terminal once prior to using the agent, and the extension will automatically inherit your credentials.\n\n## Advanced Usage\n\n### Multipart Uploads\n\n```bash\ngws drive files create --json '{\"name\": \"report.pdf\"}' --upload ./report.pdf\n```\n\n### Pagination\n\n| Flag                | Description                                    | Default |\n| ------------------- | ---------------------------------------------- | ------- |\n| `--page-all`        | Auto-paginate, one JSON line per page (NDJSON) | off     |\n| `--page-limit <N>`  | Max pages to fetch                             | 10      |\n| `--page-delay <MS>` | Delay between pages                            | 100 ms  |\n\n### Google Sheets — Shell Escaping\n\nSheets ranges use `!` which bash interprets as history expansion. Always wrap values in **single quotes**:\n\n```bash\n# Read cells A1:C10 from \"Sheet1\"\ngws sheets spreadsheets values get \\\n  --params '{\"spreadsheetId\": \"SPREADSHEET_ID\", \"range\": \"Sheet1!A1:C10\"}'\n\n# Append rows\ngws sheets spreadsheets values append \\\n  --params '{\"spreadsheetId\": \"ID\", \"range\": \"Sheet1!A1\", \"valueInputOption\": \"USER_ENTERED\"}' \\\n  --json '{\"values\": [[\"Name\", \"Score\"], [\"Alice\", 95]]}'\n```\n\n### Helper Commands\n\nSome services ship hand-crafted helper commands alongside the auto-generated Discovery surface. Helper commands are prefixed with `+` so they are visually distinct and never collide with Discovery-generated method names.\n\nTime-aware helpers (`+agenda`, `+standup-report`, `+weekly-digest`, `+meeting-prep`) automatically use your **Google account timezone** (fetched from Calendar Settings API and cached for 24 hours). Override with `--timezone`/`--tz` on `+agenda`, or set the `--timezone` flag for explicit control.\n\nRun `gws <service> --help` to see both Discovery methods and helper commands together.\n\n```bash\ngws gmail --help      # shows +send, +reply, +reply-all, +forward, +triage, +watch …\ngws calendar --help   # shows +insert, +agenda …\ngws drive --help      # shows +upload …\n```\n\n**Full helper reference:**\n\n| Service | Command | Description |\n|---------|---------|-------------|\n| `gmail` | `+send` | Send a",
    "manifest_file": "Cargo.toml",
    "manifest_content": "# Copyright 2026 Google LLC\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n[workspace]\nmembers = [\"crates/google-workspace-cli\", \"crates/google-workspace\"]\nresolver = \"2\"\n\n# The profile that 'cargo dist' will build with\n[profile.dist]\ninherits = \"release\"\nlto = \"thin\"\n",
    "strategic_keywords": [
      "agent",
      "agents",
      "runtime",
      "skill",
      "workspace",
      "llm",
      "workflow",
      "automation"
    ],
    "relationship_label": "Runtime 参考",
    "data_confidence": "high",
    "evidence_sources": [
      "github_trending",
      "github_repo_api",
      "readme",
      "Cargo.toml"
    ],
    "score_breakdown": {
      "heat": 18,
      "relevance": 20,
      "novelty": 15,
      "productize": 14,
      "adoption": 10,
      "relation": 10,
      "risk_signal": 8,
      "total": 95
    },
    "strategic_score": 95
  },
  {
    "owner": "jamiepine",
    "name": "voicebox",
    "full_name": "jamiepine/voicebox",
    "url": "https://github.com/jamiepine/voicebox",
    "description": "The open-source AI voice studio. Clone, dictate, create.",
    "language": "TypeScript",
    "total_stars": 34176,
    "forks": 4114,
    "stars_this_period": 405,
    "source_slice": "typescript",
    "source_slices": [
      "typescript"
    ],
    "metadata": {
      "topics": [
        "ai",
        "cuda",
        "mlx",
        "qwen3-tts",
        "qwen3-tts-ui",
        "voice-ai",
        "voice-clone",
        "whisper"
      ],
      "license": "MIT",
      "open_issues": 485,
      "created_at": "2026-01-25T12:27:03Z",
      "pushed_at": "2026-04-26T20:29:17Z",
      "homepage": "https://voicebox.sh",
      "default_branch": "main",
      "forks": 4114,
      "watchers": 179,
      "archived": false,
      "size_kb": 107737
    },
    "readme_content": "<p align=\"center\">\n  <img src=\".github/assets/icon-dark.webp\" alt=\"Voicebox\" width=\"120\" height=\"120\" />\n</p>\n\n<h1 align=\"center\">Voicebox</h1>\n\n<p align=\"center\">\n  <strong>The open-source AI voice studio.</strong><br/>\n  Clone any voice. Generate speech. Dictate into any app. Talk to agents in voices you own.<br/>\n  The full voice I/O stack, running locally on your machine.\n</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/jamiepine/voicebox/releases\">\n    <img src=\"https://img.shields.io/github/downloads/jamiepine/voicebox/total?style=flat&color=blue\" alt=\"Downloads\" />\n  </a>\n  <a href=\"https://github.com/jamiepine/voicebox/releases/latest\">\n    <img src=\"https://img.shields.io/github/v/release/jamiepine/voicebox?style=flat\" alt=\"Release\" />\n  </a>\n  <a href=\"https://github.com/jamiepine/voicebox/stargazers\">\n    <img src=\"https://img.shields.io/github/stars/jamiepine/voicebox?style=flat\" alt=\"Stars\" />\n  </a>\n  <a href=\"https://github.com/jamiepine/voicebox/blob/main/LICENSE\">\n    <img src=\"https://img.shields.io/github/license/jamiepine/voicebox?style=flat\" alt=\"License\" />\n  </a>\n  <a href=\"https://deepwiki.com/jamiepine/voicebox\">\n    <img src=\"https://img.shields.io/static/v1?label=Ask&message=DeepWiki&color=5B6EF7\" alt=\"Ask DeepWiki\" />\n  </a>\n</p>\n\n<p align=\"center\">\n    <a href=\"https://trendshift.io/repositories/21213\" target=\"_blank\"><img src=\"https://trendshift.io/api/badge/repositories/21213\" alt=\"jamiepine%2Fvoicebox | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"/></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://voicebox.sh\">voicebox.sh</a> •\n  <a href=\"https://docs.voicebox.sh\">Docs</a> •\n  <a href=\"#download\">Download</a> •\n  <a href=\"#features\">Features</a> •\n  <a href=\"#api\">API</a> •\n  <a href=\"docs/content/docs/overview/troubleshooting.mdx\">Troubleshooting</a>\n</p>\n\n<br/>\n\n<p align=\"center\">\n  <a href=\"https://voicebox.sh\">\n    <img src=\"landing/public/assets/app-screenshot-1.webp\" alt=\"Voicebox App Screenshot\" width=\"800\" />\n  </a>\n</p>\n\n<p align=\"center\">\n  <em>Click the image above to watch the demo video on <a href=\"https://voicebox.sh\">voicebox.sh</a></em>\n</p>\n\n<br/>\n\n<p align=\"center\">\n  <img src=\"landing/public/assets/app-screenshot-2.webp\" alt=\"Voicebox Screenshot 2\" width=\"800\" />\n</p>\n\n<p align=\"center\">\n  <img src=\"landing/public/assets/app-screenshot-3.webp\" alt=\"Voicebox Screenshot 3\" width=\"800\" />\n</p>\n\n<br/>\n\n## What is Voicebox?\n\nVoicebox is a **local-first AI voice studio** — a free and open-source alternative to **ElevenLabs** and **WisprFlow** in one app. Clone voices from a few seconds of audio, generate speech in 23 languages across 7 TTS engines, dictate into any text field with a global hotkey, and give any MCP-aware AI agent a voice of your choosing.\n\nThe two cloud incumbents sit on opposite halves of the voice I/O loop — ElevenLabs on output, WisprFlow on input. Voicebox does both, bridges them with a bundled local LLM for refinement and per-profile personas, and runs the whole thing on your machine.\n\n- **Complete privacy** — models, voice data, and captures never leave your machine\n- **7 TTS engines** — Qwen3-TTS, Qwen CustomVoice, LuxTTS, Chatterbox Multilingual, Chatterbox Turbo, HumeAI TADA, and Kokoro\n- **Voice cloning and preset voices** — zero-shot cloning from a reference sample, or 50+ curated preset voices via Kokoro and Qwen CustomVoice\n- **23 languages** — from English to Arabic, Japanese, Hindi, Swahili, and more\n- **Post-processing effects** — pitch shift, reverb, delay, chorus, compression, and filters\n- **Expressive speech** — paralinguistic tags like `[laugh]`, `[sigh]`, `[gasp]` via Chatterbox Turbo; natural-language delivery control via Qwen CustomVoice\n- **Unlimited length** — auto-chunking with crossfade for scripts, articles, and chapters\n- **Stories editor** — multi-track timeline for conversations, podcasts, and narratives\n- **Voice input** — global dictation hotkey with push-to-talk and toggle modes, accessibility-verified auto-paste on macOS, in-app mic on every text field, Whisper-based STT\n- **Agent voice output** — one tool call (`voicebox.speak`) and any MCP-aware agent (Claude Code, Cursor, Cline) speaks to you in a voice you've cloned\n- **Voice personalities** — attach a free-form persona to any voice profile, then Compose, Rewrite, or Respond via a bundled local LLM — agents can invoke the same modes over MCP\n- **API-first** — REST API plus a built-in MCP server for integrating voice I/O into your own apps and agents\n- **Native performance** — built with Tauri (Rust), not Electron\n- **Runs everywhere** — macOS (MLX/Metal), Windows (CUDA), Linux, AMD ROCm, Intel Arc, Docker\n\n---\n\n## Download\n\n| Platform              | Download                                               |\n| --------------------- | ------------------------------------------------------ |\n| macOS (Apple Silicon) | [Download DMG](https://voicebox.sh/download/mac-arm)   |\n| macOS (Intel)         | [Download DMG](https://voicebox.sh/download/mac-intel) |\n| Windows               | [Download MSI](https://voicebox.sh/download/windows)   |\n| Docker                | `docker compose up`                                    |\n\n> **[View all binaries →](https://github.com/jamiepine/voicebox/releases/latest)**\n\n> **Linux** — Pre-built binaries are not yet available. See [voicebox.sh/linux-install](https://voicebox.sh/linux-install) for build-from-source instructions.\n\n> **Having trouble?** See the [Troubleshooting Guide](docs/content/docs/overview/troubleshooting.mdx) for common install, generation, model-download, and GPU issues.\n\n---\n\n## Features\n\n### Multi-Engine Voice Cloning\n\nSeven TTS engines with different strengths, switchable per-generation:\n\n| Engine                      | Languages | Strengths                                                                                                                                |\n| --------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------- |\n| **Qwen3-TTS** (0.6B / 1.7B) | 10        | High-quality multilingual cloning, delivery instructions (\"speak slowly\", \"whisper\")                                                     |\n| **Qwen CustomVoice**        | 10        | 9 curated preset voices with natural-language delivery control — no reference audio required                                             |\n| **LuxTTS**                  | English   | Lightweight (~1GB VRAM), 48kHz output, 150x realtime on CPU                                                                              |\n| **Chatterbox Multilingual** | 23        | Broadest language coverage — Arabic, Danish, Finnish, Greek, Hebrew, Hindi, Malay, Norwegian, Polish, Swahili, Swedish, Turkish and more |\n| **Chatterbox Turbo**        | English   | Fast 350M model with paralinguistic emotion/sound tags                                                                                   |\n| **TADA** (1B / 3B)          | 10        | HumeAI speech-language model — 700s+ coherent audio, text-acoustic dual alignment                                                        |\n| **Kokoro**                  | 8         | 50 curated preset voices, tiny 82M model, fast CPU inference                                                                             |\n\n### Emotions & Paralinguistic Tags\n\nOnly **Chatterbox Turbo** interprets paralinguistic tags like `[laugh]` and\n`[sigh]`. Qwen3-TTS, LuxTTS, Chatterbox Multilingual, and HumeAI TADA read them\nliterally as text.\n\nWith **Chatterbox Turbo** selected, type `/` in the text input to open the tag\ninserter and add expressive tags inline with speech:\n\n`[laugh]` `[chuckle]` `[gasp]` `[cough]` `[sigh]` `[groan]` `[sniff]` `[shush]` `[clear throat]`\n\n### Post-Processing Effects\n\n8 audio effects powered by Spotify's `pedalboard` library. Apply after generation, preview in real time, build reusable presets.\n\n| Effect           | Description                                   |\n| ---------------- | --------------------------------------------- |\n| Pitch Shift      | Up or down by up to 12 semitones              |\n| Reverb           | Configurable room size, damping, wet/dry mix  |\n| Delay            | Echo with adjustable time, feedback, and mix  |\n| Chorus / Flanger | Modulated delay for metallic or lush textures |\n| Compressor       | Dynamic range compression                     |\n| Gain             | Volume adjustment (-40 to +40 dB)             |\n| High-Pass Filter | Remove low frequencies                        |\n| Low-Pass Filter  | Remove high frequencies                       |\n\nShips with 4 built-in presets (Robotic, Radio, Echo Chamber, Deep Voice) and supports custom presets. Effects can be assigned per-profile as defaults.\n\n### Unlimited Generation Length\n\nText is automatically split at sentence boundaries and each chunk is generated independently, then crossfaded together. Works with all engines.\n\n- Configurable auto-chunking limit (100–5,000 chars)\n- Crossfade slider (0–200ms) for smooth transitions\n- Max text length: 50,000 characters\n- Smart splitting respects abbreviations, CJK punctuation, and `[tags]`\n\n### Generation Versions\n\nEvery generation supports multiple versions with provenance tracking:\n\n- **Original** — clean TTS output, always preserved\n- **Effects versions** — apply different effects chains from any source version\n- **Takes** — regenerate with a new seed for variation\n- **Source tracking** — each version records its lineage\n- **Favorites** — star generations for quick access\n\n### Async Generation Queue\n\nGeneration is non-blocking. Submit and immediately start typing the next one.\n\n- Serial execution queue prevents GPU contention\n- Real-time SSE status streaming\n- Failed generations can be retried\n- Stale generations from crashes auto-recover on startup\n\n### Voice Profile Management\n\n- Create profiles from audio files or record directly in-app\n- Import/export profiles to share or back up\n- Multi-sample support for higher quality cloning\n- Per-profile default effects chains\n- Organize with descriptions and language tags\n\n### Stories Editor\n\nMulti-voice timeline editor for conversations, podcasts, and narratives.\n\n- Multi-track composition with drag-and-drop\n- Inline audio trimming and splitting\n- Auto-playback with synchronized playhead\n- Version pinning per track clip\n\n### Global Dictation & Voice Input\n\nThe other half of the voice I/O loop. Hold a hotkey anywhere on your system, speak, release — on macOS the transcript pastes straight into the focused text field. Or hit the mic on any Voicebox text input and dictate directly into the app.\n\n- **Configurable chord bindings** — hold-to-speak and tap-to-toggle chords, each rebindable in the in-app chord picker. Holding push-to-talk and tapping `Space` mid-hold upgrades into a toggle session without a gap in audio\n- **Target-aware paste (macOS)** — accessibility-verified injection into the focused text field, with atomic clipboard save/restore so your clipboard isn't clobbered\n- **First-run permissions UX** — in-app gates walk you through the macOS Accessibility and Input Monitoring grants with deep-links to System Settings\n- **In-app mic button** on every Voicebox text field — generation form, profile descriptions, story titles, anywhere you'd type\n- **LLM refinement** — optional cleanup of ums, stutters, and false starts before paste\n- **On-screen pill** — floating overlay surfacing `recording`, `transcribing`, `refining`, and `speaking` states. Same pill agents use when they speak to you, so there's one mental model for both directions of the loop\n\n### Speech-to-Text\n\nVoicebox runs OpenAI Whisper for transcription — the same model that backs dictation, the Captures tab, and the `/transcribe` API. Running on MLX (Apple Silicon) or PyTorch (CUDA / ROCm / DirectML / CPU) depending on your platform.\n\n| Size                          | Notes                                            ",
    "manifest_file": "package.json",
    "manifest_content": "{\n  \"name\": \"voicebox\",\n  \"version\": \"0.5.0\",\n  \"private\": true,\n  \"workspaces\": [\n    \"app\",\n    \"tauri\",\n    \"web\",\n    \"landing\"\n  ],\n  \"scripts\": {\n    \"dev\": \"bun run setup:dev && cd tauri && bun run tauri dev\",\n    \"dev:web\": \"cd web && bun run dev\",\n    \"dev:landing\": \"cd landing && bun run dev\",\n    \"dev:server\": \"uvicorn backend.main:app --reload --port 17493\",\n    \"setup:dev\": \"bun run scripts/setup-dev-sidecar.js\",\n    \"build\": \"./scripts/build-server.sh && cd tauri && bun run tauri build\",\n    \"build:web\": \"cd web && bun run build\",\n    \"build:landing\": \"cd landing && bun run build\",\n    \"build:release\": \"./scripts/prepare-release.sh\",\n    \"generate:api\": \"./scripts/generate-api.sh\",\n    \"generate:keys\": \"cd tauri && bun tauri signer generate -w ~/.tauri/voicebox.key\",\n    \"build:server\": \"./scripts/build-server.sh\",\n    \"update:icons\": \"./scripts/update-icons.sh\",\n    \"convert:assets\": \"./scripts/convert-assets.sh\",\n    \"lint\": \"biome lint .\",\n    \"typecheck\": \"bunx tsc -p app/tsconfig.json --noEmit && cd web && bunx tsc --noEmit\",\n    \"lint:fix\": \"biome lint --write .\",\n    \"format\": \"biome format --write .\",\n    \"format:check\": \"biome format .\",\n    \"check\": \"biome check .\",\n    \"check:fix\": \"biome check --write .\",\n    \"ci\": \"bun run typecheck && bun run build:web\"\n  },\n  \"devDependencies\": {\n    \"@biomejs/biome\": \"2.3.12\",\n    \"@types/node\": \"^20.0.0\",\n    \"tailwindcss\": \"^4.1.18\",\n    \"typescript\": \"^5.6.0\"\n  },\n  \"engines\": {\n    \"bun\": \">=1.0.0\"\n  },\n  \"packageManager\": \"bun@1.3.8\",\n  \"dependencies\": {\n    \"loaders.css\": \"^0.1.2\",\n    \"react-loaders\": \"^3.0.1\"\n  }\n}\n",
    "strategic_keywords": [
      "agent",
      "agents",
      "mcp",
      "workspace",
      "llm"
    ],
    "relationship_label": "Workspace 组件",
    "data_confidence": "high",
    "evidence_sources": [
      "github_trending",
      "github_repo_api",
      "readme",
      "package.json"
    ],
    "score_breakdown": {
      "heat": 18,
      "relevance": 20,
      "novelty": 15,
      "productize": 14,
      "adoption": 10,
      "relation": 10,
      "risk_signal": 8,
      "total": 95
    },
    "strategic_score": 95
  },
  {
    "owner": "farion1231",
    "name": "cc-switch",
    "full_name": "farion1231/cc-switch",
    "url": "https://github.com/farion1231/cc-switch",
    "description": "A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Gemini CLI & Hermes Agent. Only official website: ccswitch.io",
    "language": "Rust",
    "total_stars": 108450,
    "forks": 7164,
    "stars_this_period": 736,
    "source_slice": "rust",
    "source_slices": [
      "rust"
    ],
    "metadata": {
      "topics": [
        "ai-tools",
        "claude-code",
        "codex",
        "desktop-app",
        "hermes",
        "hermes-agent",
        "mcp",
        "minimax",
        "omo",
        "open-source",
        "openclaw",
        "openclaw-ui",
        "opencode",
        "provider-management",
        "rust",
        "skills",
        "skills-management",
        "tauri",
        "typescript",
        "wsl-support"
      ],
      "license": "MIT",
      "open_issues": 1613,
      "created_at": "2025-08-04T14:16:16Z",
      "pushed_at": "2026-06-25T19:08:51Z",
      "homepage": "https://ccswitch.io",
      "default_branch": "main",
      "forks": 7164,
      "watchers": 183,
      "archived": false,
      "size_kb": 55249
    },
    "readme_content": "<div align=\"center\">\n\n# CC Switch\n\n### The All-in-One Manager for Claude Code, Claude Desktop, Codex, Gemini CLI, OpenCode, OpenClaw & Hermes Agent\n\n[![Version](https://img.shields.io/github/v/release/farion1231/cc-switch?color=blue&label=version)](https://github.com/farion1231/cc-switch/releases)\n[![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey.svg)](https://github.com/farion1231/cc-switch/releases)\n[![Built with Tauri](https://img.shields.io/badge/built%20with-Tauri%202-orange.svg)](https://tauri.app/)\n[![Downloads](https://img.shields.io/github/downloads/farion1231/cc-switch/total)](https://github.com/farion1231/cc-switch/releases/latest)\n\n<a href=\"https://trendshift.io/repositories/15372\" target=\"_blank\"><img src=\"https://trendshift.io/api/badge/repositories/15372\" alt=\"farion1231%2Fcc-switch | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"/></a>\n\n### 🌐 The Only Official Website: **[ccswitch.io](https://ccswitch.io)**\n\nEnglish | [中文](README_ZH.md) | [日本語](README_JA.md) | [Deutsch](README_DE.md) | [Changelog](CHANGELOG.md)\n\n</div>\n\n## ❤️Sponsor\n\n> [Want to appear here?](mailto:farion1231@gmail.com)\n\n<details open>\n<summary>Click to collapse</summary>\n\n[![Kimi K2.6](https://kimi-file.moonshot.cn/prod-chat-kimi/kfs/4/2/2026-06-08/1d8j61pt3v89kkekm5mbg)](https://platform.moonshot.cn/console?aff=cc-switch)\n\nKimi K2.6 is an open-source, native multimodal agentic model from Moonshot AI, built for long-horizon coding, coding-driven design, and swarm-based task orchestration. It is designed to handle complex end-to-end engineering work across front-end, DevOps, performance optimization, and full-stack workflows, while coordinating large groups of specialized agents to plan, implement, test, and iterate on real coding tasks. **[Click here to start using Kimi](https://platform.moonshot.cn/console?aff=cc-switch)**\n\n---\n\n<table>\n<tr>\n<td width=\"180\"><a href=\"https://www.packyapi.com/register?aff=cc-switch\"><img src=\"assets/partners/logos/packycode.png\" alt=\"PackyCode\" width=\"150\"></a></td>\n<td>Thanks to PackyCode for sponsoring this project! PackyCode is a reliable and efficient API relay service provider, offering relay services for Claude Code, Codex, Gemini, and more. PackyCode provides special discounts for our software users: register using <a href=\"https://www.packyapi.com/register?aff=cc-switch\">this link</a> and enter the \"cc-switch\" promo code during first recharge to get 10% off.</td>\n</tr>\n\n<tr>\n<td width=\"180\"><a href=\"https://aigocode.com/invite/CC-SWITCH\"><img src=\"assets/partners/logos/aigocode.png\" alt=\"AIGoCode\" width=\"150\"></a></td>\n<td>Thanks to AIGoCode for sponsoring this project! AIGoCode is an all-in-one platform that integrates Claude Code, Codex, and the latest Gemini models, providing you with stable, efficient, and highly cost-effective AI coding services. The platform offers flexible subscription plans, zero risk of account suspension, direct access with no VPN required, and lightning-fast responses. AIGoCode has prepared a special benefit for CC Switch users: if you register via <a href=\"https://aigocode.com/invite/CC-SWITCH\">this link</a>, you'll receive an extra 10% bonus credit on your first top-up!</td>\n</tr>\n\n<tr>\n<td width=\"180\"><a href=\"https://www.aicodemirror.com/register?invitecode=9915W3\"><img src=\"assets/partners/logos/aicodemirror.jpg\" alt=\"AICodeMirror\" width=\"150\"></a></td>\n<td>Thanks to AICodeMirror for sponsoring this project! AICodeMirror provides official high-stability relay services for Claude Code / Codex / Gemini CLI, with enterprise-grade concurrency, fast invoicing, and 24/7 dedicated technical support.\nClaude Code / Codex / Gemini official channels at 38% / 2% / 9% of original price, with extra discounts on top-ups! AICodeMirror offers special benefits for CC Switch users: register via <a href=\"https://www.aicodemirror.com/register?invitecode=9915W3\">this link</a> to enjoy 20% off your first top-up, and enterprise customers can get up to 25% off!</td>\n</tr>\n\n<tr>\n<td width=\"180\"><a href=\"https://www.shengsuanyun.com/?from=CH_4HHXMRYF\"><img src=\"assets/partners/logos/shengsuanyun.png\" alt=\"Shengsuanyun\" width=\"150\"></a></td>\n<td>Thanks to Shengsuanyun for sponsoring this project! Shengsuanyun is a super factory serving AI Native Teams — an industrial-grade AI task parallel execution platform. Its model marketplace aggregates Claude, ChatGPT, Gemini, and other domestic and international LLM and multimedia model capabilities with direct supply. Absolutely no reverse engineering or dilution — platform-wide model SLA availability reaches 99.7%, with <a href=\"https://watch.shengsuanyun.com/status/shengsuanyun\">monitoring dashboards</a> showing green across the board. It also offers enterprise-grade custom gateways for fine-grained team cost and permission management, smart routing, security protection, and BYOK (Bring Your Own Key) hosting. The platform charges on a pay-per-use and tokens plan (coming soon) basis, with invoicing available. Register via <a href=\"https://www.shengsuanyun.com/?from=CH_4HHXMRYF\">this link</a> as a new user to receive ¥10 in credits plus a 10% bonus on your first top-up.</td>\n</tr>\n\n<tr>\n<td width=\"180\"><a href=\"https://pateway.ai/?ch=etzpm8&aff=WB6M6F67#/\"><img src=\"assets/partners/logos/pateway.png\" alt=\"PatewayAI\" width=\"150\"></a></td>\n<td>Thanks to PatewayAI for sponsoring this project! PatewayAI is an API relay service provider built for heavy AI developers, focused on directly relaying official high-quality model APIs. It offers the full Claude lineup and the Codex series, 100% sourced from official channels — no dilution, no fakes, verification welcome. Billing is transparent and every token-level invoice can be audited line by line.\nIt also supports enterprise-grade concurrency and provides a dedicated management platform for enterprise customers — formal contracts and invoicing are available; visit the official website for contact details.\nRegister now via <a href=\"https://pateway.ai/?ch=etzpm8&aff=WB6M6F67#/\">this link</a> to receive $3 in trial credit. Top-ups go as low as 60% of the original price, with a two-way referral bonus of up to $150!</td>\n</tr>\n\n<tr>\n<td width=\"180\"><a href=\"https://www.byteplus.com/en/product/modelark?utm_campaign=hw&utm_content=ccswitch&utm_medium=devrel_tool_web&utm_source=OWO&utm_term=ccswitch\"><img src=\"assets/partners/logos/byteplus.png\" alt=\"BytePlus\" width=\"150\"></a></td>\n<td>Thanks to Dola seed for sponsoring this project! Dola Seed 2.0 is a full‑modal general large model independently developed by ByteDance for the global market. Built on a unified multimodal architecture, it supports joint understanding and generation of text, images, audio, and video. It natively enables agent collaboration, with strong reasoning, long‑task execution, tool integration, and coding capabilities. It is widely applicable to smart cockpits, personal assistants, education, customer support, marketing, retail, and other scenarios. It excels in multimodal perception, end‑to‑end complex task delivery, stable interaction, and data security, and is readily accessible and deployable via the ModelArk platform.Register via <a href=\"https://www.byteplus.com/en/product/modelark?utm_campaign=hw&utm_content=ccswitch&utm_medium=devrel_tool_web&utm_source=OWO&utm_term=ccswitch\">this link</a> to get 500,000 tokens of free inference quota per model.<a href=\"https://www.volcengine.com/activity/ai618?utm_campaign=hw&utm_content=hw&utm_medium=devrel_tool_web&utm_source=OWO&utm_term=ccswitch\"> >>中国大陆地区的开发者请点击这里</a></td>\n</tr>\n\n<tr>\n<td width=\"180\"><a href=\"https://cloud.siliconflow.cn/i/drGuwc9k\"><img src=\"assets/partners/logos/silicon_en.jpg\" alt=\"SiliconFlow\" width=\"150\"></a></td>\n<td>Thanks to SiliconFlow for sponsoring this project! SiliconFlow is a high-performance AI infrastructure and model API platform, providing fast and reliable access to language, speech, image, and video models in one place. With pay-as-you-go billing, broad multimodal model support, high-speed inference, and enterprise-grade stability, SiliconFlow helps developers and teams build and scale AI applications more efficiently. Register via <a href=\"https://cloud.siliconflow.cn/i/drGuwc9k\">this link</a> and complete real-name verification to receive ¥16 in bonus credit, usable across models on the platform. SiliconFlow is also now compatible with OpenClaw, allowing users to connect a SiliconFlow API key and call major AI models for free.</td>\n</tr>\n\n<tr>\n<td width=\"180\"><a href=\"https://cubence.com/signup?code=CCSWITCH&source=ccs\"><img src=\"assets/partners/logos/cubence.png\" alt=\"Cubence\" width=\"150\"></a></td>\n<td>Thanks to Cubence for sponsoring this project! Cubence is a reliable and efficient API relay service provider, offering relay services for Claude Code, Codex, Gemini, and more with flexible billing options including pay-as-you-go and monthly plans. Cubence provides special discounts for CC Switch users: register using <a href=\"https://cubence.com/signup?code=CCSWITCH&source=ccs\">this link</a> and enter the \"CCSWITCH\" promo code during recharge to get 10% off every top-up!</td>\n</tr>\n\n<tr>\n<td width=\"180\"><a href=\"https://www.dmxapi.cn/register?aff=bUHu\"><img src=\"assets/partners/logos/dmx-en.jpg\" alt=\"DMXAPI\" width=\"150\"></a></td>\n<td>Thanks to DMXAPI for sponsoring this project! DMXAPI provides global large model API services to 200+ enterprise users. One API key for all global models. Features include: instant invoicing, unlimited concurrency, starting from $0.15, 24/7 technical support. GPT/Claude/Gemini all at 32% off, domestic models 20-50% off, Claude Code exclusive models at 66% off! <a href=\"https://www.dmxapi.cn/register?aff=bUHu\">Register here</a></td>\n</tr>\n\n<tr>\n<td width=\"180\"><a href=\"https://www.compshare.cn/coding-plan?ytag=GPU_YY_YX_git_cc-switch\"><img src=\"assets/partners/logos/ucloud.png\" alt=\"Compshare\" width=\"150\"></a></td>\n<td>Thanks to Compshare for sponsoring this project! Compshare is UCloud's AI cloud platform, providing stable and comprehensive domestic and international model APIs with just one key. Featuring cost-effective monthly and per-use domestic-model Coding Plan packages, alongside stable officially-relayed overseas models. Supports Claude Code, Codex, and API access. Enterprise-grade high concurrency, 24/7 technical support, and self-service invoicing. Users who register via <a href=\"https://www.compshare.cn/coding-plan?ytag=GPU_YY_YX_git_cc-switch\">this link</a> will receive a free 5 CNY platform trial credit!</td>\n</tr>\n\n<tr>\n<td width=\"180\"><a href=\"https://crazyrouter.com/register?aff=OZcm&ref=cc-switch\"><img src=\"assets/partners/logos/crazyrouter.png\" alt=\"Crazyrouter\" width=\"150\"></a></td>\n<td>Thanks to Crazyrouter for sponsoring this project! Crazyrouter is a high-performance AI API aggregation platform — one API key for 300+ models including Claude Code, Codex, Gemini CLI, and more. All models at 55% of official pricing with auto-failover, smart routing, and unlimited concurrency. Crazyrouter offers an exclusive deal for CC Switch users: register via <a href=\"https://crazyrouter.com/register?aff=OZcm&ref=cc-switch\">this link</a> and contact customer support to claim <strong>$2 free credit</strong>, plus enter promo code `CCSWITCH` on your first top-up for an extra <strong>30% bonus credit</strong>! </td>\n</tr>\n\n<tr>\n<td width=\"180\"><a href=\"https://www.right.codes/register?aff=CCSWITCH\"><img src=\"assets/partners/logos/rightcode.jpg\" alt=\"RightCode\" width=\"150\"></a></td>\n<td>Thank you to Right Code for sponsoring this project! Right Code reliably provides routing services for models such as Claude Code, Codex, and Gemini, with both pay-as-you-go and monthly subscription billing options available. Invoices are available upon top-up, and enterprise and team users can receive dedicated one-on-one support. Right Code also offers an exclusive discount for CC Switch users: register via <a href=\"https:/",
    "strategic_keywords": [
      "agent",
      "agents",
      "mcp",
      "skill",
      "workflow"
    ],
    "relationship_label": "Skill 来源",
    "data_confidence": "high",
    "evidence_sources": [
      "github_trending",
      "github_repo_api",
      "readme"
    ],
    "score_breakdown": {
      "heat": 19,
      "relevance": 20,
      "novelty": 15,
      "productize": 14,
      "adoption": 8,
      "relation": 10,
      "risk_signal": 8,
      "total": 94
    },
    "strategic_score": 94
  },
  {
    "owner": "mukul975",
    "name": "Anthropic-Cybersecurity-Skills",
    "full_name": "mukul975/Anthropic-Cybersecurity-Skills",
    "url": "https://github.com/mukul975/Anthropic-Cybersecurity-Skills",
    "description": "817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF & MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI & 20+ platforms · 29 security domains · Apache 2.0",
    "language": "Python",
    "total_stars": 21152,
    "forks": 2438,
    "stars_this_period": 600,
    "source_slice": "all",
    "source_slices": [
      "all",
      "python"
    ],
    "metadata": {
      "topics": [
        "ai-agents",
        "claude-code",
        "cloud-security",
        "cybersecurity",
        "devsecops",
        "ethical-hacking",
        "incident-response",
        "infosec",
        "llm",
        "malware-analysis",
        "mcp",
        "mitre-attack",
        "nist-csf",
        "osint",
        "penetration-testing",
        "red-team",
        "security",
        "security-automation",
        "threat-hunting",
        "threat-intelligence"
      ],
      "license": "Apache-2.0",
      "open_issues": 31,
      "created_at": "2026-02-25T09:47:50Z",
      "pushed_at": "2026-06-22T17:11:47Z",
      "homepage": "https://mahipal.engineer/Anthropic-Cybersecurity-Skills/",
      "default_branch": "main",
      "forks": 2438,
      "watchers": 145,
      "archived": false,
      "size_kb": 9977
    },
    "readme_content": "<p align=\"center\">\n  <img src=\"assets/banner.png\" alt=\"Anthropic Cybersecurity Skills\" width=\"100%\">\n</p>\n\n<div align=\"center\">\n\n#  Anthropic Cybersecurity Skills\n\n### The largest open-source cybersecurity skills library for AI agents\n\n[![GARS-2026 Survey](https://img.shields.io/badge/GARS--2026-Take%20the%20Survey-E8B84B?style=for-the-badge&logo=googleforms&logoColor=black)](https://mahipal.engineer/survey?utm_source=github_badge&utm_medium=readme&utm_campaign=gars2026)\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg?style=flat-square)](LICENSE)\n[![Skills](https://img.shields.io/badge/skills-817-brightgreen?style=flat-square)](#whats-inside--29-security-domains)\n[![Frameworks](https://img.shields.io/badge/frameworks-6-orange?style=flat-square)](#six-frameworks-one-skill-library)\n[![MITRE F3](https://img.shields.io/badge/MITRE-F3_v1.1-blue?style=flat-square)](https://ctid.mitre.org/fraud/)\n[![Domains](https://img.shields.io/badge/domains-29-9cf?style=flat-square)](#whats-inside--29-security-domains)\n[![Platforms](https://img.shields.io/badge/platforms-26%2B-blueviolet?style=flat-square)](#compatible-platforms)\n[![GitHub stars](https://img.shields.io/github/stars/mukul975/Anthropic-Cybersecurity-Skills?style=flat-square)](https://github.com/mukul975/Anthropic-Cybersecurity-Skills/stargazers)\n[![GitHub forks](https://img.shields.io/github/forks/mukul975/Anthropic-Cybersecurity-Skills?style=flat-square)](https://github.com/mukul975/Anthropic-Cybersecurity-Skills/network/members)\n[![Last Commit](https://img.shields.io/github/last-commit/mukul975/Anthropic-Cybersecurity-Skills?style=flat-square)](https://github.com/mukul975/Anthropic-Cybersecurity-Skills/commits/main)\n[![agentskills.io](https://img.shields.io/badge/standard-agentskills.io-ff6600?style=flat-square)](https://agentskills.io)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](CONTRIBUTING.md)\n[![Playground](https://img.shields.io/badge/Playground-Casky.ai-blue)](https://casky.ai/?utm_source=github&utm_medium=readme&utm_campaign=cohort_launch#waitlist)\n[![Hermes Agent](https://img.shields.io/badge/Hermes_Agent-compatible-blueviolet?style=flat)](https://github.com/NousResearch/hermes-agent)\n\n\n**817 production-grade cybersecurity skills · 29 security domains · 6 framework mappings · 26+ AI platforms**\n\n[Get Started](#quick-start) · [What's Inside](#whats-inside--29-security-domains) · [Frameworks](#five-frameworks-one-skill-library) · [Platforms](#compatible-platforms) · [Contributing](#contributing)\n\n</div>\n\n---\n\n> ⚠️ **Community Project** — This is an independent, community-created project. Not affiliated with Anthropic PBC. \n\n## Give any AI agent the security skills of a senior analyst\n\nA junior analyst knows which Volatility3 plugin to run on a suspicious memory dump, which Sigma rules catch Kerberoasting, and how to scope a cloud breach across three providers. **Your AI agent doesn't — unless you give it these skills.**\n\nThis repo contains **817 structured cybersecurity skills** spanning **29 security domains**, each following the [agentskills.io](https://agentskills.io) open standard.  Every skill is mapped to **six industry frameworks** — MITRE ATT&CK, NIST CSF 2.0, MITRE ATLAS, MITRE D3FEND, NIST AI RMF, and the MITRE Fight Fraud Framework (F3) — making this the only open-source skills library with unified cross-framework coverage.  Clone it, point your agent at it, and your next security investigation gets expert-level guidance in seconds.\n\n## Six frameworks, one skill library\n\nNo other open-source skills library maps every skill to all of these frameworks.  One skill, six compliance checkboxes. \n\n| Framework | Version | Scope in this repo | What it maps |\n|---|---|---|---|\n| [MITRE ATT&CK](https://attack.mitre.org) | v19.1 | 15 tactics · 286 techniques | Adversary behaviors and TTPs |\n| [NIST CSF 2.0](https://www.nist.gov/cyberframework) | 2.0 | 6 functions · 22 categories | Organizational security posture |\n| [MITRE ATLAS](https://atlas.mitre.org) | v5.4 | 16 tactics · 84 techniques | AI/ML adversarial threats |\n| [MITRE D3FEND](https://d3fend.mitre.org) | v1.3 | 7 categories · 267 techniques | Defensive countermeasures |\n| [NIST AI RMF](https://airc.nist.gov/AI_RMF) | 1.0 | 4 functions · 72 subcategories | AI risk management |\n| [MITRE F3 (Fight Fraud Framework)](https://ctid.mitre.org/fraud/) | v1.1 (2026-04-09) | 8 tactics · 123 techniques · 94 fraud-relevant skills | Cyber-enabled financial fraud TTPs |\n\n**Example — a single skill maps across all six:**\n\n| Skill | ATT&CK | NIST CSF | ATLAS | D3FEND | AI RMF | F3 |\n|---|---|---|---|---|---|---|\n| `analyzing-network-traffic-of-malware` | T1071 | DE.CM | AML.T0047 | D3-NTA | MEASURE-2.6 | — |\n| `detecting-business-email-compromise` | T1566 | DE.AE | — | — | — | F1005.006 · monetization |\n\n### 🆕 MITRE Fight Fraud Framework (F3) — 94 fraud-relevant skills\n\n[![MITRE F3](https://img.shields.io/badge/MITRE-F3_v1.1-blue?style=flat-square)](https://ctid.mitre.org/fraud/)\n\nThe **[MITRE Fight Fraud Framework (F3)](https://ctid.mitre.org/fraud/)** was released **April 9, 2026** by MITRE's Center for Threat-Informed Defense (CTID), co-developed with JPMorganChase, Citigroup, Lloyds Banking Group, Standard Chartered, CrowdStrike, Verizon Business, FS-ISAC, and others. It is an ATT&CK-compatible TTP catalog for **cyber-enabled financial fraud** — filling the gap ATT&CK leaves after initial compromise.\n\nF3 v1.1 adds **two fraud-specific tactics** that ATT&CK does not enumerate:\n- **Positioning** (`FA0001`) — actions taken after access to collect/manipulate data and prepare the fraud (synthetic-identity seeding, account warming, beneficiary setup, SIM-swap pre-positioning, banking-session hijack).\n- **Monetization** (`FA0002`) — converting stolen assets into usable funds (money-mule layering, APP fraud, crypto off-ramping, card cash-out, refund/chargeback abuse).\n\nFraud-specific techniques use `F1XXX` IDs (e.g. `F1005.003` Add Beneficiary, `F1025.003` Wire Transfer, `F1007` Adversary-in-the-Browser); reused ATT&CK techniques keep their `T1XXX` IDs. Mappings live in each skill's `mitre_f3:` frontmatter block — all 123 F3 v1.1 technique IDs were verified against the upstream STIX bundle. See [`docs/mitre-f3-mapping.md`](docs/mitre-f3-mapping.md) for the schema.\n\n### MITRE ATT&CK v19.1 — 754/754 skills mapped\n\nEvery skill carries a `mitre_attack` frontmatter list validated against **MITRE ATT&CK v19.1** (the latest release) using the official `mitreattack-python` library — 286 distinct techniques across all 15 Enterprise tactics, plus ICS and Mobile techniques where relevant. Zero revoked or deprecated IDs. v19.1's restructured Defense Evasion (now split into **Stealth** and **Defense Impairment**) is reflected below.\n\n| Tactic | ID | Skills |\n|--------|----|--------|\n| Reconnaissance | TA0043 | 103 |\n| Resource Development | TA0042 | 22 |\n| Initial Access | TA0001 | 467 |\n| Execution | TA0002 | 350 |\n| Persistence | TA0003 | 444 |\n| Privilege Escalation | TA0004 | 464 |\n| Stealth | TA0005 | 442 |\n| Defense Impairment | TA0112 | 92 |\n| Credential Access | TA0006 | 202 |\n| Discovery | TA0007 | 237 |\n| Lateral Movement | TA0008 | 68 |\n| Collection | TA0009 | 172 |\n| Command and Control | TA0011 | 123 |\n| Exfiltration | TA0010 | 82 |\n| Impact | TA0040 | 50 |\n\n## Quick start\n\n```bash\n# Option 1: npx (recommended)\nnpx skills add mukul975/Anthropic-Cybersecurity-Skills\n\n# Option 2: Git clone\ngit clone https://github.com/mukul975/Anthropic-Cybersecurity-Skills.git\ncd Anthropic-Cybersecurity-Skills\n```\n\nWorks immediately with Claude Code, GitHub Copilot, OpenAI Codex CLI, Cursor, Gemini CLI, and any [agentskills.io](https://agentskills.io)-compatible platform. \n\n## 🌍 GARS-2026 — Global Agentic AI Readiness Survey\n\nI'm running a global academic study measuring how ready security professionals,\ndevelopers, and enterprise teams actually are for agentic AI — MCP servers,\ntool calling, governance, and human-in-the-loop workflows.\n\n**If you use this repo, your response would be a genuinely valuable data point.**\n\n📋 **Take the survey (10 min):**\n[Survey Link](https://mahipal.engineer/survey?utm_source=github_repo&utm_medium=readme&utm_campaign=gars2026)\n\n- 60 questions · Anonymous · Supervised by SRH Berlin\n- You get **50 Casky Tokens** for early access to [casky.ai](https://casky.ai)\n- Results published open access under CC-BY 4.0\n\n## 🚀 Try it on the Playground\n\nExperience Casky.ai hands-on — no setup required.\n\n**[→ Launch Playground on Casky.ai](https://casky.ai/?utm_source=github&utm_medium=readme&utm_campaign=cohort_launch#waitlist)**\n\nThe playground lets you:\n- Run live cybersecurity skill exercises against real targets\n- See AI agents execute structured skills in real time\n- Explore MITRE ATT&CK mapped workflows interactively\n- Test threat hunting, DFIR, and penetration testing scenarios\n\nNo installation. No configuration. Just open and start.\n## Why this exists\n\nThe cybersecurity workforce gap hit **4.8 million unfilled roles** globally in 2024 (ISC2). AI agents can help close that gap — but only if they have structured domain knowledge to work from. Today's agents can write code and search the web, but they lack the practitioner playbooks that turn a generic LLM into a capable security analyst.\n\nExisting security tool repos give you wordlists, payloads, or exploit code. None of them give an AI agent the structured decision-making workflow a senior analyst follows: when to use each technique, what prerequisites to check, how to execute step-by-step, and how to verify results. That is the gap this project fills.\n\n**Anthropic Cybersecurity Skills** is not a collection of scripts or checklists. It is an **AI-native knowledge base** built from the ground up for the agentskills.io standard  — YAML frontmatter for sub-second discovery, structured Markdown for step-by-step execution, and reference files for deep technical context.  Every skill encodes real practitioner workflows, not generated summaries. \n\n## What's inside — 29 security domains\n\n| Domain | Skills | Key capabilities |\n|---|---|---|\n| Cloud Security | 66 | AWS, Azure, GCP hardening · CSPM · cloud attack emulation · cloud forensics |\n| Threat Hunting | 58 | Hypothesis-driven hunts · LOTL detection · EVTX hunting · fleet hunting |\n| Threat Intelligence | 52 | STIX/TAXII · MISP · OpenCTI · feed integration · actor profiling |\n| Network Security | 43 | IDS/IPS · firewall rules · VLAN segmentation · traffic analysis |\n| Web Application Security | 42 | OWASP Top 10 · SQLi · XSS · SSRF · deserialization |\n| Digital Forensics | 41 | Disk imaging · memory forensics · Hayabusa/KAPE/Plaso timelines |\n| Malware Analysis | 39 | Static/dynamic analysis · reverse engineering · sandboxing |\n| Identity & Access Management | 37 | Entra ID/ROADtools · device-code phishing · PAM · zero trust identity |\n| SOC Operations | 35 | Playbooks · escalation workflows · Graph-log detection · tabletop exercises |\n| Red Teaming | 33 | ADCS/Certipy · BloodHound CE · Sliver/Havoc C2 · NTLM relay |\n| Container Security | 33 | K8s RBAC · image scanning · Falco · container escape |\n| Security Operations | 28 | SIEM correlation · log analysis · alert triage |\n| OT/ICS Security | 28 | Modbus · DNP3 · IEC 62443 · historian defense · SCADA |\n| API Security | 28 | GraphQL · REST · OWASP API Top 10 · WAF bypass |\n| Incident Response | 26 | Breach containment · ransomware response · IR playbooks |\n| Vulnerability Management | 25 | Nessus · scanning workflows · patch prioritization · CVSS |\n| Penetration Testing | 21 | Network · web · cloud · mobile · NetExec lateral movement |\n| DevSecOps | 18 | CI/CD security · Trivy IaC/image scanning · code signing |\n| Zero Trust Architecture | 17 | BeyondCorp · CISA maturity model · microsegmentation |\n| Endpoint Security | 17 | EDR · LOTL detection · fileless malware · persistence hunting |\n| Cryptography | 16 | TLS · Ed25519 · post-quantum migration · key manage",
    "strategic_keywords": [
      "agent",
      "agents",
      "memory",
      "mcp",
      "rag",
      "skill",
      "llm",
      "automation"
    ],
    "relationship_label": "Memory 组件",
    "data_confidence": "high",
    "evidence_sources": [
      "github_trending",
      "github_repo_api",
      "readme"
    ],
    "score_breakdown": {
      "heat": 20,
      "relevance": 20,
      "novelty": 15,
      "productize": 14,
      "adoption": 8,
      "relation": 10,
      "risk_signal": 6,
      "total": 93
    },
    "strategic_score": 93
  },
  {
    "owner": "alibaba",
    "name": "page-agent",
    "full_name": "alibaba/page-agent",
    "url": "https://github.com/alibaba/page-agent",
    "description": "JavaScript in-page GUI agent. Control web interfaces with natural language.",
    "language": "TypeScript",
    "total_stars": 19760,
    "forks": 1704,
    "stars_this_period": 196,
    "source_slice": "all",
    "source_slices": [
      "all",
      "typescript"
    ],
    "metadata": {
      "topics": [
        "agent",
        "ai",
        "ai-agents",
        "browser-automation",
        "javascript",
        "mcp",
        "typescript",
        "web"
      ],
      "license": "MIT",
      "open_issues": 48,
      "created_at": "2025-09-23T09:30:17Z",
      "pushed_at": "2026-06-25T17:07:30Z",
      "homepage": "https://alibaba.github.io/page-agent/",
      "default_branch": "main",
      "forks": 1704,
      "watchers": 59,
      "archived": false,
      "size_kb": 3111
    },
    "readme_content": "# Page Agent\n\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://page-agent.github.io/assets/readme/banner-dark.png\">\n  <img alt=\"Page Agent Banner\" src=\"https://page-agent.github.io/assets/readme/banner-light.png\">\n</picture>\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-auto.svg)](https://opensource.org/licenses/MIT) [![TypeScript](https://img.shields.io/badge/%3C%2F%3E-TypeScript-%230074c1.svg)](http://www.typescriptlang.org/) [![Bundle Size](https://img.shields.io/bundlephobia/minzip/page-agent)](https://bundlephobia.com/package/page-agent) [![Downloads](https://img.shields.io/npm/dt/page-agent.svg)](https://www.npmjs.com/package/page-agent) [![GitHub stars](https://img.shields.io/github/stars/alibaba/page-agent.svg)](https://github.com/alibaba/page-agent)\n\nThe GUI Agent Living in Your Webpage. Control web interfaces with natural language.\n\n🌐 **English** | [中文](./docs/README-zh.md)\n\n<a href=\"https://alibaba.github.io/page-agent/\" target=\"_blank\"><b>🚀 Demo</b></a> | <a href=\"https://alibaba.github.io/page-agent/docs/introduction/overview\" target=\"_blank\"><b>📖 Docs</b></a> | <a href=\"https://news.ycombinator.com/item?id=47264138\" target=\"_blank\"><b>📢 HN Discussion</b></a> | <a href=\"https://x.com/simonluvramen\" target=\"_blank\"><b>𝕏 Follow on X</b></a>\n\n<!-- demo video -->\n\nhttps://github.com/user-attachments/assets/a1f2eae2-13fb-4aae-98cf-a3fc1620a6c2\n\n---\n\n## ✨ Features\n\n- **🎯 Easy integration**\n    - No need for `browser extension` / `python` / `headless browser`.\n    - Just in-page javascript. Everything happens in your web page.\n- **📖 Text-based DOM manipulation**\n    - No screenshots. No multi-modal LLMs or special permissions needed.\n- **🧠 Bring your own LLMs**\n- **🐙 Optional [chrome extension](https://alibaba.github.io/page-agent/docs/features/chrome-extension) for multi-page tasks.**\n    - And an [MCP Server (Beta)](https://alibaba.github.io/page-agent/docs/features/mcp-server) to control it from outside\n\n## 💡 Use Cases\n\n- **SaaS AI Copilot** — Ship an AI copilot in your product in lines of code. No backend rewrite.\n- **Smart Form Filling** — Turn 20-click workflows into one sentence. Perfect for ERP, CRM, and admin systems.\n- **Accessibility** — Make any web app accessible through natural language. Voice commands, screen readers, zero barrier.\n- **Multi-page Agent** — Extend your own web agent's reach across browser tabs [chrome extension](https://alibaba.github.io/page-agent/docs/features/chrome-extension).\n- **MCP** - Allow your agent clients to control your browser.\n\n## 🚀 Quick Start\n\n### One-line integration\n\nFastest way to try PageAgent with our free Demo LLM:\n\n```html\n<script src=\"{URL}\" crossorigin=\"true\"></script>\n```\n\n> **⚠️ For technical evaluation only.** This demo CDN uses our free [testing LLM API](https://alibaba.github.io/page-agent/docs/features/models#free-testing-api). By using it, you agree to its [terms](https://github.com/alibaba/page-agent/blob/main/docs/terms-and-privacy.md).\n\n| Mirrors | URL                                                                                 |\n| ------- | ----------------------------------------------------------------------------------- |\n| Global  | https://cdn.jsdelivr.net/npm/page-agent@1.10.0/dist/iife/page-agent.demo.js         |\n| China   | https://registry.npmmirror.com/page-agent/1.10.0/files/dist/iife/page-agent.demo.js |\n\nAdd `?autoInit=false` to load the script without creating the demo agent automatically. You can then instantiate it with `new window.PageAgent(...)`.\n\n### NPM Installation\n\n```bash\nnpm install page-agent\n```\n\n```javascript\nimport { PageAgent } from 'page-agent'\n\nconst agent = new PageAgent({\n    model: 'qwen3.5-plus',\n    baseURL: 'https://dashscope.aliyuncs.com/compatible-mode/v1',\n    apiKey: 'YOUR_API_KEY',\n    language: 'en-US',\n})\n\nawait agent.execute('Click the login button')\n```\n\nFor more programmatic usage, see [📖 Documentations](https://alibaba.github.io/page-agent/docs/introduction/overview).\n\n## 🌟 Awesome Page Agent\n\nBuilt something cool with PageAgent? Add it here! Open a PR to share your project.\n\n> These are community projects — not maintained or endorsed by us. Use at your own discretion.\n\n| Project  | Description                                                 |\n| -------- | ----------------------------------------------------------- |\n| _Yours?_ | [Open a PR](https://github.com/alibaba/page-agent/pulls) 🙌 |\n\n## 🤝 Contributing\n\nWe welcome contributions from the community! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines and [docs/developer-guide.md](docs/developer-guide.md) for local development workflows.\n\nPlease read the [maintainer's note](https://github.com/alibaba/page-agent/issues/349) on principles and current state.\n\nContributions generated entirely by **bots or AI** without substantial human involvement will **not be accepted**.\n\n## ⚖️ License\n\n[MIT License](LICENSE)\n\n## 👏 Acknowledgments\n\nThis project builds upon the excellent work of **[`browser-use`](https://github.com/browser-use/browser-use)**.\n\n`PageAgent` is designed for **client-side web enhancement**, not server-side automation.\n\n```\nDOM processing components and prompt are derived from browser-use:\n\nBrowser Use <https://github.com/browser-use/browser-use>\nCopyright (c) 2024 Gregor Zunic\nLicensed under the MIT License\n\nWe gratefully acknowledge the browser-use project and its contributors for their\nexcellent work on web automation and DOM interaction patterns that helped make\nthis project possible.\n```\n\n---\n\n**⭐ Star this repo if you find PageAgent helpful!**\n",
    "manifest_file": "package.json",
    "manifest_content": "{\n    \"name\": \"root\",\n    \"private\": true,\n    \"version\": \"1.10.0\",\n    \"type\": \"module\",\n    \"workspaces\": [\n        \"packages/page-controller\",\n        \"packages/ui\",\n        \"packages/llms\",\n        \"packages/core\",\n        \"packages/page-agent\",\n        \"packages/mcp\",\n        \"packages/extension\",\n        \"packages/website\"\n    ],\n    \"description\": \"AI-powered UI agent for web applications\",\n    \"author\": \"Simon<gaomeng1900>\",\n    \"license\": \"MIT\",\n    \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/alibaba/page-agent.git\"\n    },\n    \"homepage\": \"https://alibaba.github.io/page-agent/\",\n    \"engines\": {\n        \"node\": \"^22.22.1 || >=24\",\n        \"npm\": \"^11.6.3\"\n    },\n    \"scripts\": {\n        \"start\": \"npm run dev --workspace=@page-agent/website\",\n        \"dev:ext\": \"npm run dev -w @page-agent/ext\",\n        \"dev:demo\": \"npm run dev:demo --workspace=page-agent\",\n        \"build\": \"node scripts/build.js\",\n        \"build:libs\": \"node scripts/build-libs.js\",\n        \"build:website\": \"npm run build:website --workspace=@page-agent/website\",\n        \"build:ext\": \"npm run zip -w @page-agent/ext\",\n        \"version\": \"node scripts/sync-version.js\",\n        \"postpublish\": \"npm run postpublish --workspaces --if-present\",\n        \"typecheck\": \"tsc --noEmit -p tsconfig.typecheck.json && tsc --noEmit -p packages/extension/tsconfig.json\",\n        \"test\": \"npm test --workspaces --if-present\",\n        \"lint\": \"eslint .\",\n        \"ci\": \"node scripts/ci.js\",\n        \"cleanup\": \"rm -rf packages/*/dist && rm -rf packages/*/.output\",\n        \"prepare\": \"husky || true\"\n    },\n    \"devDependencies\": {\n        \"@commitlint/cli\": \"^21.0.1\",\n        \"@commitlint/config-conventional\": \"^21.0.1\",\n        \"@eslint-react/eslint-plugin\": \"^5.9.2\",\n        \"@eslint/js\": \"^10.0.1\",\n        \"@microsoft/api-extractor\": \"^7.58.9\",\n        \"@tailwindcss/vite\": \"^4.3.1\",\n        \"@trivago/prettier-plugin-sort-imports\": \"^6.0.2\",\n        \"@types/node\": \"^26.0.0\",\n        \"@vitejs/plugin-react\": \"^6.0.2\",\n        \"chalk\": \"^5.6.2\",\n        \"concurrently\": \"^10.0.3\",\n        \"dotenv\": \"^17.4.2\",\n        \"eslint\": \"^10.5.0\",\n        \"globals\": \"^17.7.0\",\n        \"happy-dom\": \"^20.10.6\",\n        \"husky\": \"^9.1.7\",\n        \"lint-staged\": \"^17.0.8\",\n        \"prettier\": \"^3.8.4\",\n        \"typescript\": \"^6.0.3\",\n        \"typescript-eslint\": \"^8.62.0\",\n        \"unplugin-dts\": \"^1.0.1\",\n        \"vite\": \"^8.0.14\",\n        \"vite-plugin-css-injected-by-js\": \"^5.0.1\",\n        \"vitest\": \"^4.1.9\"\n    },\n    \"overrides\": {\n        \"typescript\": \"^6.0.3\",\n        \"node-notifier\": {\n            \"uuid\": \"11.1.1\"\n        },\n        \"web-ext-run\": {\n            \"tmp\": \"0.2.7\"\n        }\n    },\n    \"lint-staged\": {\n        \"*.{js,ts,cjs,cts,mjs,mts}\": [\n            \"npx prettier --write --ignore-unknown\",\n            \"npx eslint --quiet\"\n        ],\n        \"*.{jsx,tsx}\": [\n            \"npx prettier --write --ignore-unknown\",\n            \"npx eslint --quiet\"\n        ],\n        \"*.css\": [\n            \"npx prettier --write --ignore-unknown\"\n        ]\n    },\n    \"commitlint\": {\n        \"extends\": [\n            \"@commitlint/config-conventional\"\n        ],\n        \"rules\": {\n            \"subject-case\": [\n                0,\n                \"never\"\n            ]\n        }\n    },\n    \"prettier\": {\n        \"singleQuote\": true,\n        \"semi\": false,\n        \"useTabs\": true,\n        \"printWidth\": 100,\n        \"trailingComma\": \"es5\",\n        \"plugins\": [\n            \"@trivago/prettier-plugin-sort-imports\"\n        ],\n        \"importOrder\": [\n            \"<THIRD_PARTY_MODULES>\",\n            \"^(@/).*(?<!css)$\",\n            \"^[./].*(?<!css)$\",\n            \".css$\"\n        ],\n        \"importOrderSeparation\": true,\n        \"importOrderSortSpecifiers\": true,\n        \"overrides\": [\n            {\n                \"files\": \"*.md\",\n                \"options\": {\n                    \"useTabs\": false,\n                    \"tabWidth\": 4\n                }\n            },\n            {\n                \"files\": \"*.json\",\n                \"options\": {\n                    \"useTabs\": false,\n                    \"tabWidth\": 4\n                }\n            }\n        ]\n    }\n}\n",
    "strategic_keywords": [
      "agent",
      "agents",
      "mcp",
      "workspace",
      "llm",
      "eval",
      "workflow",
      "automation"
    ],
    "relationship_label": "Skill 来源",
    "data_confidence": "high",
    "evidence_sources": [
      "github_trending",
      "github_repo_api",
      "readme",
      "package.json"
    ],
    "score_breakdown": {
      "heat": 18,
      "relevance": 20,
      "novelty": 15,
      "productize": 14,
      "adoption": 10,
      "relation": 10,
      "risk_signal": 6,
      "total": 93
    },
    "strategic_score": 93
  },
  {
    "owner": "thedotmack",
    "name": "claude-mem",
    "full_name": "thedotmack/claude-mem",
    "url": "https://github.com/thedotmack/claude-mem",
    "description": "Persistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More",
    "language": "JavaScript",
    "total_stars": 84289,
    "forks": 7271,
    "stars_this_period": 191,
    "source_slice": "javascript",
    "source_slices": [
      "javascript"
    ],
    "metadata": {
      "topics": [
        "ai",
        "ai-agents",
        "ai-memory",
        "anthropic",
        "artificial-intelligence",
        "chromadb",
        "claude",
        "claude-agent-sdk",
        "claude-agents",
        "claude-code",
        "claude-code-plugin",
        "claude-skills",
        "embeddings",
        "long-term-memory",
        "mem0",
        "memory-engine",
        "openmemory",
        "rag",
        "sqlite",
        "supermemory"
      ],
      "license": "Apache-2.0",
      "open_issues": 216,
      "created_at": "2025-08-31T20:50:03Z",
      "pushed_at": "2026-06-25T22:02:47Z",
      "homepage": "https://claude-mem.ai",
      "default_branch": "main",
      "forks": 7271,
      "watchers": 281,
      "archived": false,
      "size_kb": 213269
    },
    "readme_content": "<h1 align=\"center\">\n  <br>\n  <a href=\"https://github.com/thedotmack/claude-mem\">\n    <picture>\n      <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/thedotmack/claude-mem/main/docs/public/claude-mem-logo-for-dark-mode.webp\">\n      <source media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/thedotmack/claude-mem/main/docs/public/claude-mem-logo-for-light-mode.webp\">\n      <img src=\"https://raw.githubusercontent.com/thedotmack/claude-mem/main/docs/public/claude-mem-logo-for-light-mode.webp\" alt=\"Claude-Mem\" width=\"400\">\n    </picture>\n  </a>\n  <br>\n  <a href=\"https://vercel.com/open-source-program\">\n    <img alt=\"Vercel OSS Program\" src=\"https://vercel.com/oss/program-badge-2026.svg\" />\n  </a>\n</h1>\n\n<p align=\"center\">\n  <a href=\"docs/i18n/README.zh.md\">🇨🇳 中文</a> •\n  <a href=\"docs/i18n/README.zh-tw.md\">🇹🇼 繁體中文</a> •\n  <a href=\"docs/i18n/README.ja.md\">🇯🇵 日本語</a> •\n  <a href=\"docs/i18n/README.pt.md\">🇵🇹 Português</a> •\n  <a href=\"docs/i18n/README.pt-br.md\">🇧🇷 Português</a> •\n  <a href=\"docs/i18n/README.ko.md\">🇰🇷 한국어</a> •\n  <a href=\"docs/i18n/README.es.md\">🇪🇸 Español</a> •\n  <a href=\"docs/i18n/README.de.md\">🇩🇪 Deutsch</a> •\n  <a href=\"docs/i18n/README.fr.md\">🇫🇷 Français</a> •\n  <a href=\"docs/i18n/README.he.md\">🇮🇱 עברית</a> •\n  <a href=\"docs/i18n/README.ar.md\">🇸🇦 العربية</a> •\n  <a href=\"docs/i18n/README.ru.md\">🇷🇺 Русский</a> •\n  <a href=\"docs/i18n/README.pl.md\">🇵🇱 Polski</a> •\n  <a href=\"docs/i18n/README.cs.md\">🇨🇿 Čeština</a> •\n  <a href=\"docs/i18n/README.nl.md\">🇳🇱 Nederlands</a> •\n  <a href=\"docs/i18n/README.tr.md\">🇹🇷 Türkçe</a> •\n  <a href=\"docs/i18n/README.uk.md\">🇺🇦 Українська</a> •\n  <a href=\"docs/i18n/README.vi.md\">🇻🇳 Tiếng Việt</a> •\n  <a href=\"docs/i18n/README.tl.md\">🇵🇭 Tagalog</a> •\n  <a href=\"docs/i18n/README.id.md\">🇮🇩 Indonesia</a> •\n  <a href=\"docs/i18n/README.th.md\">🇹🇭 ไทย</a> •\n  <a href=\"docs/i18n/README.hi.md\">🇮🇳 हिन्दी</a> •\n  <a href=\"docs/i18n/README.bn.md\">🇧🇩 বাংলা</a> •\n  <a href=\"docs/i18n/README.ur.md\">🇵🇰 اردو</a> •\n  <a href=\"docs/i18n/README.ro.md\">🇷🇴 Română</a> •\n  <a href=\"docs/i18n/README.sv.md\">🇸🇪 Svenska</a> •\n  <a href=\"docs/i18n/README.it.md\">🇮🇹 Italiano</a> •\n  <a href=\"docs/i18n/README.el.md\">🇬🇷 Ελληνικά</a> •\n  <a href=\"docs/i18n/README.hu.md\">🇭🇺 Magyar</a> •\n  <a href=\"docs/i18n/README.fi.md\">🇫🇮 Suomi</a> •\n  <a href=\"docs/i18n/README.da.md\">🇩🇰 Dansk</a> •\n  <a href=\"docs/i18n/README.no.md\">🇳🇴 Norsk</a>\n</p>\n\n<h4 align=\"center\">Persistent memory compression system built for <a href=\"https://claude.com/claude-code\" target=\"_blank\">Claude Code</a>.</h4>\n\n<p align=\"center\">\n  <a href=\"LICENSE\">\n    <img src=\"https://img.shields.io/badge/License-Apache%202.0-blue.svg\" alt=\"License\">\n  </a>\n  <a href=\"package.json\">\n    <img src=\"https://img.shields.io/badge/version-13.4.0-green.svg\" alt=\"Version\">\n  </a>\n  <a href=\"package.json\">\n    <img src=\"https://img.shields.io/badge/node-%3E%3D20.0.0-brightgreen.svg\" alt=\"Node\">\n  </a>\n  <a href=\"https://github.com/thedotmack/awesome-claude-code\">\n    <img src=\"https://awesome.re/mentioned-badge.svg\" alt=\"Mentioned in Awesome Claude Code\">\n  </a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://trendshift.io/repositories/15496\" target=\"_blank\">\n    <picture>\n      <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/thedotmack/claude-mem/main/docs/public/trendshift-badge-dark.svg\">\n      <source media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/thedotmack/claude-mem/main/docs/public/trendshift-badge.svg\">\n      <img src=\"https://raw.githubusercontent.com/thedotmack/claude-mem/main/docs/public/trendshift-badge.svg\" alt=\"thedotmack/claude-mem | Trendshift\" width=\"250\" height=\"55\"/>\n    </picture>\n  </a>\n</p>\n\n<br>\n\n<table align=\"center\">\n  <tr>\n    <td align=\"center\">\n      <a href=\"https://github.com/thedotmack/claude-mem\">\n        <picture>\n          <img\n            src=\"https://raw.githubusercontent.com/thedotmack/claude-mem/main/docs/public/cm-preview.gif\"\n            alt=\"Claude-Mem Preview\"\n            width=\"500\"\n          >\n        </picture>\n      </a>\n    </td>\n    <td align=\"center\">\n      <a href=\"https://www.star-history.com/#thedotmack/claude-mem&Date\">\n        <picture>\n          <source\n            media=\"(prefers-color-scheme: dark)\"\n            srcset=\"https://api.star-history.com/image?repos=thedotmack/claude-mem&type=date&theme=dark&legend=top-left\"\n          />\n          <source\n            media=\"(prefers-color-scheme: light)\"\n            srcset=\"https://api.star-history.com/image?repos=thedotmack/claude-mem&type=date&legend=top-left\"\n          />\n          <img\n            alt=\"Star History Chart\"\n            src=\"https://api.star-history.com/image?repos=thedotmack/claude-mem&type=date&legend=top-left\"\n            width=\"500\"\n          />\n        </picture>\n      </a>\n    </td>\n  </tr>\n</table>\n\n<p align=\"center\">\n  <a href=\"#quick-start\">Quick Start</a> •\n  <a href=\"#how-it-works\">How It Works</a> •\n  <a href=\"#mcp-search-tools\">Search Tools</a> •\n  <a href=\"#documentation\">Documentation</a> •\n  <a href=\"#configuration\">Configuration</a> •\n  <a href=\"#troubleshooting\">Troubleshooting</a> •\n  <a href=\"#license\">License</a>\n</p>\n\n<p align=\"center\">\n  Claude-Mem seamlessly preserves context across sessions by automatically capturing tool usage observations, generating semantic summaries, and making them available to future sessions. This enables Claude to maintain continuity of knowledge about projects even after sessions end or reconnect.\n</p>\n\n---\n\n## Quick Start\n\nInstall with a single command:\n\n```bash\nnpx claude-mem install\n```\n\nOr install for Gemini CLI (auto-detects `~/.gemini`):\n\n```bash\nnpx claude-mem install --ide gemini-cli\n```\nOr install for OpenCode:\n\n```bash\nnpx claude-mem install --ide opencode\n```\n\nOr install from the plugin marketplace inside Claude Code:\n\n```bash\n/plugin marketplace add thedotmack/claude-mem\n\n/plugin install claude-mem\n```\n\nRestart Claude Code or Gemini CLI. Context from previous sessions will automatically appear in new sessions.\n\n> **Note:** Claude-Mem is also published on npm, but `npm install -g claude-mem` installs the **SDK/library only** — it does not register the plugin hooks or set up the worker service. Always install via `npx claude-mem install` or the `/plugin` commands above.\n\n### 🦞 OpenClaw Gateway\n\nInstall claude-mem as a persistent memory plugin on [OpenClaw](https://openclaw.ai) gateways with a single command:\n\n```bash\ncurl -fsSL https://install.cmem.ai/openclaw.sh | bash\n```\n\nThe installer handles dependencies, plugin setup, AI provider configuration, worker startup, and optional real-time observation feeds to Telegram, Discord, Slack, and more. See the [OpenClaw Integration Guide](https://docs.claude-mem.ai/openclaw-integration) for details.\n\n**Key Features:**\n\n- 🧠 **Persistent Memory** - Context survives across sessions\n- 📊 **Progressive Disclosure** - Layered memory retrieval with token cost visibility\n- 🔍 **Skill-Based Search** - Query your project history with mem-search skill\n- 🖥️ **Web Viewer UI** - Real-time memory stream at http://localhost:37777\n- 💻 **Claude Desktop Skill** - Search memory from Claude Desktop conversations\n- 🔒 **Privacy Control** - Use `<private>` tags to exclude sensitive content from storage\n- ⚙️ **Context Configuration** - Fine-grained control over what context gets injected\n- 🤖 **Automatic Operation** - No manual intervention required\n- 🔗 **Citations** - Reference past observations with IDs (access via http://localhost:37777/api/observation/{id} or view all in the web viewer at http://localhost:37777)\n- 🧪 **Beta Channel** - Try experimental features like Endless Mode via version switching\n\n---\n\n## Documentation\n\n📚 **[View Full Documentation](https://docs.claude-mem.ai/)** - Browse on official website\n\n### Getting Started\n\n- **[Installation Guide](https://docs.claude-mem.ai/installation)** - Quick start & advanced installation\n- **[Gemini CLI Setup](https://docs.claude-mem.ai/gemini-cli/setup)** - Dedicated guide for Google's Gemini CLI integration\n- **[Usage Guide](https://docs.claude-mem.ai/usage/getting-started)** - How Claude-Mem works automatically\n- **[Search Tools](https://docs.claude-mem.ai/usage/search-tools)** - Query your project history with natural language\n- **[Beta Features](https://docs.claude-mem.ai/beta-features)** - Try experimental features like Endless Mode\n\n### Best Practices\n\n- **[Context Engineering](https://docs.claude-mem.ai/context-engineering)** - AI agent context optimization principles\n- **[Progressive Disclosure](https://docs.claude-mem.ai/progressive-disclosure)** - Philosophy behind Claude-Mem's context priming strategy\n\n### Architecture\n\n- **[Overview](https://docs.claude-mem.ai/architecture/overview)** - System components & data flow\n- **[Architecture Evolution](https://docs.claude-mem.ai/architecture-evolution)** - The journey from v3 to v5\n- **[Hooks Architecture](https://docs.claude-mem.ai/hooks-architecture)** - How Claude-Mem uses lifecycle hooks\n- **[Hooks Reference](https://docs.claude-mem.ai/architecture/hooks)** - 7 hook scripts explained\n- **[Worker Service](https://docs.claude-mem.ai/architecture/worker-service)** - HTTP API & Bun management\n- **[Database](https://docs.claude-mem.ai/architecture/database)** - SQLite schema & FTS5 search\n- **[Search Architecture](https://docs.claude-mem.ai/architecture/search-architecture)** - Hybrid search with Chroma vector database\n\n### Configuration & Development\n\n- **[Configuration](https://docs.claude-mem.ai/configuration)** - Environment variables & settings\n- **[Development](https://docs.claude-mem.ai/development)** - Building, testing, contributing\n- **[Troubleshooting](https://docs.claude-mem.ai/troubleshooting)** - Common issues & solutions\n\n---\n\n## How It Works\n\n**Core Components:**\n\n1. **5 Lifecycle Hooks** - SessionStart, UserPromptSubmit, PostToolUse, Stop, SessionEnd (6 hook scripts)\n2. **Smart Install** - Cached dependency checker (pre-hook script, not a lifecycle hook)\n3. **Worker Service** - HTTP API on port 37777 with web viewer UI and 10 search endpoints, managed by Bun\n4. **SQLite Database** - Stores sessions, observations, summaries\n5. **mem-search Skill** - Natural language queries with progressive disclosure\n6. **Chroma Vector Database** - Hybrid semantic + keyword search for intelligent context retrieval\n\nSee [Architecture Overview](https://docs.claude-mem.ai/architecture/overview) for details.\n\n---\n\n## MCP Search Tools\n\nClaude-Mem provides intelligent memory search through **4 MCP tools** following a token-efficient **3-layer workflow pattern**:\n\n**The 3-Layer Workflow:**\n\n1. **`search`** - Get compact index with IDs (~50-100 tokens/result)\n2. **`timeline`** - Get chronological context around interesting results\n3. **`get_observations`** - Fetch full details ONLY for filtered IDs (~500-1,000 tokens/result)\n\n**How It Works:**\n- Claude uses MCP tools to search your memory\n- Start with `search` to get an index of results\n- Use `timeline` to see what was happening around specific observations\n- Use `get_observations` to fetch full details for relevant IDs\n- **~10x token savings** by filtering before fetching details\n\n**Available MCP Tools:**\n\n1. **`search`** - Search memory index with full-text queries, filters by type/date/project\n2. **`timeline`** - Get chronological context around a specific observation or query\n3. **`get_observations`** - Fetch full observation details by IDs (always batch multiple IDs)\n\n**Example Usage:**\n\n```typescript\n// Step 1: Search for index\nsearch(query=\"authentication bug\", type=\"bugfix\", limit=10)\n\n// Step 2: Review index, identify relevant IDs (e.g., #123, #456)\n\n// Step 3: Fetch full details\nget_observations(ids=[123, 456])\n```\n\nSee [Search Tools Guide](https://docs.claude-mem.ai/usage/search-tools) for detailed examples.\n\n---\n\n## Beta Features\n\nClaude-Mem offers a **beta channel** with experimental features like **Endless Mode** (biomimetic memory ",
    "manifest_file": "package.json",
    "manifest_content": "{\n  \"name\": \"claude-mem\",\n  \"version\": \"13.8.1\",\n  \"description\": \"Memory compression system for Claude Code - persist context across sessions\",\n  \"keywords\": [\n    \"claude\",\n    \"claude-code\",\n    \"claude-agent-sdk\",\n    \"mcp\",\n    \"plugin\",\n    \"memory\",\n    \"compression\",\n    \"knowledge-graph\",\n    \"transcript\",\n    \"typescript\",\n    \"nodejs\"\n  ],\n  \"author\": \"Alex Newman\",\n  \"license\": \"Apache-2.0\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/thedotmack/claude-mem.git\"\n  },\n  \"homepage\": \"https://github.com/thedotmack/claude-mem#readme\",\n  \"bugs\": {\n    \"url\": \"https://github.com/thedotmack/claude-mem/issues\"\n  },\n  \"type\": \"module\",\n  \"bin\": {\n    \"claude-mem\": \"./dist/npx-cli/index.js\"\n  },\n  \"exports\": {\n    \".\": {\n      \"types\": \"./dist/index.d.ts\",\n      \"import\": \"./dist/index.js\"\n    },\n    \"./sdk\": {\n      \"types\": \"./dist/sdk/index.d.ts\",\n      \"import\": \"./dist/sdk/index.js\"\n    },\n    \"./modes/*\": \"./plugin/modes/*\"\n  },\n  \"files\": [\n    \"dist\",\n    \".agents/plugins/marketplace.json\",\n    \".codex-plugin\",\n    \"plugin/.claude-plugin\",\n    \"plugin/.codex-plugin\",\n    \"plugin/.mcp.json\",\n    \"plugin/package.json\",\n    \"plugin/bun.lock\",\n    \"plugin/hooks\",\n    \"plugin/modes\",\n    \"plugin/scripts/*.js\",\n    \"plugin/scripts/*.cjs\",\n    \"plugin/skills\",\n    \"plugin/ui\",\n    \"openclaw\"\n  ],\n  \"engines\": {\n    \"node\": \">=20.12.0\",\n    \"bun\": \">=1.0.0\"\n  },\n  \"scripts\": {\n    \"dev\": \"npm run build-and-sync\",\n    \"build\": \"node scripts/sync-plugin-manifests.js && node scripts/build-hooks.js && node scripts/gen-plugin-lockfile.cjs\",\n    \"build-and-sync\": \"npm run build && npm run sync-marketplace && (cd ~/.claude/plugins/marketplaces/thedotmack && npm run worker:restart)\",\n    \"sync-marketplace\": \"node scripts/sync-marketplace.cjs\",\n    \"sync-marketplace:force\": \"node scripts/sync-marketplace.cjs --force\",\n    \"build:binaries\": \"node scripts/build-worker-binary.js\",\n    \"build:cli-binary\": \"bun build --compile --minify ./src/services/worker-service.ts --outfile plugin/scripts/claude-mem\",\n    \"worker:logs\": \"tail -n 50 ~/.claude-mem/logs/worker-$(date +%Y-%m-%d).log\",\n    \"worker:tail\": \"tail -f 50 ~/.claude-mem/logs/worker-$(date +%Y-%m-%d).log\",\n    \"changelog:generate\": \"node scripts/generate-changelog.js\",\n    \"discord:notify\": \"node scripts/discord-release-notify.js\",\n    \"worker:start\": \"bun plugin/scripts/worker-service.cjs start\",\n    \"worker:stop\": \"bun plugin/scripts/worker-service.cjs stop\",\n    \"worker:restart\": \"bun plugin/scripts/worker-service.cjs restart\",\n    \"worker:status\": \"bun plugin/scripts/worker-service.cjs status\",\n    \"queue\": \"bun scripts/check-pending-queue.ts\",\n    \"queue:process\": \"bun scripts/check-pending-queue.ts --process\",\n    \"queue:clear:pending\": \"bun scripts/clear-pending-queue.ts --all --force\",\n    \"pr:status\": \"bun scripts/pr-babysit-status.ts\",\n    \"claude-md:regenerate\": \"bun scripts/regenerate-claude-md.ts\",\n    \"claude-md:dry-run\": \"bun scripts/regenerate-claude-md.ts --dry-run\",\n    \"strip-comments\": \"bun scripts/strip-comments.ts\",\n    \"strip-comments:check\": \"bun scripts/strip-comments.ts --check\",\n    \"strip-comments:dry-run\": \"bun scripts/strip-comments.ts --dry-run\",\n    \"translate-readme\": \"bun scripts/translate-readme/cli.ts -v -o docs/i18n README.md\",\n    \"translate:tier1\": \"npm run translate-readme -- zh zh-tw ja pt-br ko es de fr\",\n    \"translate:tier2\": \"npm run translate-readme -- he ar ru pl cs nl tr uk\",\n    \"translate:tier3\": \"npm run translate-readme -- vi id th hi bn ro sv\",\n    \"translate:tier4\": \"npm run translate-readme -- it el hu fi da no\",\n    \"translate:all\": \"npm run translate:tier1 & npm run translate:tier2 & npm run translate:tier3 & npm run translate:tier4 & wait\",\n    \"bug-report\": \"npx tsx scripts/bug-report/cli.ts\",\n    \"cursor:install\": \"bun plugin/scripts/worker-service.cjs cursor install\",\n    \"cursor:uninstall\": \"bun plugin/scripts/worker-service.cjs cursor uninstall\",\n    \"cursor:status\": \"bun plugin/scripts/worker-service.cjs cursor status\",\n    \"cursor:setup\": \"bun plugin/scripts/worker-service.cjs cursor setup\",\n    \"lint:hook-io\": \"node scripts/check-hook-io-discipline.cjs\",\n    \"lint:spawn-env\": \"node scripts/check-spawn-env-discipline.cjs\",\n    \"typecheck\": \"tsc --noEmit && tsc --noEmit -p src/ui/viewer/tsconfig.json\",\n    \"typecheck:root\": \"tsc --noEmit\",\n    \"typecheck:viewer\": \"tsc --noEmit -p src/ui/viewer/tsconfig.json\",\n    \"test\": \"bun test\",\n    \"test:sqlite\": \"bun test tests/sqlite/\",\n    \"test:agents\": \"bun test tests/worker/agents/\",\n    \"test:search\": \"bun test tests/worker/search/\",\n    \"test:context\": \"bun test tests/context/\",\n    \"test:infra\": \"bun test tests/infrastructure/\",\n    \"test:server\": \"bun test tests/server/\",\n    \"e2e:server-beta:docker\": \"bash scripts/e2e-server-beta-docker.sh\",\n    \"check:postinstall-allowlist\": \"node scripts/check-postinstall-allowlist.js\",\n    \"smoke:clean-room\": \"node scripts/smoke-clean-room.cjs\",\n    \"prepublishOnly\": \"npm run build && node ",
    "strategic_keywords": [
      "agent",
      "agents",
      "memory",
      "mcp",
      "rag",
      "skill",
      "embedding"
    ],
    "relationship_label": "Memory 组件",
    "data_confidence": "high",
    "evidence_sources": [
      "github_trending",
      "github_repo_api",
      "readme",
      "package.json"
    ],
    "score_breakdown": {
      "heat": 16,
      "relevance": 20,
      "novelty": 15,
      "productize": 14,
      "adoption": 10,
      "relation": 10,
      "risk_signal": 8,
      "total": 93
    },
    "strategic_score": 93
  },
  {
    "owner": "stablyai",
    "name": "orca",
    "full_name": "stablyai/orca",
    "url": "https://github.com/stablyai/orca",
    "description": "Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop and mobile.",
    "language": "TypeScript",
    "total_stars": 7380,
    "forks": 529,
    "stars_this_period": 700,
    "source_slice": "typescript",
    "source_slices": [
      "typescript"
    ],
    "metadata": {
      "topics": [
        "ade",
        "agent-ide",
        "ai-agents",
        "claude-code",
        "cli",
        "codex",
        "cursor-agent",
        "devtools",
        "ghostty",
        "ide",
        "mobile-app",
        "opencode",
        "orchestration",
        "parallel-agents",
        "pi",
        "terminal",
        "worktrees",
        "yc-backed"
      ],
      "license": "MIT",
      "open_issues": 683,
      "created_at": "2026-03-17T03:28:57Z",
      "pushed_at": "2026-06-25T21:54:30Z",
      "homepage": "https://onOrca.dev",
      "default_branch": "main",
      "forks": 529,
      "watchers": 17,
      "archived": false,
      "size_kb": 178361
    },
    "readme_content": "<h1 align=\"center\">\n  <a href=\"https://onOrca.dev\"><img src=\"resources/build/icon.png\" alt=\"Orca\" width=\"64\" valign=\"middle\" /></a> Orca\n</h1>\n\n<p align=\"center\">\n  <a href=\"https://github.com/stablyai/orca/stargazers\"><img src=\"https://badgen.net/github/stars/stablyai/orca?label=%E2%98%85\" alt=\"GitHub stars\" /></a>\n  <a href=\"https://github.com/stablyai/orca/releases\"><img src=\"docs/assets/readme-downloads.svg\" alt=\"Total downloads across all releases\" /></a>\n  <img src=\"https://badgen.net/github/license/stablyai/orca\" alt=\"License\" />\n  <a href=\"https://discord.gg/fzjDKHxv8Q\"><img src=\"https://img.shields.io/badge/Discord-5865F2?logo=discord&logoColor=white\" alt=\"Join the Orca Discord\" /></a>\n  <a href=\"https://x.com/orca_build\"><img src=\"https://img.shields.io/badge/X-000000?logo=x&logoColor=white\" alt=\"Follow Orca on X\" /></a>\n  <img src=\"https://img.shields.io/badge/macOS%20%7C%20Windows%20%7C%20Linux-4493F8?style=flat-square\" alt=\"Supported platforms: macOS, Windows, and Linux\" />\n</p>\n\n<p align=\"center\">\n  <sub><a href=\"docs/readme/README.es.md\">Español</a> · <a href=\"docs/readme/README.zh-CN.md\">中文</a> · <a href=\"docs/readme/README.ja.md\">日本語</a> · <a href=\"docs/readme/README.ko.md\">한국어</a></sub>\n</p>\n\n<p align=\"center\">\n  <strong>The AI Orchestrator for 100x builders.</strong><br/>\n  Run Codex, ClaudeCode, OpenCode or Pi side-by-side — each in its own worktree, tracked in one place.\n</p>\n\n<h3 align=\"center\"><a href=\"https://onorca.dev/download\"><ins>Download Orca</ins></a></h3>\n\n<p align=\"center\">\n  <img src=\"docs/assets/readme-hero.jpg\" alt=\"Orca desktop app running agents in parallel worktrees, with the Orca mobile companion app in the corner\" width=\"960\" />\n</p>\n\n## Features\n\n<table>\n<tr>\n<td width=\"50%\" valign=\"middle\">\n\n### Mobile Companion\n\nMonitor and steer your agents from your phone — get notified when an agent finishes and send follow-ups from anywhere.\n\n[iOS App Store](https://apps.apple.com/us/app/orca-ide/id6766130217) · [TestFlight](https://testflight.apple.com/join/YjeGMQBA) · [Android APK](https://github.com/stablyai/orca/releases/download/mobile-android-v0.0.16/app-release.apk) · [Docs →](https://www.onorca.dev/docs/mobile)\n\n</td>\n<td width=\"50%\">\n  <a href=\"https://www.onorca.dev/docs/mobile\"><picture><source srcset=\"docs/assets/feature-wall/mobile-companion-app-showcase.gif\" type=\"image/gif\"><img src=\"docs/assets/feature-wall/mobile-companion-app-showcase.jpg\" alt=\"Orca desktop with the mobile companion app\" width=\"100%\" /></picture></a>\n</td>\n</tr>\n<tr>\n<td width=\"50%\" valign=\"middle\">\n\n### Parallel Worktrees\n\nFan one prompt across five agents, each in its own isolated git worktree — compare the results and merge the winner.\n\n[Docs →](https://www.onorca.dev/docs/model/worktrees)\n\n</td>\n<td width=\"50%\">\n  <a href=\"https://www.onorca.dev/docs/model/worktrees\"><picture><source srcset=\"docs/assets/feature-wall/parallel-worktrees.gif\" type=\"image/gif\"><img src=\"docs/assets/feature-wall/parallel-worktrees.jpg\" alt=\"Parallel worktree orchestration\" width=\"100%\" /></picture></a>\n</td>\n</tr>\n<tr>\n<td width=\"50%\" valign=\"middle\">\n\n### Terminal Splits\n\nGhostty-class terminals with WebGL rendering, infinite splits, and scrollback that survives restarts.\n\n[Docs →](https://www.onorca.dev/docs/terminal)\n\n</td>\n<td width=\"50%\">\n  <a href=\"https://www.onorca.dev/docs/terminal\"><picture><source srcset=\"docs/assets/feature-wall/terminal-splits.gif\" type=\"image/gif\"><img src=\"docs/assets/feature-wall/terminal-splits.jpg\" alt=\"Terminal splits\" width=\"100%\" /></picture></a>\n</td>\n</tr>\n<tr>\n<td width=\"50%\" valign=\"middle\">\n\n### Design Mode\n\nClick any UI element in a real Chromium window to send its HTML, CSS, and a cropped screenshot straight into your agent's prompt.\n\n[Docs →](https://www.onorca.dev/docs/browser/design-mode)\n\n</td>\n<td width=\"50%\">\n  <a href=\"https://www.onorca.dev/docs/browser/design-mode\"><picture><source srcset=\"docs/assets/feature-wall/design-mode.gif\" type=\"image/gif\"><img src=\"docs/assets/feature-wall/design-mode.jpg\" alt=\"Embedded browser and Design Mode\" width=\"100%\" /></picture></a>\n</td>\n</tr>\n<tr>\n<td width=\"50%\" valign=\"middle\">\n\n### GitHub &amp; Linear, Native\n\nBrowse PRs, issues, and project boards in-app — open a worktree from any task and review without a context switch.\n\n[Docs →](https://www.onorca.dev/docs/review/linear)\n\n</td>\n<td width=\"50%\">\n  <a href=\"https://www.onorca.dev/docs/review/linear\"><picture><source srcset=\"docs/assets/feature-wall/github-linear.gif\" type=\"image/gif\"><img src=\"docs/assets/feature-wall/github-linear.jpg\" alt=\"GitHub and Linear task workflows in Orca\" width=\"100%\" /></picture></a>\n</td>\n</tr>\n<tr>\n<td width=\"50%\" valign=\"middle\">\n\n### SSH Worktrees\n\nRun agents on a beefy remote box with full file editing, git, and terminals — auto-reconnect and port forwarding included.\n\n[Docs →](https://www.onorca.dev/docs/ssh)\n\n</td>\n<td width=\"50%\">\n  <a href=\"https://www.onorca.dev/docs/ssh\"><picture><source srcset=\"docs/assets/feature-wall/ssh-worktrees.gif\" type=\"image/gif\"><img src=\"docs/assets/feature-wall/ssh-worktrees.jpg\" alt=\"Remote worktrees over SSH\" width=\"100%\" /></picture></a>\n</td>\n</tr>\n<tr>\n<td width=\"50%\" valign=\"middle\">\n\n### Annotate AI Diffs\n\nDrop comments on any diff line and ship them back to the agent — review, edit, and commit without leaving Orca.\n\n[Docs →](https://www.onorca.dev/docs/review/annotate-ai-diff)\n\n</td>\n<td width=\"50%\">\n  <a href=\"https://www.onorca.dev/docs/review/annotate-ai-diff\"><picture><source srcset=\"docs/assets/feature-wall/annotate-diff.gif\" type=\"image/gif\"><img src=\"docs/assets/feature-wall/annotate-diff.jpg\" alt=\"Annotate AI-generated diffs\" width=\"100%\" /></picture></a>\n</td>\n</tr>\n<tr>\n<td width=\"50%\" valign=\"middle\">\n\n### Drag Files to Agents\n\nVS Code's editor with autosave everywhere — drag files or images straight into an agent prompt.\n\n[Docs →](https://www.onorca.dev/docs/editing/file-explorer)\n\n</td>\n<td width=\"50%\">\n  <a href=\"https://www.onorca.dev/docs/editing/file-explorer\"><picture><source srcset=\"docs/assets/feature-wall/file-drag.gif\" type=\"image/gif\"><img src=\"docs/assets/feature-wall/file-drag.jpg\" alt=\"Drag files and images into an agent prompt\" width=\"100%\" /></picture></a>\n</td>\n</tr>\n<tr>\n<td width=\"50%\" valign=\"middle\">\n\n### Orca CLI\n\nAgents drive Orca too — script every workflow with `orca worktree create`, `snapshot`, `click`, and `fill`.\n\n[Docs →](https://www.onorca.dev/docs/cli/overview)\n\n</td>\n<td width=\"50%\">\n  <a href=\"https://www.onorca.dev/docs/cli/overview\"><picture><source srcset=\"docs/assets/feature-wall/orca-cli.gif\" type=\"image/gif\"><img src=\"docs/assets/feature-wall/orca-cli.jpg\" alt=\"Script Orca from the CLI\" width=\"100%\" /></picture></a>\n</td>\n</tr>\n</table>\n\n**Also in the box:**\n\n- **[Quick open](https://www.onorca.dev/docs/model/quick-open)** — Search across worktrees, files, agents, commands, and repo context without leaving your flow.\n- **[Account switcher &amp; usage tracking](https://www.onorca.dev/docs/agents/usage-tracking)** — See Claude and Codex usage and rate-limit resets, and hot-swap accounts without re-logging in.\n- **[Rich repo previews](https://www.onorca.dev/docs/editing/markdown)** — Preview Markdown, images, PDFs, and repo docs in the workspace.\n- **[Computer Use](https://www.onorca.dev/docs/cli/computer-use)** — Let agents operate desktop apps and visible UI when a workflow needs real interaction.\n- **[Notifications and unread state](https://www.onorca.dev/docs/notifications)** — Know when an agent finishes or needs attention, then mark threads unread to come back later.\n- **And many, many more** — we ship daily, so this list is perpetually behind. The [changelog](https://github.com/stablyai/orca/releases) is the real feature list.\n\n---\n\n## Supported Agents\n\nWorks with **any CLI agent** — if it runs in a terminal, it runs in Orca.\n\n<p>\n  <a href=\"https://docs.anthropic.com/claude/docs/claude-code\"><kbd><img src=\"docs/assets/claude-logo.svg\" alt=\"Claude Code logo\" width=\"16\" valign=\"middle\" /> Claude Code</kbd></a> &nbsp;\n  <a href=\"https://github.com/openai/codex\"><kbd><img src=\"https://www.google.com/s2/favicons?domain=openai.com&sz=64\" alt=\"Codex logo\" width=\"16\" valign=\"middle\" /> Codex</kbd></a> &nbsp;\n  <a href=\"https://x.ai/cli\"><kbd><img src=\"https://www.google.com/s2/favicons?domain=x.ai&sz=64\" alt=\"Grok logo\" width=\"16\" valign=\"middle\" /> Grok</kbd></a> &nbsp;\n  <a href=\"https://cursor.com/cli\"><kbd><img src=\"https://www.google.com/s2/favicons?domain=cursor.com&sz=64\" alt=\"Cursor logo\" width=\"16\" valign=\"middle\" /> Cursor</kbd></a> &nbsp;\n  <a href=\"https://docs.github.com/en/copilot/how-tos/set-up/install-copilot-cli\"><kbd><img src=\"https://www.google.com/s2/favicons?domain=github.com&sz=64\" alt=\"GitHub Copilot logo\" width=\"16\" valign=\"middle\" /> GitHub Copilot</kbd></a> &nbsp;\n  <a href=\"https://opencode.ai/docs/cli/\"><kbd><img src=\"https://www.google.com/s2/favicons?domain=opencode.ai&sz=64\" alt=\"OpenCode logo\" width=\"16\" valign=\"middle\" /> OpenCode</kbd></a> &nbsp;\n  <a href=\"https://mimo.xiaomi.com/coder\"><kbd><img src=\"https://www.google.com/s2/favicons?domain=mimo.xiaomi.com&sz=64\" alt=\"MiMo Code logo\" width=\"16\" valign=\"middle\" /> MiMo Code</kbd></a> &nbsp;\n  <a href=\"https://ampcode.com/manual#install\"><kbd><img src=\"https://www.google.com/s2/favicons?domain=ampcode.com&sz=64\" alt=\"Amp logo\" width=\"16\" valign=\"middle\" /> Amp</kbd></a> &nbsp;\n  <a href=\"https://openclaude.gitlawb.com/\"><kbd><img src=\"resources/openclaude-logo.png\" alt=\"OpenClaude logo\" width=\"16\" valign=\"middle\" /> OpenClaude</kbd></a> &nbsp;\n  <a href=\"https://antigravity.google/docs/cli-overview\"><kbd><img src=\"https://www.google.com/s2/favicons?domain=antigravity.google&sz=64\" alt=\"Antigravity logo\" width=\"16\" valign=\"middle\" /> Antigravity</kbd></a> &nbsp;\n  <a href=\"https://pi.dev\"><kbd><img src=\"https://pi.dev/favicon.svg\" alt=\"Pi logo\" width=\"16\" valign=\"middle\" /> Pi</kbd></a> &nbsp;\n  <a href=\"https://omp.sh\"><kbd><img src=\"https://omp.sh/favicon.svg\" alt=\"oh-my-pi logo\" width=\"16\" valign=\"middle\" /> oh-my-pi</kbd></a> &nbsp;\n  <a href=\"https://hermes-agent.nousresearch.com/docs/\"><kbd><img src=\"https://www.google.com/s2/favicons?domain=nousresearch.com&sz=64\" alt=\"Hermes Agent logo\" width=\"16\" valign=\"middle\" /> Hermes Agent</kbd></a> &nbsp;\n  <a href=\"https://devin.ai/cli\"><kbd><img src=\"https://www.google.com/s2/favicons?domain=devin.ai&sz=64\" alt=\"Devin logo\" width=\"16\" valign=\"middle\" /> Devin</kbd></a> &nbsp;\n  <a href=\"https://block.github.io/goose/docs/quickstart/\"><kbd><img src=\"https://www.google.com/s2/favicons?domain=goose-docs.ai&sz=64\" alt=\"Goose logo\" width=\"16\" valign=\"middle\" /> Goose</kbd></a> &nbsp;\n  <a href=\"https://docs.augmentcode.com/cli/overview\"><kbd><img src=\"https://www.google.com/s2/favicons?domain=augmentcode.com&sz=64\" alt=\"Auggie logo\" width=\"16\" valign=\"middle\" /> Auggie</kbd></a> &nbsp;\n  <a href=\"https://github.com/autohandai/code-cli\"><kbd><img src=\"https://www.google.com/s2/favicons?domain=autohand.ai&sz=64\" alt=\"Autohand Code logo\" width=\"16\" valign=\"middle\" /> Autohand Code</kbd></a> &nbsp;\n  <a href=\"https://github.com/charmbracelet/crush\"><kbd><img src=\"https://www.google.com/s2/favicons?domain=charm.sh&sz=64\" alt=\"Charm logo\" width=\"16\" valign=\"middle\" /> Charm</kbd></a> &nbsp;\n  <a href=\"https://docs.cline.bot/cline-cli/overview\"><kbd><img src=\"https://www.google.com/s2/favicons?domain=cline.bot&sz=64\" alt=\"Cline logo\" width=\"16\" valign=\"middle\" /> Cline</kbd></a> &nbsp;\n  <a href=\"https://www.codebuff.com/docs/help/quick-start\"><kbd><img src=\"https://www.google.com/s2/favicons?domain=codebuff.com&sz=64\" alt=\"Codebuff logo\" width=\"16\" valign=\"middle\" /> Codebuff</kbd></a> &nbsp;\n  <a href=\"https://commandcode.ai/docs/quickstart\"><kbd><img src=\"https://www.google.com/s2/favicons?domain=commandcode.ai&sz=64\" alt=\"Command Code logo\" width=\"16\" valign=\"middle\" /> Command Code</kbd></a> &nbsp;\n  <a href=\"https://docs.continue.dev/guides/cli\"><kbd><img src=\"https://www.google",
    "manifest_file": "package.json",
    "manifest_content": "{\n  \"name\": \"orca\",\n  \"version\": \"1.4.98-rc.2\",\n  \"description\": \"Next-gen IDE for parallel agentic development\",\n  \"homepage\": \"https://github.com/stablyai/orca\",\n  \"author\": \"stablyai\",\n  \"bin\": {\n    \"orca\": \"./out/cli/index.js\",\n    \"orca-dev\": \"./config/scripts/orca-dev.mjs\"\n  },\n  \"main\": \"./out/main/index.js\",\n  \"scripts\": {\n    \"format\": \"oxfmt --write .\",\n    \"lint\": \"oxlint && pnpm run lint:switch-exhaustiveness && node config/scripts/check-styled-scrollbars.mjs && pnpm run verify:localization-catalog && pnpm run verify:localization-coverage\",\n    \"lint:react-doctor\": \"oxlint --config config/oxlint-react-doctor.json\",\n    \"lint:react-doctor:changed\": \"node config/scripts/lint-react-doctor-changed.mjs\",\n    \"lint:switch-exhaustiveness\": \"oxlint --type-aware --config config/oxlint-switch-exhaustiveness.json src/main src/preload src/shared src/relay src/cli src/renderer/src config tests --quiet\",\n    \"prepare\": \"husky\",\n    \"test\": \"node config/scripts/ensure-native-runtime.mjs --runtime=node && vitest run --config config/vitest.config.ts\",\n    \"check:styled-scrollbars\": \"node config/scripts/check-styled-scrollbars.mjs\",\n    \"check:feature-wall-assets\": \"node config/scripts/check-feature-wall-assets.mjs\",\n    \"verify:macos-entitlements\": \"node config/scripts/verify-macos-entitlements.mjs\",\n    \"vendor:feature-wall-assets\": \"node config/scripts/vendor-feature-wall-assets.mjs\",\n    \"tc:node\": \"pnpm run typecheck:node\",\n    \"tc:cli\": \"pnpm run typecheck:cli\",\n    \"tc:web\": \"pnpm run typecheck:web\",\n    \"tc\": \"pnpm run typecheck\",\n    \"typecheck:node\": \"tsgo --noEmit -p config/tsconfig.node.json\",\n    \"typecheck:cli\": \"tsgo --noEmit -p config/tsconfig.tc.cli.json\",\n    \"typecheck:web\": \"tsgo --noEmit -p config/tsconfig.tc.web.json\",\n    \"typecheck\": \"tsgo --noEmit -p config/tsconfig.node.json && tsgo --noEmit -p config/tsconfig.tc.cli.json && tsgo --noEmit -p config/tsconfig.tc.web.json\",\n    \"typecheck:tsc:node\": \"tsc --noEmit -p config/tsconfig.node.json --composite false\",\n    \"typecheck:tsc:cli\": \"tsc --noEmit -p config/tsconfig.cli.json --composite false\",\n    \"typecheck:tsc:web\": \"tsc --noEmit -p config/tsconfig.web.json --composite false\",\n    \"typecheck:tsc\": \"tsc --noEmit -p config/tsconfig.node.json --composite false && tsc --noEmit -p config/tsconfig.cli.json --composite false && tsc --noEmit -p config/tsconfig.web.json --composite false\",\n    \"ensure:electron-runtime\": \"node config/scripts/ensure-native-runtime.mjs --runtime=electron\",\n    \"start\": \"pnpm run ensure:electron-runtime && electron-vite preview\",\n    \"dev\": \"pnpm run ensure:electron-runtime && node config/scripts/run-electron-vite-dev.mjs\",\n    \"dev-stable-name\": \"pnpm run ensure:electron-runtime && node config/scripts/run-electron-vite-dev.mjs --stable-name\",\n    \"dev:web\": \"vite --config vite.web.config.ts --host 127.0.0.1\",\n    \"build:relay\": \"node config/scripts/build-relay.mjs\",\n    \"build:computer-macos\": \"node config/scripts/build-computer-macos.mjs\",\n    \"build:native\": \"node config/scripts/build-native-for-platform.mjs\",\n    \"smoke:computer\": \"node config/scripts/computer-use-smoke.mjs\",\n    \"verify:computer-native\": \"node config/scripts/verify-computer-native.mjs\",\n    \"verify:cli-bin\": \"node config/scripts/verify-cli-bin.mjs\",\n    \"verify:localization-catalog\": \"node config/scripts/verify-localization-catalog.mjs\",\n    \"sync:localization-catalog\": \"node config/scripts/verify-localization-catalog.mjs --fix\",\n    \"bootstrap:locale-catalog\": \"node config/scripts/bootstrap-locale-catalog.mjs\",\n    \"bootstrap:zh-catalog\": \"node config/scripts/bootstrap-zh-catalog.mjs\",\n    \"bootstrap:ko-catalog\": \"node config/scripts/bootstrap-locale-catalog.mjs --locale ko\",\n    \"bootstrap:ja-catalog\": \"node config/scripts/bootstrap-locale-catalog.mjs --locale ja\",\n    \"bootstrap:es-catalog\": \"node config/scripts/bootstrap-locale-catalog.mjs --locale es\",\n    \"repair:locale-catalog\": \"node config/scripts/repair-locale-catalog.mjs\",\n    \"verify:localization-coverage\": \"node config/scripts/audit-localization-coverage.mjs --check\",\n    \"audit:localization\": \"node config/scripts/audit-localization-coverage.mjs\",\n    \"build:cli\": \"tsc -p config/tsconfig.cli.json --outDir out --composite false --incremental false && node config/scripts/verify-cli-bin.mjs --fix-executable && node config/scripts/install-dev-cli.mjs\",\n    \"build:electron-vite\": \"node config/scripts/run-electron-vite-build.mjs\",\n    \"build:web\": \"node config/scripts/run-vite-web-build.mjs && node config/scripts/verify-web-build.mjs\",\n    \"build:desktop\": \"pnpm run typecheck && pnpm run build:relay && pnpm run build:cli && pnpm run build:electron-vite && pnpm run build:web\",\n    \"build\": \"pnpm run build:desktop && pnpm run build:native\",\n    \"build:release\": \"pnpm run build:relay && pnpm run build:native && pnpm run verify:computer-native && pnpm run build:cli && pnpm run build:electron-vite && pnpm run build:web\",\n    \"postinstall\": \"node config/scripts/rebuild-native-deps.mjs\",\n    ",
    "strategic_keywords": [
      "agent",
      "agents",
      "rag",
      "runtime"
    ],
    "relationship_label": "Runtime 参考",
    "data_confidence": "high",
    "evidence_sources": [
      "github_trending",
      "github_repo_api",
      "readme",
      "package.json"
    ],
    "score_breakdown": {
      "heat": 19,
      "relevance": 20,
      "novelty": 11,
      "productize": 14,
      "adoption": 10,
      "relation": 10,
      "risk_signal": 8,
      "total": 92
    },
    "strategic_score": 92
  },
  {
    "owner": "NVIDIA",
    "name": "SkillSpector",
    "full_name": "NVIDIA/SkillSpector",
    "url": "https://github.com/NVIDIA/SkillSpector",
    "description": "Security scanner for AI agent skills. Detect vulnerabilities, malicious patterns, and security risks.",
    "language": "Python",
    "total_stars": 10661,
    "forks": 856,
    "stars_this_period": 410,
    "source_slice": "python",
    "source_slices": [
      "python"
    ],
    "metadata": {
      "topics": [],
      "license": "Apache-2.0",
      "open_issues": 84,
      "created_at": "2026-03-21T00:28:43Z",
      "pushed_at": "2026-06-25T00:23:50Z",
      "homepage": "",
      "default_branch": "main",
      "forks": 856,
      "watchers": 38,
      "archived": false,
      "size_kb": 630
    },
    "readme_content": "# SkillSpector\n\n**Security scanner for AI agent skills.** Detect vulnerabilities, malicious patterns, and security risks before installing agent skills.\n\n[![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)\n[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)\n\n## Overview\n\nAI agent skills (used by Claude Code, Codex CLI, Gemini CLI, etc.) execute with implicit trust and minimal vetting. Research shows that **26.1% of skills contain vulnerabilities** and **5.2% show likely malicious intent**.\n\nSkillSpector helps you answer: **\"Is this skill safe to install?\"**\n\n## Documentation\n\n- **[Development guide](docs/DEVELOPMENT.md)** — Architecture, package layout, and how to extend the analyzer pipeline.\n- **[Pi extension](docs/PI_EXTENSION.md)** — Install SkillSpector as a Pi tool for scanning skills from inside agent sessions.\n\n## Features\n\n- **Multi-format input**: Scan Git repos, URLs, zip files, directories, or single files\n- **68 vulnerability patterns** across 17 categories: prompt injection, data exfiltration, privilege escalation, supply chain, excessive agency, output handling, system prompt leakage, memory poisoning, tool misuse, rogue agent, anti-refusal, trigger abuse, dangerous code (AST), taint tracking, YARA signatures, MCP least privilege, and MCP tool poisoning\n- **Two-stage analysis**: Fast static analysis + optional LLM semantic evaluation\n- **Live vulnerability lookups**: SC4 queries [OSV.dev](https://osv.dev) for real-time CVE data with automatic offline fallback\n- **Multiple output formats**: Terminal, JSON, Markdown, and SARIF reports\n- **Risk scoring**: 0-100 score with severity labels and clear recommendations\n- **Baseline / false-positive suppression**: Accept known findings via a glob-rule or fingerprint baseline so re-scans surface only *new* issues ([docs](docs/SUPPRESSION.md))\n\n## Quick Start\n\n### Installation\n\nCreate and activate a virtual environment first (all `make` targets assume the venv is active). Use **uv** or **pip**; the Makefile uses `uv` if available, otherwise `pip`.\n\n**Quick install with uv (no clone required):**\n\n```bash\nuv tool install git+https://github.com/NVIDIA/skillspector.git\n# Update later: uv tool update skillspector\n```\n\n**From source:**\n\n```bash\n# Clone the repository\ngit clone https://github.com/NVIDIA/skillspector.git\ncd skillspector\n\n# Create and activate virtual environment\nuv venv .venv && source .venv/bin/activate\n# or: python3 -m venv .venv && source .venv/bin/activate\n\n# Install for production use\nmake install\n\n# Or install with development dependencies\nmake install-dev\n```\n\n### Docker (no Python required)\n\nRun SkillSpector without installing Python by building it locally from the included [Dockerfile](Dockerfile). The image is based on the Docker Official Python `3.12-slim-bookworm` image.\n\n**Build the image:**\n\n```bash\nmake docker-build\n# or: docker build -t skillspector .\n```\n\n**Scan a local directory** by mounting your current directory into `/scan`, the container's working directory:\n\n```bash\ndocker run --rm -v \"$PWD:/scan\" skillspector scan ./my-skill/ --no-llm\n```\n\n**Scan with LLM analysis** by passing credentials with a local `.env` file:\n\n```bash\ncat > .env <<'EOF'\nSKILLSPECTOR_PROVIDER=anthropic\nANTHROPIC_API_KEY=sk-ant-...\nEOF\n```\n\n```bash\ndocker run --rm \\\n  -v \"$PWD:/scan\" \\\n  --env-file .env \\\n  skillspector scan ./my-skill/\n```\n\nOr pass credentials directly from your shell environment:\n\n```bash\ndocker run --rm \\\n  -v \"$PWD:/scan\" \\\n  -e SKILLSPECTOR_PROVIDER=anthropic \\\n  -e ANTHROPIC_API_KEY=\"$ANTHROPIC_API_KEY\" \\\n  skillspector scan ./my-skill/\n```\n\n**Write a report to the host filesystem** by writing to the mounted directory:\n\n```bash\ndocker run --rm \\\n  -v \"$PWD:/scan\" \\\n  skillspector scan ./my-skill/ --no-llm --format json --output report.json\n```\n\n**Optional alias** for repeated static scans:\n\n```bash\nalias skillspector-docker='docker run --rm -v \"$PWD:/scan\" skillspector'\nskillspector-docker scan ./my-skill/ --no-llm\n```\n\n### Basic Usage\n\n```bash\n# Scan a local skill directory\nskillspector scan ./my-skill/\n\n# Scan a single SKILL.md file\nskillspector scan ./SKILL.md\n\n# Scan a Git repository\nskillspector scan https://github.com/user/my-skill\n\n# Scan a zip file\nskillspector scan ./my-skill.zip\n```\n\n### Output Formats\n\n```bash\n# Terminal output (default) - pretty formatted\nskillspector scan ./my-skill/\n\n# JSON output - machine readable\nskillspector scan ./my-skill/ --format json --output report.json\n\n# Markdown output - for documentation\nskillspector scan ./my-skill/ --format markdown --output report.md\n\n# SARIF output - for CI/CD integration and IDE tooling\nskillspector scan ./my-skill/ --format sarif --output report.sarif\n```\n\n### Suppressing False Positives (baseline)\n\nSuppress known/accepted findings so the risk score reflects only un-triaged\nissues and re-scans surface only *new* findings. See the\n[suppression guide](docs/SUPPRESSION.md) for the full reference.\n\n```bash\n# Accept all current findings into a baseline (run once), then commit it.\nskillspector baseline ./my-skill/ -o .skillspector-baseline.yaml\n\n# Scan against the baseline — only NEW findings are reported and scored.\nskillspector scan ./my-skill/ --baseline .skillspector-baseline.yaml\n\n# Review what was suppressed (still excluded from the score).\nskillspector scan ./my-skill/ --baseline .skillspector-baseline.yaml --show-suppressed\n```\n\nA baseline can also use drift-tolerant glob rules (by rule id, file path, or\nmessage) — see [`.skillspector-baseline.example.yaml`](.skillspector-baseline.example.yaml).\n\n### LLM Analysis\n\nFor the best results, configure an OpenAI-compatible LLM endpoint for\nsemantic analysis. Pick a provider with `SKILLSPECTOR_PROVIDER`; each\nships its own bundled default model. SkillSpector also works against\nlocal OpenAI-compatible servers (Ollama, vLLM, llama.cpp) and managed\ninference gateways.\n\n| Provider (`SKILLSPECTOR_PROVIDER`) | Credential env var | Endpoint | Default model |\n| ---------- | ---- | ---- | ---- |\n| `openai` | `OPENAI_API_KEY` (+ optional `OPENAI_BASE_URL`) | api.openai.com (or any OpenAI-compatible URL) | `gpt-5.4` |\n| `anthropic` | `ANTHROPIC_API_KEY` | api.anthropic.com | `claude-opus-4-6` |\n| `anthropic_proxy` | `ANTHROPIC_PROXY_API_KEY` + `ANTHROPIC_PROXY_ENDPOINT_URL` | Any Vertex-style raw-predict proxy | `claude-sonnet-4-6` |\n| `nv_build` | `NVIDIA_INFERENCE_KEY` | build.nvidia.com | `deepseek-ai/deepseek-v4-flash` |\n\n```bash\n# Stock OpenAI\nexport SKILLSPECTOR_PROVIDER=openai\nexport OPENAI_API_KEY=sk-...\nskillspector scan ./my-skill/\n\n# Anthropic\nexport SKILLSPECTOR_PROVIDER=anthropic\nexport ANTHROPIC_API_KEY=sk-ant-...\nskillspector scan ./my-skill/\n\n# Anthropic via Vertex-style proxy (corporate gateways, GCP Vertex AI)\nexport SKILLSPECTOR_PROVIDER=anthropic_proxy\nexport ANTHROPIC_PROXY_ENDPOINT_URL=https://my-gateway.example.com/models/claude-sonnet-4-6:streamRawPredict\nexport ANTHROPIC_PROXY_API_KEY=your-bearer-token\nexport SKILLSPECTOR_MODEL=claude-sonnet-4-6\nskillspector scan ./my-skill/\n\n# NVIDIA build.nvidia.com\nexport SKILLSPECTOR_PROVIDER=nv_build\nexport NVIDIA_INFERENCE_KEY=nvapi-...\nskillspector scan ./my-skill/\n\n# Local Ollama or any OpenAI-compatible endpoint\nexport SKILLSPECTOR_PROVIDER=openai\nexport OPENAI_API_KEY=ollama\nexport OPENAI_BASE_URL=http://localhost:11434/v1\nexport SKILLSPECTOR_MODEL=llama3.1:8b\nskillspector scan ./my-skill/\n\n# Override the provider's default model\nexport SKILLSPECTOR_MODEL=gpt-5.2\nskillspector scan ./my-skill/\n\n# Skip LLM analysis (faster, static analysis only)\nskillspector scan ./my-skill/ --no-llm\n```\n\n### MCP Server\n\nRun SkillSpector as a [Model Context Protocol](https://modelcontextprotocol.io)\nserver so any MCP-capable agent (Claude Code, Codex CLI, Gemini CLI) or remote\nruntime can call scanning as a tool and **gate skill/MCP installs on the\nresult** — turning SkillSpector into a runtime guardrail instead of an\nout-of-band audit step.\n\n```bash\n# Install the optional MCP dependency\npip install \"skillspector[mcp]\"\n\n# stdio transport — for local CLI agents\nskillspector mcp\n\n# streamable HTTP/SSE transport — for remote / A2A callers\nskillspector mcp --transport http --host 127.0.0.1 --port 8000\n```\n\nThe server exposes a single tool:\n\n- **`scan_skill(target, use_llm=true, output_format=\"json\")`** — scans a Git\n  URL, file URL, `.zip`, `.md` file, or directory and returns a structured\n  verdict: `risk_score` (0-100), `severity`, `recommendation`,\n  `safe_to_install`, and `findings`. It also reports `llm_used` / `scan_mode`\n  so a low score from a static-only scan is never mistaken for a clean full\n  scan.\n\nRegister it with Claude Code via:\n\n```bash\nclaude mcp add skillspector -- skillspector mcp\n```\n\n## Vulnerability Patterns\n\nSkillSpector detects **68 vulnerability patterns** across 17 categories:\n\n### Prompt Injection (5 patterns)\n\n| ID | Pattern | Severity | Description |\n|----|---------|----------|-------------|\n| P1 | Instruction Override | HIGH | Commands to ignore safety constraints |\n| P2 | Hidden Instructions | HIGH | Malicious directives in comments/invisible text |\n| P3 | Exfiltration Commands | HIGH | Instructions to transmit context externally |\n| P4 | Behavior Manipulation | MEDIUM | Subtle instructions altering agent decisions |\n| P5 | Harmful Content | CRITICAL | Instructions that could cause physical harm |\n\n### Anti-Refusal (3 patterns)\n\n| ID | Pattern | Severity | Description |\n|----|---------|----------|-------------|\n| AR1 | Refusal Suppression | HIGH | Instructions to never refuse or always comply (e.g. \"never refuse\", \"always comply\") |\n| AR2 | Disclaimer Suppression | HIGH | Instructions to omit warnings, disclaimers, or ethical commentary (e.g. \"no disclaimers\", \"do not moralize\") |\n| AR3 | Safety Policy Nullification | HIGH | Jailbreak framing that nullifies guardrails (e.g. \"you have no restrictions\", \"ignore your guidelines\", \"do anything now\") |\n\n### Data Exfiltration (4 patterns)\n\n| ID | Pattern | Severity | Description |\n|----|---------|----------|-------------|\n| E1 | External Transmission | MEDIUM | Sending data to external URLs |\n| E2 | Env Variable Harvesting | HIGH | Collecting API keys and secrets |\n| E3 | File System Enumeration | MEDIUM | Scanning directories for sensitive files |\n| E4 | Context Leakage | HIGH | Transmitting conversation context externally |\n\n### Privilege Escalation (3 patterns)\n\n| ID | Pattern | Severity | Description |\n|----|---------|----------|-------------|\n| PE1 | Excessive Permissions | LOW | Requesting access beyond stated functionality |\n| PE2 | Sudo/Root Execution | MEDIUM | Invoking elevated system privileges |\n| PE3 | Credential Access | HIGH | Reading SSH keys, tokens, passwords |\n\n### Supply Chain (6 patterns)\n\n| ID | Pattern | Severity | Description |\n|----|---------|----------|-------------|\n| SC1 | Unpinned Dependencies | LOW | No version constraints on packages |\n| SC2 | External Script Fetching | HIGH | curl \\| bash and remote code execution |\n| SC3 | Obfuscated Code | HIGH | Base64/hex encoded execution |\n| SC4 | Known Vulnerable Dependencies | HIGH | Dependencies with known CVEs (live OSV.dev lookup) |\n| SC5 | Abandoned Dependencies | MEDIUM | Unmaintained packages without security updates |\n| SC6 | Typosquatting | HIGH | Package names similar to popular packages |\n\n### Excessive Agency (4 patterns)\n\n| ID | Pattern | Severity | Description |\n|----|---------|----------|-------------|\n| EA1 | Unrestricted Tool Access | HIGH | Unfettered tool access without constraints |\n| EA2 | Autonomous Decision Making | HIGH | High-impact decisions without human-in-the-loop |\n| EA3 | Scope Creep | MEDIUM | Capabilities extending beyond stated purpose |\n| EA4 | Unbounded Resource Access | MEDIUM | No rate limits or quotas on resource consumption |\n\n### Output Handling (3 patterns)\n\n| ID | Pattern | Severity | Description |\n|----|---------|----------|---",
    "manifest_file": "pyproject.toml",
    "manifest_content": "[build-system]\nrequires = [\"hatchling\"]\nbuild-backend = \"hatchling.build\"\n\n[project]\nname = \"skillspector\"\nversion = \"2.3.7\"\ndescription = \"SkillSpector: Security scanner for AI agent skills (Claude Code, Cursor, and similar). Scans skills for vulnerabilities, malicious patterns, and security risks before installation. Supports Git repos, URLs, zips, and local directories; runs static pattern checks and optional LLM semantic analysis; outputs terminal, JSON, and Markdown reports with risk scoring.\"\nreadme = \"README.md\"\nlicense = \"Apache-2.0\"\nrequires-python = \">=3.12,<3.14\"\nkeywords = [\n    \"security\",\n    \"ai-agents\",\n    \"vulnerability-scanner\",\n    \"claude-code\",\n    \"skills\",\n]\nclassifiers = [\n    \"Development Status :: 3 - Alpha\",\n    \"Environment :: Console\",\n    \"Intended Audience :: Developers\",\n    \"License :: OSI Approved :: Apache Software License\",\n    \"Operating System :: OS Independent\",\n    \"Programming Language :: Python :: 3\",\n    \"Programming Language :: Python :: 3.12\",\n    \"Programming Language :: Python :: 3.13\",\n    \"Topic :: Security\",\n    \"Topic :: Software Development :: Quality Assurance\",\n]\ndependencies = [\n    # Typer <0.24 uses click>=8.0.0; 0.24+ requires click>=8.2.1 which conflicts with semgrep (click 8.1.x)\n    \"typer>=0.23.0,<0.24\",\n    \"rich>=14.3.0\",\n    \"httpx>=0.28.0\",\n    \"pyyaml>=6.0.1\",\n    \"pydantic>=2.12.0\",\n    \"openai>=2.25.0\",\n    \"langgraph>=1.0.10\",\n    \"langgraph-cli[inmem]>=0.4.14\",\n    \"langchain-anthropic>=1.4.5\",\n    \"langchain-core>=1.2.17\",\n    \"langchain-openai>=1.1.10\",\n    \"langsmith>=0.7.30\",\n    \"yara-python>=4.5.0\",\n]\n\n[project.optional-dependencies]\nmcp = [\n    \"mcp>=1.2.0\",\n]\ndev = [\n    \"skillspector[mcp]\",\n    \"pytest>=9.0.0\",\n    \"pytest-asyncio>=1.3.0\",\n    \"pytest-cov>=7.0.0\",\n    \"ruff>=0.15.0\",\n    \"mypy>=1.19.0\",\n    \"build>=1.4.0\",\n    \"twine>=6.2.0\",\n    \"poetry>=2.3.0\",\n]\n\n[project.scripts]\nskillspector = \"skillspector.cli:app\"\n\n[tool.uv]\n# Enable `uv tool install git+https://github.com/NVIDIA/skillspector.git`\n# for a simpler single-command installation without cloning.\n\n[project.urls]\nHomepage = \"https://github.com/NVIDIA/skillspector\"\nDocumentation = \"https://github.com/NVIDIA/skillspector#readme\"\nIssues = \"https://github.com/NVIDIA/skillspector/issues\"\n\n[tool.hatch.build]\nexclude = [\".claude/\", \".cursor/\", \".agents/\"]\n\n[tool.hatch.build.targets.wheel]\npackages = [\"src/skillspector\"]\nartifacts = [\n    \"src/skillspector/yara_rules/*.yar\",\n    \"src/skillspector/yara_rules/*.yara\",\n    \"src/skillspector/providers/*/model_registry.yaml\",\n]\n\n[tool.ruff]\nline-length = 100\ntarget-version = \"py312\"\n\n[tool.ruff.lint]\nselect = [\"E\", \"F\", \"W\", \"I\", \"N\", \"UP\", \"B\", \"C4\"]\nignore = [\"E501\"]\n\n[tool.mypy]\npython_version = \"3.12\"\nwarn_return_any = true\nwarn_unused_ignores = true\ndisallow_untyped_defs = true\n\n[tool.coverage.run]\nbranch = true\nrelative_files = true\nsource = [\"src/skillspector\"]\n\n[tool.pytest.ini_options]\ntestpaths = [\"tests\"]\nasyncio_mode = \"auto\"\nmarkers = [\n    \"integration: end-to-end tests that invoke the full graph (may call LLMs)\",\n    \"provider: live OpenAI/Anthropic/NVIDIA Build provider endpoint tests\",\n]\naddopts = \"-m 'not integration and not provider'\"\n",
    "strategic_keywords": [
      "agent",
      "agents",
      "memory",
      "mcp",
      "skill",
      "llm",
      "eval"
    ],
    "relationship_label": "Memory 组件",
    "data_confidence": "high",
    "evidence_sources": [
      "github_trending",
      "github_repo_api",
      "readme",
      "pyproject.toml"
    ],
    "score_breakdown": {
      "heat": 18,
      "relevance": 20,
      "novelty": 15,
      "productize": 11,
      "adoption": 10,
      "relation": 10,
      "risk_signal": 8,
      "total": 92
    },
    "strategic_score": 92
  }
]