[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CDWWN84EEPV4BWSJJ6J10T":3,"skill-same:01M6CDWWN84EEPV4BWSJJ6J10T":92},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":25,"publishedAt":52,"linkOnly":53,"markdownContent":54,"markdownBody":55,"frontMatter":56,"refName":32,"commitSha":72,"skillDirectory":73,"forksCount":74,"repositoryHtmlUrl":75,"repositoryHomepageUrl":6,"ownerHtmlUrl":76,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":77,"install":78,"resources":91},"01M6CDWWN84EEPV4BWSJJ6J10T","anywrite",null,"Compiled CLI covering all 52 endpoints of the Anytype local API — objects, properties, tags, search, chat, files — one binary, no MCP server needed.","boisenoise\u002Fskills-collections","boisenoise","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F193180?v=4","01M6CDBDQK6BDN55ZMA6B6PKBM","01M6CDBDVSJ3JPTBYN26FZ7TZK",12,"MIT","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-anywrite\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[5,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],"knowledge-management","2026","at","critical","local","objects","main","anytype","community","api-integration","endpoints","files","pkm","MCP","knowledge","api","productivity","server","search","license","notes","mcp server","codex","github","gemini","cli","2026-11-10 10:12:30",false,"---\nname: anywrite\ndescription: \"Compiled CLI covering all 52 endpoints of the Anytype local API — objects, properties, tags, search, chat, files — one binary, no MCP server needed.\"\ncategory: productivity\nrisk: critical\nsource: community\nsource_repo: Antheurus\u002Fanywrite\nsource_type: community\ndate_added: \"2026-07-15\"\nauthor: Antheurus\ntags: [anytype, cli, pkm, notes, api-integration, productivity, knowledge-management]\ntools: [claude, cursor, gemini, codex]\nlicense: \"MIT\"\nlicense_source: \"https:\u002F\u002Fgithub.com\u002FAntheurus\u002Fanywrite\u002Fblob\u002Fmain\u002FLICENSE\"\nplugin:\n  targets:\n    codex: blocked\n    claude: blocked\n  setup:\n    type: manual\n    summary: \"Requires a separately installed, user-approved anywrite executable at an explicit absolute path.\"\n    docs: SKILL.md\n---\n\n# anywrite\n\n## Overview\n\n`anywrite` is a single compiled Bun\u002FTypeScript CLI for the [Anytype](https:\u002F\u002Fanytype.io) desktop app's local HTTP API — **all 52 endpoints** across spaces, objects, properties, tags, types, templates, lists, chat, files, members, search, and auth — as one binary with zero runtime dependencies. It exists as a low-context alternative to Anytype's official MCP server: rather than exposing 52 always-loaded tools to every agent session, `anywrite` is a normal CLI wired as a skill that costs zero context until it's actually invoked, and is equally usable from a terminal or any script.\n\n## When to Use This Skill\n\n- Use when the user mentions Anytype or asks to create, update, search, or organize notes, tasks, or PKM objects.\n- Use when working with Anytype spaces, properties, tags, types, templates, or lists (sets and collections).\n- Use when the user asks to upload files to a space, chat inside a space, or read\u002Fwrite structured objects programmatically.\n\n## How It Works\n\n### Step 1: Ensure Anytype desktop is running and authenticated\n\nThis repository does not ship the `anywrite` executable. The user must install or build a reviewed upstream release outside the current workspace and provide its explicit absolute path. Before use, verify that path is an executable regular file, is not a symlink, and is not a workspace-relative `dist\u002F` artifact. Never auto-discover or execute `.\u002Fdist\u002Fanywrite` from the repository being worked on.\n\nThe Anytype desktop app must be running locally (default `http:\u002F\u002Flocalhost:31009`). Authenticate once:\n\n```bash\n\"\u002Fabsolute\u002Fpath\u002Fto\u002Fanywrite\" auth --status        # shows configured yes\u002Fno and where the key came from\n\"\u002Fabsolute\u002Fpath\u002Fto\u002Fanywrite\" auth                 # challenge flow — a 4-digit code appears in the app\n\"\u002Fabsolute\u002Fpath\u002Fto\u002Fanywrite\" auth --code 1234     # non-interactive form of the same exchange\n```\n\nThe key is written to `~\u002F.anywrite\u002Fconfig.json` and is never printed by any command.\n\n### Step 2: Invoke a resource + action\n\n```\nanywrite \u003Cresource> \u003Caction> [positionals] [--flag value]\n```\n\nResources: `spaces`, `objects`, `properties`, `tags`, `types`, `templates`, `lists`, `files`, `members`, `search`, `chat`, `auth`. Output is JSON by default; add `--pretty` for a human view, `--json` as an escape hatch for anything the typed flags don't model yet. `space`\u002F`type`\u002F`property` positionals accept a name or an id — names are resolved to ids automatically.\n\nResolve names to IDs and confirm the exact space\u002Fobject before mutations; duplicate names must not select an arbitrary object. Whole-body replacements can erase content, so preserve a revision and review the complete replacement. Search requests do not authorize uploads\u002Fchat\u002Fdeletes. Bound chat\u002Fsearch pages and payload sizes instead of using --all indiscriminately, and verify the resulting state after writes.\n\n## Examples\n\n### Example 1: Create and update an object\n\n```bash\n\"\u002Fabsolute\u002Fpath\u002Fto\u002Fanywrite\" objects create \u003Cspace> --type task --name \"Buy milk\"\n\"\u002Fabsolute\u002Fpath\u002Fto\u002Fanywrite\" objects update \u003Cspace> \u003Cobject_id> --status \"Done\"\n```\n\n### Example 2: Search and upload a file\n\n```bash\n\"\u002Fabsolute\u002Fpath\u002Fto\u002Fanywrite\" search global --query \"task\" --types task\n\"\u002Fabsolute\u002Fpath\u002Fto\u002Fanywrite\" files upload \u003Cspace> --file .\u002Fimage.png\n```\n\n### Example 3: Read chat messages\n\n```bash\n\"\u002Fabsolute\u002Fpath\u002Fto\u002Fanywrite\" chat messages \u003Cspace> \u003Cchat_id> --all\n```\n\n## Best Practices\n\n- ✅ Pass names for `space`\u002F`type`\u002F`property` and let the CLI resolve them to ids.\n- ✅ Use default JSON output for scripting and `--pretty` for human review.\n- ✅ Reach for `--json` when a brand-new API field isn't yet covered by a typed flag.\n- ❌ Don't set an empty-string emoji `--icon`; omit the flag entirely instead.\n- ❌ Don't expect `lists add`\u002F`remove` to work on sets — they only apply to collections.\n\n## Limitations\n\n- This skill does not replace environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, or safety boundaries are missing.\n- Bounded by the Anytype local API itself: no block-level editing (body is whole-markdown replace only), no member invite\u002Frole management, no template create\u002Fupdate\u002Fdelete, no space deletion.\n- The object body field is named `--body` on create but `--markdown` on update.\n\n## Security & Safety Notes\n\n- The API key is stored locally in `~\u002F.anywrite\u002Fconfig.json` and is never printed by any command, including `auth --status`.\n- Config precedence at runtime: `ANYTYPE_API_KEY` env var, then `~\u002F.anywrite\u002Fconfig.json`, then a read-only fallback to an existing `~\u002F.anytype-cli\u002Fconfig.yaml`.\n- CLI calls target the configured local instance, but Anytype may sync content according to its network\u002Fspace configuration. Verify actual sync\u002Fsharing before writing private data; localhost does not establish local-only storage.\n- Inspect the actual resource\u002Fversion deletion semantics and recovery path; do not assume every delete is reversible or safe to retry from this index.\n\n## Common Pitfalls\n\n- **Problem:** `lists add`\u002F`remove` silently does nothing on a set.\n  **Solution:** These only work on collections, not sets.\n- **Problem:** Re-uploading an identical file returns an existing object id instead of a new one.\n  **Solution:** This is intentional — file upload dedupes by content hash.\n- **Problem:** Chat messages don't paginate like everything else.\n  **Solution:** Chat paginates by cursor; every other resource paginates by offset.\n\n## Related Skills\n\n- `@docx` - When the deliverable is a Word document rather than an Anytype object.\n","# anywrite\n\n## Overview\n\n`anywrite` is a single compiled Bun\u002FTypeScript CLI for the [Anytype](https:\u002F\u002Fanytype.io) desktop app's local HTTP API — **all 52 endpoints** across spaces, objects, properties, tags, types, templates, lists, chat, files, members, search, and auth — as one binary with zero runtime dependencies. It exists as a low-context alternative to Anytype's official MCP server: rather than exposing 52 always-loaded tools to every agent session, `anywrite` is a normal CLI wired as a skill that costs zero context until it's actually invoked, and is equally usable from a terminal or any script.\n\n## When to Use This Skill\n\n- Use when the user mentions Anytype or asks to create, update, search, or organize notes, tasks, or PKM objects.\n- Use when working with Anytype spaces, properties, tags, types, templates, or lists (sets and collections).\n- Use when the user asks to upload files to a space, chat inside a space, or read\u002Fwrite structured objects programmatically.\n\n## How It Works\n\n### Step 1: Ensure Anytype desktop is running and authenticated\n\nThis repository does not ship the `anywrite` executable. The user must install or build a reviewed upstream release outside the current workspace and provide its explicit absolute path. Before use, verify that path is an executable regular file, is not a symlink, and is not a workspace-relative `dist\u002F` artifact. Never auto-discover or execute `.\u002Fdist\u002Fanywrite` from the repository being worked on.\n\nThe Anytype desktop app must be running locally (default `http:\u002F\u002Flocalhost:31009`). Authenticate once:\n\n```bash\n\"\u002Fabsolute\u002Fpath\u002Fto\u002Fanywrite\" auth --status        # shows configured yes\u002Fno and where the key came from\n\"\u002Fabsolute\u002Fpath\u002Fto\u002Fanywrite\" auth                 # challenge flow — a 4-digit code appears in the app\n\"\u002Fabsolute\u002Fpath\u002Fto\u002Fanywrite\" auth --code 1234     # non-interactive form of the same exchange\n```\n\nThe key is written to `~\u002F.anywrite\u002Fconfig.json` and is never printed by any command.\n\n### Step 2: Invoke a resource + action\n\n```\nanywrite \u003Cresource> \u003Caction> [positionals] [--flag value]\n```\n\nResources: `spaces`, `objects`, `properties`, `tags`, `types`, `templates`, `lists`, `files`, `members`, `search`, `chat`, `auth`. Output is JSON by default; add `--pretty` for a human view, `--json` as an escape hatch for anything the typed flags don't model yet. `space`\u002F`type`\u002F`property` positionals accept a name or an id — names are resolved to ids automatically.\n\nResolve names to IDs and confirm the exact space\u002Fobject before mutations; duplicate names must not select an arbitrary object. Whole-body replacements can erase content, so preserve a revision and review the complete replacement. Search requests do not authorize uploads\u002Fchat\u002Fdeletes. Bound chat\u002Fsearch pages and payload sizes instead of using --all indiscriminately, and verify the resulting state after writes.\n\n## Examples\n\n### Example 1: Create and update an object\n\n```bash\n\"\u002Fabsolute\u002Fpath\u002Fto\u002Fanywrite\" objects create \u003Cspace> --type task --name \"Buy milk\"\n\"\u002Fabsolute\u002Fpath\u002Fto\u002Fanywrite\" objects update \u003Cspace> \u003Cobject_id> --status \"Done\"\n```\n\n### Example 2: Search and upload a file\n\n```bash\n\"\u002Fabsolute\u002Fpath\u002Fto\u002Fanywrite\" search global --query \"task\" --types task\n\"\u002Fabsolute\u002Fpath\u002Fto\u002Fanywrite\" files upload \u003Cspace> --file .\u002Fimage.png\n```\n\n### Example 3: Read chat messages\n\n```bash\n\"\u002Fabsolute\u002Fpath\u002Fto\u002Fanywrite\" chat messages \u003Cspace> \u003Cchat_id> --all\n```\n\n## Best Practices\n\n- ✅ Pass names for `space`\u002F`type`\u002F`property` and let the CLI resolve them to ids.\n- ✅ Use default JSON output for scripting and `--pretty` for human review.\n- ✅ Reach for `--json` when a brand-new API field isn't yet covered by a typed flag.\n- ❌ Don't set an empty-string emoji `--icon`; omit the flag entirely instead.\n- ❌ Don't expect `lists add`\u002F`remove` to work on sets — they only apply to collections.\n\n## Limitations\n\n- This skill does not replace environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, or safety boundaries are missing.\n- Bounded by the Anytype local API itself: no block-level editing (body is whole-markdown replace only), no member invite\u002Frole management, no template create\u002Fupdate\u002Fdelete, no space deletion.\n- The object body field is named `--body` on create but `--markdown` on update.\n\n## Security & Safety Notes\n\n- The API key is stored locally in `~\u002F.anywrite\u002Fconfig.json` and is never printed by any command, including `auth --status`.\n- Config precedence at runtime: `ANYTYPE_API_KEY` env var, then `~\u002F.anywrite\u002Fconfig.json`, then a read-only fallback to an existing `~\u002F.anytype-cli\u002Fconfig.yaml`.\n- CLI calls target the configured local instance, but Anytype may sync content according to its network\u002Fspace configuration. Verify actual sync\u002Fsharing before writing private data; localhost does not establish local-only storage.\n- Inspect the actual resource\u002Fversion deletion semantics and recovery path; do not assume every delete is reversible or safe to retry from this index.\n\n## Common Pitfalls\n\n- **Problem:** `lists add`\u002F`remove` silently does nothing on a set.\n  **Solution:** These only work on collections, not sets.\n- **Problem:** Re-uploading an identical file returns an existing object id instead of a new one.\n  **Solution:** This is intentional — file upload dedupes by content hash.\n- **Problem:** Chat messages don't paginate like everything else.\n  **Solution:** Chat paginates by cursor; every other resource paginates by offset.\n\n## Related Skills\n\n- `@docx` - When the deliverable is a Word document rather than an Anytype object.\n",{"name":5,"risk":29,"tags":57,"tools":58,"author":61,"plugin":62,"source":34,"license":14,"category":42,"date_added":69,"description":7,"source_repo":70,"source_type":34,"license_source":71},[33,51,38,46,35,42,26],[59,60,50,48],"claude","cursor","Antheurus",{"setup":63,"targets":67},{"docs":64,"type":65,"summary":66},"SKILL.md","manual","Requires a separately installed, user-approved anywrite executable at an explicit absolute path.",{"codex":68,"claude":68},"blocked","2026-07-15","Antheurus\u002Fanywrite","https:\u002F\u002Fgithub.com\u002FAntheurus\u002Fanywrite\u002Fblob\u002Fmain\u002FLICENSE","e8c4cb5cbafb600fab08ffdf4b23359c9f608d9d","skills\u002Fantigravity-anywrite",3,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections","https:\u002F\u002Fgithub.com\u002Fboisenoise","2026-11-13 14:20:47",{"source":8,"skillName":5,"commands":79,"prompt":89,"zipAvailable":90},[80,83,86],{"tool":81,"command":82},"npx","npx skills add boisenoise\u002Fskills-collections --skill anywrite",{"tool":84,"command":85},"bunx","bunx skills add boisenoise\u002Fskills-collections --skill anywrite",{"tool":87,"command":88},"pnpm","pnpm dlx skills add boisenoise\u002Fskills-collections --skill anywrite","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-anywrite\u002FSKILL.md",true,[],[93,120,140,166,185,208],{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":97,"licenseFileUrl":98,"sourceHtmlUrl":99,"categories":100,"keywords":101,"publishedAt":52},"01M6WNH92BHVFXHGPDZCPJ0AG0","web-access","Use Treg for public web or platform data only when existing search, browser and connected tools cannot cover the task, with explicit cost and data boundaries.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-web-access\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-web-access\u002FSKILL.md",[],[102,103,104,105,106,107,44,108,109,110,111,112,113,114,115,29,116,117,118,119,27],"web","access","web access","official","development","browser","data","Tools","read","fetch","only","youtube","free tools","platform","free","cover","normal","when",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":97,"licenseFileUrl":124,"sourceHtmlUrl":125,"categories":126,"keywords":128,"publishedAt":52},"01M6WNF9XAYAB2CZDDJBAKNM93","treg","Use the Treg CLI or MCP catalog to discover, price and call authorized external tools with team-scoped credentials and a user-approved budget.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-treg\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-treg\u002FSKILL.md",[127],{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},[122,39,51,49,105,106,45,109,129,130,131,132,133,134,135,29,136,137,138,139,27],"Budget","credentials","team","catalog","use","call","discover","external tools","with","scoped","blob",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":97,"licenseFileUrl":144,"sourceHtmlUrl":145,"categories":146,"keywords":152,"publishedAt":52},"01M6WN93MEAZ4E41DYAHJRPHQT","recruit","Turn a job description into an evidence-linked candidate shortlist through Treg, with job-related ranking and optional authorized business contact enrichment.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-recruit\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-recruit\u002FSKILL.md",[147],{"categoryNo":148,"categoryName":149,"taxonomyType":150,"taxonomyTypeDesc":151},"01JBSEEDCAT000000000000038","人力资源","PROFESSION","适用职业",[142,49,105,45,153,154,155,156,157,158,29,159,160,161,137,162,163,164,165,139,122,27],"https","email","enrichment","business","evidence","phone","ranking","post","job description","for","person","candidate","reason",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":97,"licenseFileUrl":170,"sourceHtmlUrl":171,"categories":172,"keywords":173,"publishedAt":52},"01M6WN8R5RXSMHM9B4D9FAFX42","rea-growth","Analyze a company’s public growth and content through Treg, distinguish observations from hypotheses, and produce an evidence-linked playbook within an approved budget.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-rea-growth\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-rea-growth\u002FSKILL.md",[],[174,175,176,49,105,45,177,178,153,179,129,180,181,182,157,29,183,184,139,122,27],"growth","rea","rea growth","produce","content","playbook","marketing","analyze","public","observations","company",{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":97,"licenseFileUrl":189,"sourceHtmlUrl":190,"categories":191,"keywords":192,"publishedAt":52},"01M6WN2EVE3RQRGWAKBT4S7YT2","make-ugc","Create original AI UGC-style product videos through Treg: research hooks, approve a licensed presenter and voice, generate clips, add captions and report costs.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-make-ugc\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-make-ugc\u002FSKILL.md",[],[193,194,49,195,105,196,45,197,198,199,200,201,29,202,203,204,205,206,207,139],"make","make ugc","research","create","Video","Captions","ads","short","hooks","head","style","niche","trending","talking-head","approve",{"skillNo":209,"name":210,"nameZh":6,"description":211,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":97,"licenseFileUrl":212,"sourceHtmlUrl":213,"categories":214,"keywords":215,"publishedAt":52},"01M6WN10ARAA63Y8K1YNGXJ2RM","lead-signals","Find and qualify public buying signals through Treg, rank fitting business accounts and optionally enrich authorized business contact information.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-lead-signals\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-lead-signals\u002FSKILL.md",[],[216,217,218,49,105,45,219,220,156,221,222,29,223,224,225,226,227,228,229,139],"signals","lead","lead signals","how","find","ready","as","how to","qualify","people","information","enrich","changes","funding"]