[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-qwen-qwen-mm-plugins-video-memory":3,"mdc-jlivi3-key":34,"related-repo-qwen-qwen-mm-plugins-video-memory":1345,"related-org-qwen-qwen-mm-plugins-video-memory":1421},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"qwen-mm-plugins-video-memory","analyze long form video content","Triggered for long videos (30+ minutes), whether a single file or a directory of multiple videos. Vision-language MCP tools designed for efficient reading and semantic analysis of long videos (30+ minutes), supporting memory construction and semantic search.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"qwen","Qwen","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fqwen.png","QwenLM",[13,17,20],{"name":14,"slug":15,"type":16},"Analysis","analysis","tag",{"name":18,"slug":19,"type":16},"Multimodal","multimodal",{"name":21,"slug":22,"type":16},"Video","video",54,"https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen-MM-Plugins","2026-08-05T05:58:28.007509",null,0,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"Make any agent harness multimodal-native.","https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen-MM-Plugins\u002Ftree\u002FHEAD\u002Fsrc\u002Fcapabilities\u002Fvideo-memory\u002Fskill","---\nname: qwen-mm-plugins-video-memory\ndescription: \"Triggered for long videos (30+ minutes), whether a single file or a directory of multiple videos. Vision-language MCP tools designed for efficient reading and semantic analysis of long videos (30+ minutes), supporting memory construction and semantic search.\"\n---\n\n# Graph Memory — Long Video QA Retrieval\n\nCheck the `qwen-mm-plugins-video-memory` tools in your tool list for full schemas and parameters.\n\n\n## ROUTING RULE — Read This First\n\nWhen a user asks about a video that is **longer than 30 minutes**, you MUST use this skill instead of `read_video`. `read_video` cannot meaningfully cover a multi-hour video — it samples too few frames once, which is ineffective and always misses important content. You MUST build memory first, then you can fast explore the whole long video with the help of your pre-built memory.\n\n**Workflow:**\n1. Check if `\u003Cvideo_path>.memory\u002F` directory exists\n2. **Memory exists** → query it using the `qwen-mm-plugins-video-memory` tools\n3. **Memory does not exist** → build it first (see \"Building Graph Memory\" section), then query\n4. After locating a specific segment via memory tools, you MUST use `read_video` with a narrow `start_time`\u002F`end_time` for frame-level visual inspection, because memory is always coarse and maybe inaccurate.\n\n## Hierarchical Graph Memory\n\nThe memory is a 4-level tree. You start broad (Root\u002FSuperEvent) and drill down to find specifics:\n\n```\nRoot (1 per video)\n  └─ SuperEvent (10-20 story arcs)\n       └─ MacroEvent (3-8 per SuperEvent, each ~3-8 min)\n            └─ Subgraph (entities, events, OCR text, relations)\n```\n\n### Level Details\n\n| Level | Contains | IDs |\n|-------|----------|-----|\n| **Root** | Title, description, themes, key entities, emotional tone | — |\n| **SuperEvent** | High-level narrative arc, time range, key entities | `super_01`, `super_02`, ... |\n| **MacroEvent** | Specific event segment with time range, summary, key entities | `macro_0001`, `macro_0002`, ... |\n| **Subgraph** | Entity nodes (PERSON\u002FOBJECT\u002FLOCATION), Event nodes (timestamped actions), OCR text (on-screen text), and Edges (SEMANTIC\u002FCAUSAL\u002FTEMPORAL\u002FHIERARCHICAL\u002FSPATIAL\u002FIDENTITY relations) | `macro_0001:ent_001`, ... |\n\n\n## Building Graph Memory\n\nIf `graph_memory.json` doesn't exist for a video, build it:\n\n```bash\n# Build memory for a single video (output: \u003Cvideo_path>.memory\u002F)\nbash script\u002Fbuild_memory\u002Fbuild_memory.sh \u002Fpath\u002Fto\u002Fvideo.mp4\n\n# Build with custom options\nbash script\u002Fbuild_memory\u002Fbuild_memory.sh \u002Fpath\u002Fto\u002Fvideo.mp4 \\\n    --output-dir \u002Fpath\u002Fto\u002Foutput --model qwen3.7-plus --api-key \"$DASHSCOPE_API_KEY\"\n```\n\n\n## Retrieval Workflow\n\nMost questions follow a 2-step pattern:\n\n### Step 1: Locate (find the right macro_id)\n\nChoose ONE entry point based on the question type:\n\n| Question Type | Entry Tool | Example |\n|---|---|---|\n| References a specific time | `search_by_time(start_sec, end_sec)` | \"What happens at 45:30?\" |\n| Asks about a person\u002Faction\u002Fevent | `search_nodes(query)` | \"What did the chef cook?\" |\n| Asks about on-screen text\u002Fscores | `search_ocr_text(query)` | \"What was the final score?\" |\n| References a known story segment | `get_macro_events(super_id)` | \"In the first quarter...\" |\n| Asks about event causality | `search_nodes(query)` → `get_subgraph` | \"What caused the explosion?\" |\n\n### Step 2: Drill Down (get full detail)\n\nCall `get_subgraph(macro_id)` on the 1-2 most relevant macro_ids from Step 1. This returns ALL detail: entities, events, OCR text, and relations. Answer from this data.\n\n### Decision Flow\n\n```\nQuestion arrives\n  ├─ Does the SuperEvent list already narrow it? → get_macro_events(super_id) → get_subgraph\n  ├─ Time reference? → search_by_time → get_subgraph\n  ├─ On-screen text\u002Fscore? → search_ocr_text → get_subgraph (if needed)\n  ├─ Person\u002Faction\u002Fevent? → search_nodes → get_subgraph\n  └─ Causal\u002Frelational? → search_nodes → get_subgraph (relations are in the subgraph)\n```\n\n## Tools Reference\n\n### Navigation (hierarchy drill-down)\n\n**get_summary** — Video-level root summary.\n- Params: `video_path` (optional)\n- Returns: title, description, themes, key entities, emotional tone\n- Use when: you need a quick overview before drilling down\n\n**get_super_events** — List all SuperEvents (high-level narrative arcs).\n- Params: `video_path` (optional)\n- Returns: super_id, label, time_range, key_entities, description, num_macros\n- Use when: you need the overall structure or to pick the relevant story arc\n\n**get_macro_events** — List MacroEvents under a SuperEvent.\n- Params: `super_id` (optional), `macro_ids` (optional list)\n- Returns: macro_id, time_range, label, key_entity_names, description\n- Use when: initial context already narrows the segment\n\n**get_subgraph** — Full detail for one MacroEvent. **Most information-rich tool.**\n- Params: `macro_id` (required)\n- Returns: Entities, Events, OCR texts, Relations\n- Use when: you have a macro_id and need specifics\n\n### Search (direct access)\n\n**search_nodes** — Semantic search over Entity and Event nodes (excludes OCR).\n- Params: `query` (required), `top_k`, `node_types` (`[\"event\"]`, `[\"entity\"]`, or both)\n- Query guide: write a DESCRIPTIVE STATEMENT, not a question\n  - Good: \"A player scores with an alley-oop dunk\"\n  - Bad: \"Which player scored the alley-oop?\"\n  - For multi-choice: extract SHARED info across options, exclude differing details\n\n**search_ocr_text** — Semantic search over on-screen text only.\n- Params: `query` (required), `top_k`\n- Use for: scores, stats, jersey numbers, broadcast graphics\n- Do NOT use search_nodes for OCR content — they are separate indexes\n\n**search_asr_text** — Semantic search over ASR transcript text (speech, dialogue, narration).\n- Params: `query` (required), `top_k`\n- Use for: spoken content, dialogue, narration, or other audio\u002Fverbal information\n\n**search_by_time** — Find MacroEvents by time range.\n- Params: `start_sec`\u002F`end_sec` (seconds), or `start_time`\u002F`end_time` (`DAY{N} HH:MM:SS`, for EgoLife)\n- Returns summaries only — follow up with get_subgraph for detail\n\n**enumerate_events** — Enumerate ALL matching event instances in time order — built for COUNTING \u002F \"how many times \u002F list every occurrence\" questions.\n- Params: `query` (required; a descriptive statement of the target event), `min_cosine`, `max_results`, `node_types` (default `[\"event\"]`; use `[\"entity\"]` for objects\u002Fpeople)\n- Unlike search_nodes (top-k best matches), returns every match above a similarity threshold, deduped and sorted by start time\n- If undercounting, retry with a lower `min_cosine` and alternative phrasings\n\n### Video Frame Extraction\n\n**read_video** — Extract frames from the original video after narrowing the time range via memory tools. `video_path` is in the initial context.\n\n## Anti-Patterns (common mistakes)\n\n1. **Answering from SuperEvent descriptions** — these are summaries. Always get_subgraph for specific details.\n2. **Repeating similar searches** — if search_nodes found macro_0022, call get_subgraph(macro_0022) instead of searching with a slightly different query.\n3. **Ignoring tool types** — if search_nodes gives poor results, try search_ocr_text or search_by_time. Different indexes cover different content.\n4. **Guessing counts** — for \"how many\" questions, get_subgraph and count from the explicit node list. Never estimate from words like \"several\" or \"multiple\".\n5. **Skipping tool calls** — never answer without querying the memory graph first, even if the question seems simple.\n\n## Storage\n\nGraph memory is stored next to the video, in `\u003Cvideo_path>.memory\u002F` (e.g.\n`\u002Fdata\u002Fclip.mp4` → `\u002Fdata\u002Fclip.mp4.memory\u002F`). The server auto-loads it from there\nwhen you pass `video_path`, or set `GRAPH_MEMORY_PATH` to point at one explicitly.\n\nContents: `graph_memory.json`, `embeddings.npz`, `01_macros.json`, `subgraphs\u002F`\n\n## Efficiency Rules\n\n- Maximum 10 tool call rounds — use them wisely\n- Most questions need: 1 search + 1-2 get_subgraph calls\n- Always drill down before giving up — the answer is in the subgraph, not the summary\n",{"data":35,"body":36},{"name":4,"description":6},{"type":37,"children":38},"root",[39,48,62,69,97,105,178,184,189,201,208,356,362,375,503,509,514,520,525,669,675,688,694,703,709,715,725,752,762,785,795,828,842,867,873,883,951,961,989,999,1022,1032,1079,1089,1155,1161,1177,1183,1236,1242,1284,1315,1321,1339],{"type":40,"tag":41,"props":42,"children":44},"element","h1",{"id":43},"graph-memory-long-video-qa-retrieval",[45],{"type":46,"value":47},"text","Graph Memory — Long Video QA Retrieval",{"type":40,"tag":49,"props":50,"children":51},"p",{},[52,54,60],{"type":46,"value":53},"Check the ",{"type":40,"tag":55,"props":56,"children":58},"code",{"className":57},[],[59],{"type":46,"value":4},{"type":46,"value":61}," tools in your tool list for full schemas and parameters.",{"type":40,"tag":63,"props":64,"children":66},"h2",{"id":65},"routing-rule-read-this-first",[67],{"type":46,"value":68},"ROUTING RULE — Read This First",{"type":40,"tag":49,"props":70,"children":71},{},[72,74,80,82,88,90,95],{"type":46,"value":73},"When a user asks about a video that is ",{"type":40,"tag":75,"props":76,"children":77},"strong",{},[78],{"type":46,"value":79},"longer than 30 minutes",{"type":46,"value":81},", you MUST use this skill instead of ",{"type":40,"tag":55,"props":83,"children":85},{"className":84},[],[86],{"type":46,"value":87},"read_video",{"type":46,"value":89},". ",{"type":40,"tag":55,"props":91,"children":93},{"className":92},[],[94],{"type":46,"value":87},{"type":46,"value":96}," cannot meaningfully cover a multi-hour video — it samples too few frames once, which is ineffective and always misses important content. You MUST build memory first, then you can fast explore the whole long video with the help of your pre-built memory.",{"type":40,"tag":49,"props":98,"children":99},{},[100],{"type":40,"tag":75,"props":101,"children":102},{},[103],{"type":46,"value":104},"Workflow:",{"type":40,"tag":106,"props":107,"children":108},"ol",{},[109,123,140,150],{"type":40,"tag":110,"props":111,"children":112},"li",{},[113,115,121],{"type":46,"value":114},"Check if ",{"type":40,"tag":55,"props":116,"children":118},{"className":117},[],[119],{"type":46,"value":120},"\u003Cvideo_path>.memory\u002F",{"type":46,"value":122}," directory exists",{"type":40,"tag":110,"props":124,"children":125},{},[126,131,133,138],{"type":40,"tag":75,"props":127,"children":128},{},[129],{"type":46,"value":130},"Memory exists",{"type":46,"value":132}," → query it using the ",{"type":40,"tag":55,"props":134,"children":136},{"className":135},[],[137],{"type":46,"value":4},{"type":46,"value":139}," tools",{"type":40,"tag":110,"props":141,"children":142},{},[143,148],{"type":40,"tag":75,"props":144,"children":145},{},[146],{"type":46,"value":147},"Memory does not exist",{"type":46,"value":149}," → build it first (see \"Building Graph Memory\" section), then query",{"type":40,"tag":110,"props":151,"children":152},{},[153,155,160,162,168,170,176],{"type":46,"value":154},"After locating a specific segment via memory tools, you MUST use ",{"type":40,"tag":55,"props":156,"children":158},{"className":157},[],[159],{"type":46,"value":87},{"type":46,"value":161}," with a narrow ",{"type":40,"tag":55,"props":163,"children":165},{"className":164},[],[166],{"type":46,"value":167},"start_time",{"type":46,"value":169},"\u002F",{"type":40,"tag":55,"props":171,"children":173},{"className":172},[],[174],{"type":46,"value":175},"end_time",{"type":46,"value":177}," for frame-level visual inspection, because memory is always coarse and maybe inaccurate.",{"type":40,"tag":63,"props":179,"children":181},{"id":180},"hierarchical-graph-memory",[182],{"type":46,"value":183},"Hierarchical Graph Memory",{"type":40,"tag":49,"props":185,"children":186},{},[187],{"type":46,"value":188},"The memory is a 4-level tree. You start broad (Root\u002FSuperEvent) and drill down to find specifics:",{"type":40,"tag":190,"props":191,"children":195},"pre",{"className":192,"code":194,"language":46},[193],"language-text","Root (1 per video)\n  └─ SuperEvent (10-20 story arcs)\n       └─ MacroEvent (3-8 per SuperEvent, each ~3-8 min)\n            └─ Subgraph (entities, events, OCR text, relations)\n",[196],{"type":40,"tag":55,"props":197,"children":199},{"__ignoreMap":198},"",[200],{"type":46,"value":194},{"type":40,"tag":202,"props":203,"children":205},"h3",{"id":204},"level-details",[206],{"type":46,"value":207},"Level Details",{"type":40,"tag":209,"props":210,"children":211},"table",{},[212,236],{"type":40,"tag":213,"props":214,"children":215},"thead",{},[216],{"type":40,"tag":217,"props":218,"children":219},"tr",{},[220,226,231],{"type":40,"tag":221,"props":222,"children":223},"th",{},[224],{"type":46,"value":225},"Level",{"type":40,"tag":221,"props":227,"children":228},{},[229],{"type":46,"value":230},"Contains",{"type":40,"tag":221,"props":232,"children":233},{},[234],{"type":46,"value":235},"IDs",{"type":40,"tag":237,"props":238,"children":239},"tbody",{},[240,262,297,330],{"type":40,"tag":217,"props":241,"children":242},{},[243,252,257],{"type":40,"tag":244,"props":245,"children":246},"td",{},[247],{"type":40,"tag":75,"props":248,"children":249},{},[250],{"type":46,"value":251},"Root",{"type":40,"tag":244,"props":253,"children":254},{},[255],{"type":46,"value":256},"Title, description, themes, key entities, emotional tone",{"type":40,"tag":244,"props":258,"children":259},{},[260],{"type":46,"value":261},"—",{"type":40,"tag":217,"props":263,"children":264},{},[265,273,278],{"type":40,"tag":244,"props":266,"children":267},{},[268],{"type":40,"tag":75,"props":269,"children":270},{},[271],{"type":46,"value":272},"SuperEvent",{"type":40,"tag":244,"props":274,"children":275},{},[276],{"type":46,"value":277},"High-level narrative arc, time range, key entities",{"type":40,"tag":244,"props":279,"children":280},{},[281,287,289,295],{"type":40,"tag":55,"props":282,"children":284},{"className":283},[],[285],{"type":46,"value":286},"super_01",{"type":46,"value":288},", ",{"type":40,"tag":55,"props":290,"children":292},{"className":291},[],[293],{"type":46,"value":294},"super_02",{"type":46,"value":296},", ...",{"type":40,"tag":217,"props":298,"children":299},{},[300,308,313],{"type":40,"tag":244,"props":301,"children":302},{},[303],{"type":40,"tag":75,"props":304,"children":305},{},[306],{"type":46,"value":307},"MacroEvent",{"type":40,"tag":244,"props":309,"children":310},{},[311],{"type":46,"value":312},"Specific event segment with time range, summary, key entities",{"type":40,"tag":244,"props":314,"children":315},{},[316,322,323,329],{"type":40,"tag":55,"props":317,"children":319},{"className":318},[],[320],{"type":46,"value":321},"macro_0001",{"type":46,"value":288},{"type":40,"tag":55,"props":324,"children":326},{"className":325},[],[327],{"type":46,"value":328},"macro_0002",{"type":46,"value":296},{"type":40,"tag":217,"props":331,"children":332},{},[333,341,346],{"type":40,"tag":244,"props":334,"children":335},{},[336],{"type":40,"tag":75,"props":337,"children":338},{},[339],{"type":46,"value":340},"Subgraph",{"type":40,"tag":244,"props":342,"children":343},{},[344],{"type":46,"value":345},"Entity nodes (PERSON\u002FOBJECT\u002FLOCATION), Event nodes (timestamped actions), OCR text (on-screen text), and Edges (SEMANTIC\u002FCAUSAL\u002FTEMPORAL\u002FHIERARCHICAL\u002FSPATIAL\u002FIDENTITY relations)",{"type":40,"tag":244,"props":347,"children":348},{},[349,355],{"type":40,"tag":55,"props":350,"children":352},{"className":351},[],[353],{"type":46,"value":354},"macro_0001:ent_001",{"type":46,"value":296},{"type":40,"tag":63,"props":357,"children":359},{"id":358},"building-graph-memory",[360],{"type":46,"value":361},"Building Graph Memory",{"type":40,"tag":49,"props":363,"children":364},{},[365,367,373],{"type":46,"value":366},"If ",{"type":40,"tag":55,"props":368,"children":370},{"className":369},[],[371],{"type":46,"value":372},"graph_memory.json",{"type":46,"value":374}," doesn't exist for a video, build it:",{"type":40,"tag":190,"props":376,"children":380},{"className":377,"code":378,"language":379,"meta":198,"style":198},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Build memory for a single video (output: \u003Cvideo_path>.memory\u002F)\nbash script\u002Fbuild_memory\u002Fbuild_memory.sh \u002Fpath\u002Fto\u002Fvideo.mp4\n\n# Build with custom options\nbash script\u002Fbuild_memory\u002Fbuild_memory.sh \u002Fpath\u002Fto\u002Fvideo.mp4 \\\n    --output-dir \u002Fpath\u002Fto\u002Foutput --model qwen3.7-plus --api-key \"$DASHSCOPE_API_KEY\"\n","bash",[381],{"type":40,"tag":55,"props":382,"children":383},{"__ignoreMap":198},[384,396,416,426,435,458],{"type":40,"tag":385,"props":386,"children":389},"span",{"class":387,"line":388},"line",1,[390],{"type":40,"tag":385,"props":391,"children":393},{"style":392},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[394],{"type":46,"value":395},"# Build memory for a single video (output: \u003Cvideo_path>.memory\u002F)\n",{"type":40,"tag":385,"props":397,"children":399},{"class":387,"line":398},2,[400,405,411],{"type":40,"tag":385,"props":401,"children":403},{"style":402},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[404],{"type":46,"value":379},{"type":40,"tag":385,"props":406,"children":408},{"style":407},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[409],{"type":46,"value":410}," script\u002Fbuild_memory\u002Fbuild_memory.sh",{"type":40,"tag":385,"props":412,"children":413},{"style":407},[414],{"type":46,"value":415}," \u002Fpath\u002Fto\u002Fvideo.mp4\n",{"type":40,"tag":385,"props":417,"children":419},{"class":387,"line":418},3,[420],{"type":40,"tag":385,"props":421,"children":423},{"emptyLinePlaceholder":422},true,[424],{"type":46,"value":425},"\n",{"type":40,"tag":385,"props":427,"children":429},{"class":387,"line":428},4,[430],{"type":40,"tag":385,"props":431,"children":432},{"style":392},[433],{"type":46,"value":434},"# Build with custom options\n",{"type":40,"tag":385,"props":436,"children":438},{"class":387,"line":437},5,[439,443,447,452],{"type":40,"tag":385,"props":440,"children":441},{"style":402},[442],{"type":46,"value":379},{"type":40,"tag":385,"props":444,"children":445},{"style":407},[446],{"type":46,"value":410},{"type":40,"tag":385,"props":448,"children":449},{"style":407},[450],{"type":46,"value":451}," \u002Fpath\u002Fto\u002Fvideo.mp4",{"type":40,"tag":385,"props":453,"children":455},{"style":454},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[456],{"type":46,"value":457}," \\\n",{"type":40,"tag":385,"props":459,"children":461},{"class":387,"line":460},6,[462,467,472,477,482,487,493,498],{"type":40,"tag":385,"props":463,"children":464},{"style":407},[465],{"type":46,"value":466},"    --output-dir",{"type":40,"tag":385,"props":468,"children":469},{"style":407},[470],{"type":46,"value":471}," \u002Fpath\u002Fto\u002Foutput",{"type":40,"tag":385,"props":473,"children":474},{"style":407},[475],{"type":46,"value":476}," --model",{"type":40,"tag":385,"props":478,"children":479},{"style":407},[480],{"type":46,"value":481}," qwen3.7-plus",{"type":40,"tag":385,"props":483,"children":484},{"style":407},[485],{"type":46,"value":486}," --api-key",{"type":40,"tag":385,"props":488,"children":490},{"style":489},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[491],{"type":46,"value":492}," \"",{"type":40,"tag":385,"props":494,"children":495},{"style":454},[496],{"type":46,"value":497},"$DASHSCOPE_API_KEY",{"type":40,"tag":385,"props":499,"children":500},{"style":489},[501],{"type":46,"value":502},"\"\n",{"type":40,"tag":63,"props":504,"children":506},{"id":505},"retrieval-workflow",[507],{"type":46,"value":508},"Retrieval Workflow",{"type":40,"tag":49,"props":510,"children":511},{},[512],{"type":46,"value":513},"Most questions follow a 2-step pattern:",{"type":40,"tag":202,"props":515,"children":517},{"id":516},"step-1-locate-find-the-right-macro_id",[518],{"type":46,"value":519},"Step 1: Locate (find the right macro_id)",{"type":40,"tag":49,"props":521,"children":522},{},[523],{"type":46,"value":524},"Choose ONE entry point based on the question type:",{"type":40,"tag":209,"props":526,"children":527},{},[528,549],{"type":40,"tag":213,"props":529,"children":530},{},[531],{"type":40,"tag":217,"props":532,"children":533},{},[534,539,544],{"type":40,"tag":221,"props":535,"children":536},{},[537],{"type":46,"value":538},"Question Type",{"type":40,"tag":221,"props":540,"children":541},{},[542],{"type":46,"value":543},"Entry Tool",{"type":40,"tag":221,"props":545,"children":546},{},[547],{"type":46,"value":548},"Example",{"type":40,"tag":237,"props":550,"children":551},{},[552,574,596,618,640],{"type":40,"tag":217,"props":553,"children":554},{},[555,560,569],{"type":40,"tag":244,"props":556,"children":557},{},[558],{"type":46,"value":559},"References a specific time",{"type":40,"tag":244,"props":561,"children":562},{},[563],{"type":40,"tag":55,"props":564,"children":566},{"className":565},[],[567],{"type":46,"value":568},"search_by_time(start_sec, end_sec)",{"type":40,"tag":244,"props":570,"children":571},{},[572],{"type":46,"value":573},"\"What happens at 45:30?\"",{"type":40,"tag":217,"props":575,"children":576},{},[577,582,591],{"type":40,"tag":244,"props":578,"children":579},{},[580],{"type":46,"value":581},"Asks about a person\u002Faction\u002Fevent",{"type":40,"tag":244,"props":583,"children":584},{},[585],{"type":40,"tag":55,"props":586,"children":588},{"className":587},[],[589],{"type":46,"value":590},"search_nodes(query)",{"type":40,"tag":244,"props":592,"children":593},{},[594],{"type":46,"value":595},"\"What did the chef cook?\"",{"type":40,"tag":217,"props":597,"children":598},{},[599,604,613],{"type":40,"tag":244,"props":600,"children":601},{},[602],{"type":46,"value":603},"Asks about on-screen text\u002Fscores",{"type":40,"tag":244,"props":605,"children":606},{},[607],{"type":40,"tag":55,"props":608,"children":610},{"className":609},[],[611],{"type":46,"value":612},"search_ocr_text(query)",{"type":40,"tag":244,"props":614,"children":615},{},[616],{"type":46,"value":617},"\"What was the final score?\"",{"type":40,"tag":217,"props":619,"children":620},{},[621,626,635],{"type":40,"tag":244,"props":622,"children":623},{},[624],{"type":46,"value":625},"References a known story segment",{"type":40,"tag":244,"props":627,"children":628},{},[629],{"type":40,"tag":55,"props":630,"children":632},{"className":631},[],[633],{"type":46,"value":634},"get_macro_events(super_id)",{"type":40,"tag":244,"props":636,"children":637},{},[638],{"type":46,"value":639},"\"In the first quarter...\"",{"type":40,"tag":217,"props":641,"children":642},{},[643,648,664],{"type":40,"tag":244,"props":644,"children":645},{},[646],{"type":46,"value":647},"Asks about event causality",{"type":40,"tag":244,"props":649,"children":650},{},[651,656,658],{"type":40,"tag":55,"props":652,"children":654},{"className":653},[],[655],{"type":46,"value":590},{"type":46,"value":657}," → ",{"type":40,"tag":55,"props":659,"children":661},{"className":660},[],[662],{"type":46,"value":663},"get_subgraph",{"type":40,"tag":244,"props":665,"children":666},{},[667],{"type":46,"value":668},"\"What caused the explosion?\"",{"type":40,"tag":202,"props":670,"children":672},{"id":671},"step-2-drill-down-get-full-detail",[673],{"type":46,"value":674},"Step 2: Drill Down (get full detail)",{"type":40,"tag":49,"props":676,"children":677},{},[678,680,686],{"type":46,"value":679},"Call ",{"type":40,"tag":55,"props":681,"children":683},{"className":682},[],[684],{"type":46,"value":685},"get_subgraph(macro_id)",{"type":46,"value":687}," on the 1-2 most relevant macro_ids from Step 1. This returns ALL detail: entities, events, OCR text, and relations. Answer from this data.",{"type":40,"tag":202,"props":689,"children":691},{"id":690},"decision-flow",[692],{"type":46,"value":693},"Decision Flow",{"type":40,"tag":190,"props":695,"children":698},{"className":696,"code":697,"language":46},[193],"Question arrives\n  ├─ Does the SuperEvent list already narrow it? → get_macro_events(super_id) → get_subgraph\n  ├─ Time reference? → search_by_time → get_subgraph\n  ├─ On-screen text\u002Fscore? → search_ocr_text → get_subgraph (if needed)\n  ├─ Person\u002Faction\u002Fevent? → search_nodes → get_subgraph\n  └─ Causal\u002Frelational? → search_nodes → get_subgraph (relations are in the subgraph)\n",[699],{"type":40,"tag":55,"props":700,"children":701},{"__ignoreMap":198},[702],{"type":46,"value":697},{"type":40,"tag":63,"props":704,"children":706},{"id":705},"tools-reference",[707],{"type":46,"value":708},"Tools Reference",{"type":40,"tag":202,"props":710,"children":712},{"id":711},"navigation-hierarchy-drill-down",[713],{"type":46,"value":714},"Navigation (hierarchy drill-down)",{"type":40,"tag":49,"props":716,"children":717},{},[718,723],{"type":40,"tag":75,"props":719,"children":720},{},[721],{"type":46,"value":722},"get_summary",{"type":46,"value":724}," — Video-level root summary.",{"type":40,"tag":726,"props":727,"children":728},"ul",{},[729,742,747],{"type":40,"tag":110,"props":730,"children":731},{},[732,734,740],{"type":46,"value":733},"Params: ",{"type":40,"tag":55,"props":735,"children":737},{"className":736},[],[738],{"type":46,"value":739},"video_path",{"type":46,"value":741}," (optional)",{"type":40,"tag":110,"props":743,"children":744},{},[745],{"type":46,"value":746},"Returns: title, description, themes, key entities, emotional tone",{"type":40,"tag":110,"props":748,"children":749},{},[750],{"type":46,"value":751},"Use when: you need a quick overview before drilling down",{"type":40,"tag":49,"props":753,"children":754},{},[755,760],{"type":40,"tag":75,"props":756,"children":757},{},[758],{"type":46,"value":759},"get_super_events",{"type":46,"value":761}," — List all SuperEvents (high-level narrative arcs).",{"type":40,"tag":726,"props":763,"children":764},{},[765,775,780],{"type":40,"tag":110,"props":766,"children":767},{},[768,769,774],{"type":46,"value":733},{"type":40,"tag":55,"props":770,"children":772},{"className":771},[],[773],{"type":46,"value":739},{"type":46,"value":741},{"type":40,"tag":110,"props":776,"children":777},{},[778],{"type":46,"value":779},"Returns: super_id, label, time_range, key_entities, description, num_macros",{"type":40,"tag":110,"props":781,"children":782},{},[783],{"type":46,"value":784},"Use when: you need the overall structure or to pick the relevant story arc",{"type":40,"tag":49,"props":786,"children":787},{},[788,793],{"type":40,"tag":75,"props":789,"children":790},{},[791],{"type":46,"value":792},"get_macro_events",{"type":46,"value":794}," — List MacroEvents under a SuperEvent.",{"type":40,"tag":726,"props":796,"children":797},{},[798,818,823],{"type":40,"tag":110,"props":799,"children":800},{},[801,802,808,810,816],{"type":46,"value":733},{"type":40,"tag":55,"props":803,"children":805},{"className":804},[],[806],{"type":46,"value":807},"super_id",{"type":46,"value":809}," (optional), ",{"type":40,"tag":55,"props":811,"children":813},{"className":812},[],[814],{"type":46,"value":815},"macro_ids",{"type":46,"value":817}," (optional list)",{"type":40,"tag":110,"props":819,"children":820},{},[821],{"type":46,"value":822},"Returns: macro_id, time_range, label, key_entity_names, description",{"type":40,"tag":110,"props":824,"children":825},{},[826],{"type":46,"value":827},"Use when: initial context already narrows the segment",{"type":40,"tag":49,"props":829,"children":830},{},[831,835,837],{"type":40,"tag":75,"props":832,"children":833},{},[834],{"type":46,"value":663},{"type":46,"value":836}," — Full detail for one MacroEvent. ",{"type":40,"tag":75,"props":838,"children":839},{},[840],{"type":46,"value":841},"Most information-rich tool.",{"type":40,"tag":726,"props":843,"children":844},{},[845,857,862],{"type":40,"tag":110,"props":846,"children":847},{},[848,849,855],{"type":46,"value":733},{"type":40,"tag":55,"props":850,"children":852},{"className":851},[],[853],{"type":46,"value":854},"macro_id",{"type":46,"value":856}," (required)",{"type":40,"tag":110,"props":858,"children":859},{},[860],{"type":46,"value":861},"Returns: Entities, Events, OCR texts, Relations",{"type":40,"tag":110,"props":863,"children":864},{},[865],{"type":46,"value":866},"Use when: you have a macro_id and need specifics",{"type":40,"tag":202,"props":868,"children":870},{"id":869},"search-direct-access",[871],{"type":46,"value":872},"Search (direct access)",{"type":40,"tag":49,"props":874,"children":875},{},[876,881],{"type":40,"tag":75,"props":877,"children":878},{},[879],{"type":46,"value":880},"search_nodes",{"type":46,"value":882}," — Semantic search over Entity and Event nodes (excludes OCR).",{"type":40,"tag":726,"props":884,"children":885},{},[886,928],{"type":40,"tag":110,"props":887,"children":888},{},[889,890,896,898,904,905,911,913,919,920,926],{"type":46,"value":733},{"type":40,"tag":55,"props":891,"children":893},{"className":892},[],[894],{"type":46,"value":895},"query",{"type":46,"value":897}," (required), ",{"type":40,"tag":55,"props":899,"children":901},{"className":900},[],[902],{"type":46,"value":903},"top_k",{"type":46,"value":288},{"type":40,"tag":55,"props":906,"children":908},{"className":907},[],[909],{"type":46,"value":910},"node_types",{"type":46,"value":912}," (",{"type":40,"tag":55,"props":914,"children":916},{"className":915},[],[917],{"type":46,"value":918},"[\"event\"]",{"type":46,"value":288},{"type":40,"tag":55,"props":921,"children":923},{"className":922},[],[924],{"type":46,"value":925},"[\"entity\"]",{"type":46,"value":927},", or both)",{"type":40,"tag":110,"props":929,"children":930},{},[931,933],{"type":46,"value":932},"Query guide: write a DESCRIPTIVE STATEMENT, not a question\n",{"type":40,"tag":726,"props":934,"children":935},{},[936,941,946],{"type":40,"tag":110,"props":937,"children":938},{},[939],{"type":46,"value":940},"Good: \"A player scores with an alley-oop dunk\"",{"type":40,"tag":110,"props":942,"children":943},{},[944],{"type":46,"value":945},"Bad: \"Which player scored the alley-oop?\"",{"type":40,"tag":110,"props":947,"children":948},{},[949],{"type":46,"value":950},"For multi-choice: extract SHARED info across options, exclude differing details",{"type":40,"tag":49,"props":952,"children":953},{},[954,959],{"type":40,"tag":75,"props":955,"children":956},{},[957],{"type":46,"value":958},"search_ocr_text",{"type":46,"value":960}," — Semantic search over on-screen text only.",{"type":40,"tag":726,"props":962,"children":963},{},[964,979,984],{"type":40,"tag":110,"props":965,"children":966},{},[967,968,973,974],{"type":46,"value":733},{"type":40,"tag":55,"props":969,"children":971},{"className":970},[],[972],{"type":46,"value":895},{"type":46,"value":897},{"type":40,"tag":55,"props":975,"children":977},{"className":976},[],[978],{"type":46,"value":903},{"type":40,"tag":110,"props":980,"children":981},{},[982],{"type":46,"value":983},"Use for: scores, stats, jersey numbers, broadcast graphics",{"type":40,"tag":110,"props":985,"children":986},{},[987],{"type":46,"value":988},"Do NOT use search_nodes for OCR content — they are separate indexes",{"type":40,"tag":49,"props":990,"children":991},{},[992,997],{"type":40,"tag":75,"props":993,"children":994},{},[995],{"type":46,"value":996},"search_asr_text",{"type":46,"value":998}," — Semantic search over ASR transcript text (speech, dialogue, narration).",{"type":40,"tag":726,"props":1000,"children":1001},{},[1002,1017],{"type":40,"tag":110,"props":1003,"children":1004},{},[1005,1006,1011,1012],{"type":46,"value":733},{"type":40,"tag":55,"props":1007,"children":1009},{"className":1008},[],[1010],{"type":46,"value":895},{"type":46,"value":897},{"type":40,"tag":55,"props":1013,"children":1015},{"className":1014},[],[1016],{"type":46,"value":903},{"type":40,"tag":110,"props":1018,"children":1019},{},[1020],{"type":46,"value":1021},"Use for: spoken content, dialogue, narration, or other audio\u002Fverbal information",{"type":40,"tag":49,"props":1023,"children":1024},{},[1025,1030],{"type":40,"tag":75,"props":1026,"children":1027},{},[1028],{"type":46,"value":1029},"search_by_time",{"type":46,"value":1031}," — Find MacroEvents by time range.",{"type":40,"tag":726,"props":1033,"children":1034},{},[1035,1074],{"type":40,"tag":110,"props":1036,"children":1037},{},[1038,1039,1045,1046,1052,1054,1059,1060,1065,1066,1072],{"type":46,"value":733},{"type":40,"tag":55,"props":1040,"children":1042},{"className":1041},[],[1043],{"type":46,"value":1044},"start_sec",{"type":46,"value":169},{"type":40,"tag":55,"props":1047,"children":1049},{"className":1048},[],[1050],{"type":46,"value":1051},"end_sec",{"type":46,"value":1053}," (seconds), or ",{"type":40,"tag":55,"props":1055,"children":1057},{"className":1056},[],[1058],{"type":46,"value":167},{"type":46,"value":169},{"type":40,"tag":55,"props":1061,"children":1063},{"className":1062},[],[1064],{"type":46,"value":175},{"type":46,"value":912},{"type":40,"tag":55,"props":1067,"children":1069},{"className":1068},[],[1070],{"type":46,"value":1071},"DAY{N} HH:MM:SS",{"type":46,"value":1073},", for EgoLife)",{"type":40,"tag":110,"props":1075,"children":1076},{},[1077],{"type":46,"value":1078},"Returns summaries only — follow up with get_subgraph for detail",{"type":40,"tag":49,"props":1080,"children":1081},{},[1082,1087],{"type":40,"tag":75,"props":1083,"children":1084},{},[1085],{"type":46,"value":1086},"enumerate_events",{"type":46,"value":1088}," — Enumerate ALL matching event instances in time order — built for COUNTING \u002F \"how many times \u002F list every occurrence\" questions.",{"type":40,"tag":726,"props":1090,"children":1091},{},[1092,1138,1143],{"type":40,"tag":110,"props":1093,"children":1094},{},[1095,1096,1101,1103,1109,1110,1116,1117,1122,1124,1129,1131,1136],{"type":46,"value":733},{"type":40,"tag":55,"props":1097,"children":1099},{"className":1098},[],[1100],{"type":46,"value":895},{"type":46,"value":1102}," (required; a descriptive statement of the target event), ",{"type":40,"tag":55,"props":1104,"children":1106},{"className":1105},[],[1107],{"type":46,"value":1108},"min_cosine",{"type":46,"value":288},{"type":40,"tag":55,"props":1111,"children":1113},{"className":1112},[],[1114],{"type":46,"value":1115},"max_results",{"type":46,"value":288},{"type":40,"tag":55,"props":1118,"children":1120},{"className":1119},[],[1121],{"type":46,"value":910},{"type":46,"value":1123}," (default ",{"type":40,"tag":55,"props":1125,"children":1127},{"className":1126},[],[1128],{"type":46,"value":918},{"type":46,"value":1130},"; use ",{"type":40,"tag":55,"props":1132,"children":1134},{"className":1133},[],[1135],{"type":46,"value":925},{"type":46,"value":1137}," for objects\u002Fpeople)",{"type":40,"tag":110,"props":1139,"children":1140},{},[1141],{"type":46,"value":1142},"Unlike search_nodes (top-k best matches), returns every match above a similarity threshold, deduped and sorted by start time",{"type":40,"tag":110,"props":1144,"children":1145},{},[1146,1148,1153],{"type":46,"value":1147},"If undercounting, retry with a lower ",{"type":40,"tag":55,"props":1149,"children":1151},{"className":1150},[],[1152],{"type":46,"value":1108},{"type":46,"value":1154}," and alternative phrasings",{"type":40,"tag":202,"props":1156,"children":1158},{"id":1157},"video-frame-extraction",[1159],{"type":46,"value":1160},"Video Frame Extraction",{"type":40,"tag":49,"props":1162,"children":1163},{},[1164,1168,1170,1175],{"type":40,"tag":75,"props":1165,"children":1166},{},[1167],{"type":46,"value":87},{"type":46,"value":1169}," — Extract frames from the original video after narrowing the time range via memory tools. ",{"type":40,"tag":55,"props":1171,"children":1173},{"className":1172},[],[1174],{"type":46,"value":739},{"type":46,"value":1176}," is in the initial context.",{"type":40,"tag":63,"props":1178,"children":1180},{"id":1179},"anti-patterns-common-mistakes",[1181],{"type":46,"value":1182},"Anti-Patterns (common mistakes)",{"type":40,"tag":106,"props":1184,"children":1185},{},[1186,1196,1206,1216,1226],{"type":40,"tag":110,"props":1187,"children":1188},{},[1189,1194],{"type":40,"tag":75,"props":1190,"children":1191},{},[1192],{"type":46,"value":1193},"Answering from SuperEvent descriptions",{"type":46,"value":1195}," — these are summaries. Always get_subgraph for specific details.",{"type":40,"tag":110,"props":1197,"children":1198},{},[1199,1204],{"type":40,"tag":75,"props":1200,"children":1201},{},[1202],{"type":46,"value":1203},"Repeating similar searches",{"type":46,"value":1205}," — if search_nodes found macro_0022, call get_subgraph(macro_0022) instead of searching with a slightly different query.",{"type":40,"tag":110,"props":1207,"children":1208},{},[1209,1214],{"type":40,"tag":75,"props":1210,"children":1211},{},[1212],{"type":46,"value":1213},"Ignoring tool types",{"type":46,"value":1215}," — if search_nodes gives poor results, try search_ocr_text or search_by_time. Different indexes cover different content.",{"type":40,"tag":110,"props":1217,"children":1218},{},[1219,1224],{"type":40,"tag":75,"props":1220,"children":1221},{},[1222],{"type":46,"value":1223},"Guessing counts",{"type":46,"value":1225}," — for \"how many\" questions, get_subgraph and count from the explicit node list. Never estimate from words like \"several\" or \"multiple\".",{"type":40,"tag":110,"props":1227,"children":1228},{},[1229,1234],{"type":40,"tag":75,"props":1230,"children":1231},{},[1232],{"type":46,"value":1233},"Skipping tool calls",{"type":46,"value":1235}," — never answer without querying the memory graph first, even if the question seems simple.",{"type":40,"tag":63,"props":1237,"children":1239},{"id":1238},"storage",[1240],{"type":46,"value":1241},"Storage",{"type":40,"tag":49,"props":1243,"children":1244},{},[1245,1247,1252,1254,1260,1261,1267,1269,1274,1276,1282],{"type":46,"value":1246},"Graph memory is stored next to the video, in ",{"type":40,"tag":55,"props":1248,"children":1250},{"className":1249},[],[1251],{"type":46,"value":120},{"type":46,"value":1253}," (e.g.\n",{"type":40,"tag":55,"props":1255,"children":1257},{"className":1256},[],[1258],{"type":46,"value":1259},"\u002Fdata\u002Fclip.mp4",{"type":46,"value":657},{"type":40,"tag":55,"props":1262,"children":1264},{"className":1263},[],[1265],{"type":46,"value":1266},"\u002Fdata\u002Fclip.mp4.memory\u002F",{"type":46,"value":1268},"). The server auto-loads it from there\nwhen you pass ",{"type":40,"tag":55,"props":1270,"children":1272},{"className":1271},[],[1273],{"type":46,"value":739},{"type":46,"value":1275},", or set ",{"type":40,"tag":55,"props":1277,"children":1279},{"className":1278},[],[1280],{"type":46,"value":1281},"GRAPH_MEMORY_PATH",{"type":46,"value":1283}," to point at one explicitly.",{"type":40,"tag":49,"props":1285,"children":1286},{},[1287,1289,1294,1295,1301,1302,1308,1309],{"type":46,"value":1288},"Contents: ",{"type":40,"tag":55,"props":1290,"children":1292},{"className":1291},[],[1293],{"type":46,"value":372},{"type":46,"value":288},{"type":40,"tag":55,"props":1296,"children":1298},{"className":1297},[],[1299],{"type":46,"value":1300},"embeddings.npz",{"type":46,"value":288},{"type":40,"tag":55,"props":1303,"children":1305},{"className":1304},[],[1306],{"type":46,"value":1307},"01_macros.json",{"type":46,"value":288},{"type":40,"tag":55,"props":1310,"children":1312},{"className":1311},[],[1313],{"type":46,"value":1314},"subgraphs\u002F",{"type":40,"tag":63,"props":1316,"children":1318},{"id":1317},"efficiency-rules",[1319],{"type":46,"value":1320},"Efficiency Rules",{"type":40,"tag":726,"props":1322,"children":1323},{},[1324,1329,1334],{"type":40,"tag":110,"props":1325,"children":1326},{},[1327],{"type":46,"value":1328},"Maximum 10 tool call rounds — use them wisely",{"type":40,"tag":110,"props":1330,"children":1331},{},[1332],{"type":46,"value":1333},"Most questions need: 1 search + 1-2 get_subgraph calls",{"type":40,"tag":110,"props":1335,"children":1336},{},[1337],{"type":46,"value":1338},"Always drill down before giving up — the answer is in the subgraph, not the summary",{"type":40,"tag":1340,"props":1341,"children":1342},"style",{},[1343],{"type":46,"value":1344},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1346,"total":437},[1347,1366,1383,1400,1415],{"slug":1348,"name":1348,"fn":1349,"description":1350,"org":1351,"tags":1352,"stars":23,"repoUrl":24,"updatedAt":1365},"qwen-mm-plugins-blender","build and edit 3D scenes in Blender","Use whenever a task involves building or editing a 3D scene or asset in Blender — modeling, characters\u002Fpeople, architecture\u002Finteriors, terrain\u002Flandscapes, props, materials, lighting, or rendering. Covers discovering installed add-ons, using generators, importing and REFINING ready-made assets, and matching the result to the spec. Requires a running Blender instance with the blender-mcp addon (see Prerequisite).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1353,1356,1359,1362],{"name":1354,"slug":1355,"type":16},"3D","3d",{"name":1357,"slug":1358,"type":16},"Animation","animation",{"name":1360,"slug":1361,"type":16},"Creative","creative",{"name":1363,"slug":1364,"type":16},"Design","design","2026-08-05T05:58:30.425245",{"slug":1367,"name":1367,"fn":1368,"description":1369,"org":1370,"tags":1371,"stars":23,"repoUrl":24,"updatedAt":1382},"qwen-mm-plugins-core","analyze and visualize multimodal files","Vision-Language MCP tools for reading\u002Fvisualizing any file (images, videos, documents, code, data, 3D models, etc.) and calling VL APIs (caption, ASR, search, etc.).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1372,1375,1378,1381],{"name":1373,"slug":1374,"type":16},"Data Analysis","data-analysis",{"name":1376,"slug":1377,"type":16},"LLM","llm",{"name":1379,"slug":1380,"type":16},"MCP","mcp",{"name":18,"slug":19,"type":16},"2026-08-05T05:58:39.78188",{"slug":1384,"name":1384,"fn":1385,"description":1386,"org":1387,"tags":1388,"stars":23,"repoUrl":24,"updatedAt":1399},"qwen-mm-plugins-edu-agent","generate math problem solving tutorial videos","Generate step-by-step math problem-solving tutorial videos in Chinese (Mandarin).\nUse when: (1) a user provides a math problem and wants an explanation video,\n(2) someone says \"make a math tutorial\", \"explain this equation\", \"create a\nteaching video for this problem\", \"讲解这道题\", \"生成解题视频\",\n(3) the user wants a Chinese-language math lesson covering formulas, equations,\nor geometric figures, (4) the user shares a math problem in text or LaTeX and\nasks for a video walkthrough, (5) the input is an image_assets\u002F folder\ncontaining problem images — the skill will extract the problem via visual\nrecognition, solve it, and generate a tutorial video. Teaching components are\nrendered as realistic objects (solid opaque panels, 3D cards, SVG figures) with a\nmodern aurora mesh aesthetic.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1389,1392,1395,1398],{"name":1390,"slug":1391,"type":16},"Content Creation","content-creation",{"name":1393,"slug":1394,"type":16},"Education","education",{"name":1396,"slug":1397,"type":16},"Mathematics","mathematics",{"name":21,"slug":22,"type":16},"2026-08-05T05:58:40.128581",{"slug":1401,"name":1401,"fn":1402,"description":1403,"org":1404,"tags":1405,"stars":23,"repoUrl":24,"updatedAt":1414},"qwen-mm-plugins-freecad","model parts and assemblies in FreeCAD","Use whenever a task involves parametric CAD in FreeCAD — modeling parts and assemblies, editing object properties, technical drawings, importing\u002Fexporting STEP\u002FSTL\u002FOBJ\u002FDXF, PDF\u002FExcel reports from a model, or finite-element (FEM\u002FCalculiX) analysis. Requires a running FreeCAD instance with the FreeCADMCP addon (see Prerequisite).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1406,1407,1410,1411],{"name":1354,"slug":1355,"type":16},{"name":1408,"slug":1409,"type":16},"CAD","cad",{"name":1363,"slug":1364,"type":16},{"name":1412,"slug":1413,"type":16},"Engineering","engineering","2026-08-05T05:58:40.567406",{"slug":4,"name":4,"fn":5,"description":6,"org":1416,"tags":1417,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1418,1419,1420],{"name":14,"slug":15,"type":16},{"name":18,"slug":19,"type":16},{"name":21,"slug":22,"type":16},{"items":1422,"total":1601},[1423,1438,1455,1471,1487,1501,1515,1529,1542,1556,1568,1583],{"slug":1424,"name":1424,"fn":1425,"description":1426,"org":1427,"tags":1428,"stars":1435,"repoUrl":1436,"updatedAt":1437},"batch","execute parallel batch operations on files","Execute batch operations on multiple files in parallel. Automatically discovers files, splits into chunks, and processes with parallel worker agents. Use `\u002Fbatch` followed by operation and file pattern.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1429,1432],{"name":1430,"slug":1431,"type":16},"Automation","automation",{"name":1433,"slug":1434,"type":16},"Concurrency","concurrency",26008,"https:\u002F\u002Fgithub.com\u002FQwenLM\u002Fqwen-code","2026-07-20T05:58:45.650067",{"slug":1439,"name":1439,"fn":1440,"description":1441,"org":1442,"tags":1443,"stars":1435,"repoUrl":1436,"updatedAt":1454},"cua-driver-rs","drive native GUI applications via MCP","Drive a native GUI app (macOS, Windows, Linux) via the cua-driver CLI (default) or MCP server — snapshot its accessibility tree, click\u002Ftype\u002Fscroll by element_index or pixel coords, verify via re-snapshot, all without bringing the target to the foreground. Use when the user asks you to operate, drive, automate, or perform a GUI task in a real application on the host.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1444,1447,1450,1453],{"name":1445,"slug":1446,"type":16},"Accessibility","accessibility",{"name":1448,"slug":1449,"type":16},"Browser Automation","browser-automation",{"name":1451,"slug":1452,"type":16},"Desktop","desktop",{"name":1379,"slug":1380,"type":16},"2026-07-16T05:59:28.687299",{"slug":1456,"name":1456,"fn":1457,"description":1458,"org":1459,"tags":1460,"stars":1435,"repoUrl":1436,"updatedAt":1470},"dataviz","design and validate data visualizations","Design guidance for charts, graphs, dashboards, maps, and data visualizations, including a local palette validator.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1461,1464,1467],{"name":1462,"slug":1463,"type":16},"Charts","charts",{"name":1465,"slug":1466,"type":16},"Dashboards","dashboards",{"name":1468,"slug":1469,"type":16},"Data Visualization","data-visualization","2026-07-16T05:59:28.31755",{"slug":1472,"name":1472,"fn":1473,"description":1474,"org":1475,"tags":1476,"stars":1435,"repoUrl":1436,"updatedAt":1486},"extension-creator","create Qwen Code extensions","Create, scaffold, customize, validate, and locally test Qwen Code extensions. Use when the user wants a new Qwen Code extension, needs help choosing an extension template, wants to add QWEN.md context, commands, skills, agents, MCP servers, settings, hooks, channels, or LSP servers, or asks how to link and test an extension locally. Invoke with `\u002Fextension-creator` followed by an extension path and optional template name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1477,1480,1483],{"name":1478,"slug":1479,"type":16},"Coding","coding",{"name":1481,"slug":1482,"type":16},"Documentation","documentation",{"name":1484,"slug":1485,"type":16},"Plugin Development","plugin-development","2026-07-16T05:59:24.818967",{"slug":1488,"name":1488,"fn":1489,"description":1490,"org":1491,"tags":1492,"stars":1435,"repoUrl":1436,"updatedAt":1500},"loop","run scheduled or self-paced prompt loops","Create a loop that runs a prompt now and follows up either on a fixed schedule or through self-paced wakeups. Usage - \u002Floop check the build, \u002Floop 5m check the build, \u002Floop check the PR every 30m. \u002Floop list to show jobs, \u002Floop clear to cancel all.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1493,1494,1497],{"name":1430,"slug":1431,"type":16},{"name":1495,"slug":1496,"type":16},"Productivity","productivity",{"name":1498,"slug":1499,"type":16},"Scheduling","scheduling","2026-07-16T05:59:25.50027",{"slug":1502,"name":1502,"fn":1503,"description":1504,"org":1505,"tags":1506,"stars":1435,"repoUrl":1436,"updatedAt":1514},"new-app","build new applications from scratch","Workflow for creating new applications from scratch. Covers requirements gathering, tech stack selection, scaffolding, implementation, and delivery of a functional prototype.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1507,1508,1511],{"name":1412,"slug":1413,"type":16},{"name":1509,"slug":1510,"type":16},"Prototyping","prototyping",{"name":1512,"slug":1513,"type":16},"Web Development","web-development","2026-07-16T05:59:25.157573",{"slug":1516,"name":1516,"fn":1517,"description":1518,"org":1519,"tags":1520,"stars":1435,"repoUrl":1436,"updatedAt":1528},"qc-helper","provide Qwen Code usage and configuration support","Answer any question about Qwen Code usage, features, configuration, and troubleshooting by referencing the official user documentation. Also helps users view or modify their settings.json. Invoke with `\u002Fqc-helper` followed by a question, e.g. `\u002Fqc-helper how do I configure MCP servers?` or `\u002Fqc-helper change approval mode to yolo`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1521,1524,1525],{"name":1522,"slug":1523,"type":16},"Configuration","configuration",{"name":1481,"slug":1482,"type":16},{"name":1526,"slug":1527,"type":16},"Reference","reference","2026-07-16T05:59:29.118413",{"slug":1530,"name":1530,"fn":1531,"description":1532,"org":1533,"tags":1534,"stars":1435,"repoUrl":1436,"updatedAt":1541},"review","review code for quality and security","Review changed code for correctness, security, code quality, and performance. Use when the user asks to review code changes, a PR, or specific files. Invoke with `\u002Freview`, `\u002Freview \u003Cpr-number>`, `\u002Freview \u003Cfile-path>`, `\u002Freview \u003Cpr-number> --comment` to post inline comments on the PR, or `\u002Freview --fix` to apply the findings to your working tree. Add `--effort low|medium|high` to trade depth for speed (defaults to high for PRs, medium for local changes).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1535,1538],{"name":1536,"slug":1537,"type":16},"Code Review","code-review",{"name":1539,"slug":1540,"type":16},"Security","security","2026-08-05T05:37:32.013531",{"slug":1543,"name":1543,"fn":1544,"description":1545,"org":1546,"tags":1547,"stars":1435,"repoUrl":1436,"updatedAt":1555},"simplify","clean up and simplify code changes","Review recent code changes for reuse, code quality, and efficiency, then directly apply straightforward cleanup improvements. Use when the user wants a post-implementation cleanup pass, pre-PR polish, or asks to simplify\u002Frefine recent changes. Invoke with `\u002Fsimplify` or `\u002Fsimplify \u003Cfocus>`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1548,1551,1552],{"name":1549,"slug":1550,"type":16},"Code Analysis","code-analysis",{"name":1412,"slug":1413,"type":16},{"name":1553,"slug":1554,"type":16},"Performance","performance","2026-07-20T05:58:46.653811",{"slug":1557,"name":1557,"fn":1558,"description":1559,"org":1560,"tags":1561,"stars":1435,"repoUrl":1436,"updatedAt":1567},"stuck","diagnose and debug stuck Qwen Code sessions","Diagnose frozen, stuck, or slow Qwen Code sessions on this machine. Scans for problematic processes, high CPU\u002Fmemory usage, hung subprocesses, and debug logs. Use \u002Fstuck or \u002Fstuck \u003CPID> to focus on a specific process.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1562,1565,1566],{"name":1563,"slug":1564,"type":16},"Debugging","debugging",{"name":1412,"slug":1413,"type":16},{"name":1553,"slug":1554,"type":16},"2026-07-16T05:59:25.838629",{"slug":1569,"name":1569,"fn":1570,"description":1571,"org":1572,"tags":1573,"stars":1580,"repoUrl":1581,"updatedAt":1582},"open-computer-use","configure Open Computer Use MCP server","Platform-neutral guidance for using Open Computer Use, the open-source Computer Use MCP server and CLI for macOS, Linux, and Windows. Use when an agent needs to install, verify, troubleshoot, configure, or operate Open Computer Use through its native CLI, stdio MCP server, or direct Computer Use tool calls.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1574,1575,1578,1579],{"name":1430,"slug":1431,"type":16},{"name":1576,"slug":1577,"type":16},"CLI","cli",{"name":1451,"slug":1452,"type":16},{"name":1379,"slug":1380,"type":16},176,"https:\u002F\u002Fgithub.com\u002FQwenLM\u002Fopen-computer-use","2026-07-16T05:59:22.010839",{"slug":1584,"name":1584,"fn":1585,"description":1586,"org":1587,"tags":1588,"stars":1598,"repoUrl":1599,"updatedAt":1600},"auto-pr","automate pull request submission and review","Automated PR submission assistant, including code review, documentation generation, and PR creation",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1589,1590,1591,1592,1595],{"name":1430,"slug":1431,"type":16},{"name":1536,"slug":1537,"type":16},{"name":1481,"slug":1482,"type":16},{"name":1593,"slug":1594,"type":16},"GitHub","github",{"name":1596,"slug":1597,"type":16},"Pull Requests","pull-requests",136,"https:\u002F\u002Fgithub.com\u002FQwenLM\u002Fqwen-code-examples","2026-07-16T06:00:01.890524",26]