[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C68DCF02P4FD7K8WYWFCJD":3,"skill-same:01M6C68DCF02P4FD7K8WYWFCJD":79},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":50,"repositoryHtmlUrl":51,"repositoryHomepageUrl":6,"ownerHtmlUrl":52,"ownerBlogUrl":6,"ownerDescription":53,"updatedAt":54,"install":55,"resources":68},"01M6C68DCF02P4FD7K8WYWFCJD","tasks",null,"Obsidian tasks via CLI: list open tasks, filter by file\u002Fstatus, toggle or complete checklist items. Use when user mentions Obsidian tasks, todos, or checklists.","laurigates\u002Fclaude-plugins","laurigates","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F13014001?v=4","01M6C59YHWS9C7KMXKSRX1YXNP","Lauri Gates","01M6C59YP2APG9YAM4DWYQYGFJ",59,"MIT","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fobsidian-plugin\u002Fskills\u002Ftasks\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"user","2026","when","obsidian tasks","sep","via","filter","complete","false","checklist","use","cli","list","read","grep","Bash","open","file","status","obsidian","2026-11-10 10:12:30",false,"---\ncreated: 2026-03-04\nmodified: 2026-09-22\nreviewed: 2026-09-22\nname: tasks\ndescription: \"Obsidian tasks via CLI: list open tasks, filter by file\u002Fstatus, toggle or complete checklist items. Use when user mentions Obsidian tasks, todos, or checklists.\"\nuser-invocable: false\nallowed-tools: Bash, Read, Grep, Glob\n---\n\n# Obsidian Task Management\n\n## When to Use This Skill\n\n| Use this skill when... | Use the alternative instead when... |\n|---|---|\n| Listing open `- [ ]` tasks across the vault, or toggling\u002Fcompleting them | Editing arbitrary note content rather than checklist lines — use `vault-files` |\n| Filing a task on a daily note via the running Obsidian CLI | Tracking work in `taskwarrior` outside Obsidian — use a `taskwarrior-plugin` skill |\n| Verifying which tasks Obsidian itself indexes as open | Searching for arbitrary text patterns including non-task content — use `search-discovery` |\n\nList, filter, and update tasks across the Obsidian vault using the official CLI.\n\n## Prerequisites\n\n- Obsidian desktop 1.12.7+ installer with CLI enabled\n- Obsidian must be running\n\n## The Two Commands\n\nThe CLI exposes exactly two task commands. There is no create command —\ntasks are **content**, so you add one by appending a `- [ ]` line with\n`append` \u002F `daily:append` (see `vault-files`).\n\n| Command | Purpose |\n|---------|---------|\n| `tasks` | List \u002F filter \u002F count tasks |\n| `task` | Show or update **one** task, addressed by location |\n\n## List Tasks\n\n```bash\n# All tasks in the vault\nobsidian tasks\n\n# Incomplete only \u002F completed only\nobsidian tasks todo\nobsidian tasks done\n\n# Scope to a file\nobsidian tasks file=Recipe\nobsidian tasks path=\"Projects\u002FSprint.md\"\n\n# Scope to the active file or today's daily note\nobsidian tasks active\nobsidian tasks daily\n\n# Counts instead of rows\nobsidian tasks total\nobsidian tasks daily total\n\n# Group by file with line numbers (the agentic default —\n# gives you the path:line that `task` needs to update)\nobsidian tasks verbose\n\n# Structured output (default format is plain text)\nobsidian tasks format=json\nobsidian tasks format=tsv\nobsidian tasks format=csv\n\n# Filter by a custom status character; quote shell-special ones\nobsidian tasks 'status=?'\nobsidian tasks status=-\n```\n\nFilters combine: `obsidian tasks file=Recipe todo verbose`.\n\n## Show or Update a Task\n\n`task` addresses a single checklist line by location — either a combined\n`ref=path:line`, or `file=`\u002F`path=`\u002F`daily` plus `line=`.\n\n```bash\n# Show task info\nobsidian task file=Recipe line=8\nobsidian task ref=\"Recipe.md:8\"\n\n# Toggle completion\nobsidian task ref=\"Recipe.md:8\" toggle\nobsidian task daily line=3 toggle\n\n# Set an explicit state\nobsidian task file=Recipe line=8 done      # → [x]\nobsidian task file=Recipe line=8 todo      # → [ ]\nobsidian task file=Recipe line=8 status=-  # → [-]\nobsidian task daily line=3 done\n```\n\n`done`\u002F`todo`\u002F`status=` set a state outright; `toggle` flips whatever is\nthere. Use `status=` for custom markers your theme or plugin renders\n(`-` cancelled, `\u002F` in progress, `?` question, etc.).\n\n## Workflow Patterns\n\n### Capture a task to today's daily note\n\n```bash\nobsidian daily:append content=\"- [ ] Review PR #42\"\n```\n\n### Find an open task, then complete it\n\n```bash\n# 1. Locate it — verbose gives path and line number\nobsidian tasks todo verbose\n\n# 2. Update by that location\nobsidian task ref=\"Projects\u002FSprint.md:14\" done\n```\n\n### Close out every task in today's daily note\n\n```bash\nobsidian tasks daily todo verbose\n# then, per reported line:\nobsidian task daily line=\u003Cn> done\n```\n\n### Count outstanding work\n\n```bash\nobsidian tasks todo total\nobsidian tasks daily todo total\n```\n\n## Agentic Optimizations\n\n| Context | Command |\n|---------|---------|\n| List tasks (structured) | `obsidian tasks format=json` |\n| Open tasks only | `obsidian tasks todo` |\n| Locate tasks (path + line) | `obsidian tasks verbose` |\n| Tasks in one file | `obsidian tasks file=X` |\n| Today's tasks | `obsidian tasks daily` |\n| Outstanding count | `obsidian tasks todo total` |\n| Complete a task | `obsidian task ref=\"path.md:N\" done` |\n| Toggle a task | `obsidian task ref=\"path.md:N\" toggle` |\n| Custom status | `obsidian task file=X line=N status=-` |\n| Quick capture to daily | `obsidian daily:append content=\"- [ ] task\"` |\n\n## Related Skills\n\n- **vault-files** — Append task lines to notes and daily notes (there is no `task` create command)\n- **search-discovery** — Find notes containing tasks, or search task text\n- **properties** — Track task metadata in frontmatter instead of checklist lines\n","# Obsidian Task Management\n\n## When to Use This Skill\n\n| Use this skill when... | Use the alternative instead when... |\n|---|---|\n| Listing open `- [ ]` tasks across the vault, or toggling\u002Fcompleting them | Editing arbitrary note content rather than checklist lines — use `vault-files` |\n| Filing a task on a daily note via the running Obsidian CLI | Tracking work in `taskwarrior` outside Obsidian — use a `taskwarrior-plugin` skill |\n| Verifying which tasks Obsidian itself indexes as open | Searching for arbitrary text patterns including non-task content — use `search-discovery` |\n\nList, filter, and update tasks across the Obsidian vault using the official CLI.\n\n## Prerequisites\n\n- Obsidian desktop 1.12.7+ installer with CLI enabled\n- Obsidian must be running\n\n## The Two Commands\n\nThe CLI exposes exactly two task commands. There is no create command —\ntasks are **content**, so you add one by appending a `- [ ]` line with\n`append` \u002F `daily:append` (see `vault-files`).\n\n| Command | Purpose |\n|---------|---------|\n| `tasks` | List \u002F filter \u002F count tasks |\n| `task` | Show or update **one** task, addressed by location |\n\n## List Tasks\n\n```bash\n# All tasks in the vault\nobsidian tasks\n\n# Incomplete only \u002F completed only\nobsidian tasks todo\nobsidian tasks done\n\n# Scope to a file\nobsidian tasks file=Recipe\nobsidian tasks path=\"Projects\u002FSprint.md\"\n\n# Scope to the active file or today's daily note\nobsidian tasks active\nobsidian tasks daily\n\n# Counts instead of rows\nobsidian tasks total\nobsidian tasks daily total\n\n# Group by file with line numbers (the agentic default —\n# gives you the path:line that `task` needs to update)\nobsidian tasks verbose\n\n# Structured output (default format is plain text)\nobsidian tasks format=json\nobsidian tasks format=tsv\nobsidian tasks format=csv\n\n# Filter by a custom status character; quote shell-special ones\nobsidian tasks 'status=?'\nobsidian tasks status=-\n```\n\nFilters combine: `obsidian tasks file=Recipe todo verbose`.\n\n## Show or Update a Task\n\n`task` addresses a single checklist line by location — either a combined\n`ref=path:line`, or `file=`\u002F`path=`\u002F`daily` plus `line=`.\n\n```bash\n# Show task info\nobsidian task file=Recipe line=8\nobsidian task ref=\"Recipe.md:8\"\n\n# Toggle completion\nobsidian task ref=\"Recipe.md:8\" toggle\nobsidian task daily line=3 toggle\n\n# Set an explicit state\nobsidian task file=Recipe line=8 done      # → [x]\nobsidian task file=Recipe line=8 todo      # → [ ]\nobsidian task file=Recipe line=8 status=-  # → [-]\nobsidian task daily line=3 done\n```\n\n`done`\u002F`todo`\u002F`status=` set a state outright; `toggle` flips whatever is\nthere. Use `status=` for custom markers your theme or plugin renders\n(`-` cancelled, `\u002F` in progress, `?` question, etc.).\n\n## Workflow Patterns\n\n### Capture a task to today's daily note\n\n```bash\nobsidian daily:append content=\"- [ ] Review PR #42\"\n```\n\n### Find an open task, then complete it\n\n```bash\n# 1. Locate it — verbose gives path and line number\nobsidian tasks todo verbose\n\n# 2. Update by that location\nobsidian task ref=\"Projects\u002FSprint.md:14\" done\n```\n\n### Close out every task in today's daily note\n\n```bash\nobsidian tasks daily todo verbose\n# then, per reported line:\nobsidian task daily line=\u003Cn> done\n```\n\n### Count outstanding work\n\n```bash\nobsidian tasks todo total\nobsidian tasks daily todo total\n```\n\n## Agentic Optimizations\n\n| Context | Command |\n|---------|---------|\n| List tasks (structured) | `obsidian tasks format=json` |\n| Open tasks only | `obsidian tasks todo` |\n| Locate tasks (path + line) | `obsidian tasks verbose` |\n| Tasks in one file | `obsidian tasks file=X` |\n| Today's tasks | `obsidian tasks daily` |\n| Outstanding count | `obsidian tasks todo total` |\n| Complete a task | `obsidian task ref=\"path.md:N\" done` |\n| Toggle a task | `obsidian task ref=\"path.md:N\" toggle` |\n| Custom status | `obsidian task file=X line=N status=-` |\n| Quick capture to daily | `obsidian daily:append content=\"- [ ] task\"` |\n\n## Related Skills\n\n- **vault-files** — Append task lines to notes and daily notes (there is no `task` create command)\n- **search-discovery** — Find notes containing tasks, or search task text\n- **properties** — Track task metadata in frontmatter instead of checklist lines\n",{"name":5,"created":44,"modified":45,"reviewed":45,"description":7,"allowed-tools":46,"user-invocable":40},1772582400000,1790035200000,"Bash, Read, Grep, Glob","main","bdd0582f1a2ba53d21061835bfd72d45f2f954f4","obsidian-plugin\u002Fskills\u002Ftasks",6,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins","https:\u002F\u002Fgithub.com\u002Flaurigates","Linux enthusiast, cloud engineer, neovim addict, electronics hobbyist.","2026-11-12 03:43:32",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add laurigates\u002Fclaude-plugins --skill tasks",{"tool":61,"command":62},"bunx","bunx skills add laurigates\u002Fclaude-plugins --skill tasks",{"tool":64,"command":65},"pnpm","pnpm dlx skills add laurigates\u002Fclaude-plugins --skill tasks","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fobsidian-plugin\u002Fskills\u002Ftasks\u002FSKILL.md",true,[69,75],{"path":70,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":73,"sourceHtmlUrl":74},"SOURCE.md","REFERENCE","参考文档",204,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fai-crypto\u002Fexme-wallet-skill\u002FSOURCE.md",{"path":76,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":77,"sourceHtmlUrl":78},"TRUST.auto.yaml",2217,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fai-crypto\u002Fexme-wallet-skill\u002FTRUST.auto.yaml",[80,104,124,140,163,193],{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":91,"publishedAt":39},"01M70PFHMH9ADY0CRE6047Y4B2","kitty-show-image","Show the user an image with a note on what to judge, via a file send or a labelled kitty tab. Use when the user must see an image, or icat fails with no \u002Fdev\u002Ftty.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fkitty-plugin\u002Fskills\u002Fkitty-show-image\u002FSKILL.md",[86],{"categoryNo":87,"categoryName":88,"taxonomyType":89,"taxonomyTypeDesc":90},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[92,93,94,95,96,97,98,99,35,100,29,21,34,36,101,102,103,24,20,32],"show","kitty show image","image","kitty","show image","ls","get","send","dev","text","with","xdg",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":39},"01M70PFEN18HKQ4RCQ1VPGMPTB","kitty-session-persistence","Snapshot and restore kitty terminal sessions on macOS. Use when surviving WindowServer hangs without losing tabs, configuring snapshots, or restoring after a force-reboot.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fkitty-plugin\u002Fskills\u002Fkitty-session-persistence\u002FSKILL.md",[],[95,111,112,113,27,114,21,34,115,116,117,20,32,118,119,120,121,122,123,29],"kitty session persistence","session","persistence","snapshots","uname","reboot","terminal","write","edit","snapshot","macos","sessions","restore",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":130,"publishedAt":39},"01M70PFC77XGXCVQ1543VGZHYR","kitty-remote-control","Safe kitty remote control from an agent — read panes with kitty @ ls\u002Fget-text, notify, and never mutate the live terminal unasked. Use when running inside kitty.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fkitty-plugin\u002Fskills\u002Fkitty-remote-control\u002FSKILL.md",[],[131,132,95,133,134,97,135,136,98,137,138,29,21,139,34,101,102,117,20,32],"kitty remote control","remote","control","remote control","running","never","panes","notify","query",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":146,"publishedAt":39},"01M70P6WVMCT5JG4SACTM69AF9","docs-reference-check","Dangling doc-reference gate: flag markdown naming repo paths or relative links that no longer exist. Use when docs cite moved\u002Fdeleted files, or wiring a doc-drift lint.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fdocumentation-plugin\u002Fskills\u002Fdocs-reference-check\u002FSKILL.md",[],[147,148,149,150,151,152,153,154,155,156,29,21,34,157,36,158,159,160,161,162],"docs reference check","check","reference check","reference","docs","links","python3","repo","files","auto","drift","lint","wiring","chezmoi","references","cp",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":178,"publishedAt":39},"01M6C6NDE7DAQGNWSF22J5CJ0Z","youtube-upload","Upload a video to YouTube via the Data API v3 and edit its title, description, tags or thumbnail afterwards. Use when publishing or retitling a YouTube video.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fyoutube-plugin\u002Fskills\u002Fyoutube-upload\u002FSKILL.md",[169,172,173],{"categoryNo":170,"categoryName":171,"taxonomyType":89,"taxonomyTypeDesc":90},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":87,"categoryName":88,"taxonomyType":89,"taxonomyTypeDesc":90},{"categoryNo":174,"categoryName":175,"taxonomyType":176,"taxonomyTypeDesc":177},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[179,180,181,182,153,183,32,184,119,185,186,187,29,34,36,188,189,21,190,191,192,24,20],"youtube upload","upload","youtube","Video","run","uv run","publishing","data","uv","api","v3","tags","id","title",{"skillNo":194,"name":195,"nameZh":6,"description":196,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":197,"categories":198,"keywords":202,"publishedAt":39},"01M6C6NABWW1X58KJJM4F6GQMQ","youtube-studio-share","Share a private YouTube video with a whole Google Workspace organization by scripting YouTube Studio in the browser. Use when a video must be org-only.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fyoutube-plugin\u002Fskills\u002Fyoutube-studio-share\u002FSKILL.md",[199],{"categoryNo":200,"categoryName":201,"taxonomyType":89,"taxonomyTypeDesc":90},"01JBSEEDCAT000000000000023","Skill与智能体开发",[203,204,205,206,181,182,207,208,209,210,211,32,212,213,214,215,29,216,21,102,217,20],"youtube studio share","share","youtube studio","studio","browser","javascript","scripting","google workspace","workspace","tool","google","only","MCP","chrome","organization"]