AnyType knowledge base integration via direct REST API. USE WHEN anytype, knowledge base search, create note, create object, anytype spaces, search notes, read object, list tasks, manage tasks OR any request to interact with AnyType data.
Install
npx skillscat add mrecek/ai-skills/anytype Install via the SkillsCat registry.
AnyType Skill
Direct integration with AnyType's local REST API. No MCP dependency — uses HTTP calls via a TypeScript CLI tool.
Prerequisites
- AnyType desktop app running (provides REST API on localhost)
bunruntime installed- API key configured (run Auth workflow if not set up)
Configuration
Per-machine config is resolved in order:
- Environment variables:
ANYTYPE_API_KEY,ANYTYPE_HOST,ANYTYPE_PORT - Config file:
~/.config/anytype-skill/config.json - Defaults: host=localhost, port=31009
Auto-space: Commands that require a space ID will auto-detect it when you have a single space. Use --space <id> to override or when you have multiple spaces.
Tool Location
All operations go through a single CLI tool at Tools/AnyType.ts relative to this skill's root directory. Construct the full path based on where this SKILL.md was loaded from.
bun <skill-root>/Tools/AnyType.ts <command> [options]Workflow Routing
| Workflow | Trigger | File |
|---|---|---|
| Auth | Set up API key, authenticate, auth status | Workflows/Auth.md |
| Search | Search objects, find notes, query AnyType | Workflows/Search.md |
| Read | Get object, read note, view object details | Workflows/Read.md |
| Tasks | List tasks, create task, mark done, manage tasks | Workflows/Tasks.md |
Tool Reference
Authentication
| Command | Description |
|---|---|
auth challenge |
Start auth flow (4-digit code appears in AnyType) |
auth verify <challenge_id> <code> |
Exchange code for API key |
auth set-key <key> |
Manually set an API key |
auth status |
Check current config and connectivity |
Querying
| Command | Description |
|---|---|
spaces |
List all spaces |
search --query <text> [--types <t1,t2>] [--sort <prop>] [--direction asc|desc] [--space <id>] [--limit N] |
Search objects |
get --id <id> [--space <id>] |
Get a specific object |
list [--space <id>] [--limit N] |
List objects in a space |
tasks [--done] [--all] |
List tasks (default: open/uncompleted) |
Task Shortcuts
| Command | Description |
|---|---|
task-add "name" [--due YYYY-MM-DD] [--body <text>] |
Quick-create a task |
done <task_id> |
Mark a task as complete |
Mutating
| Command | Description |
|---|---|
create --type <key> --name <name> [--body <md>] [--properties <json>] |
Create an object |
update --id <id> [--name <n>] [--body <md>] [--due DATE] [--properties <json>] |
Update an object |
delete --id <id> |
Archive an object |
All commands output JSON to stdout. --space is optional for all mutating/querying commands (auto-detected).
Search Behavior
- Search
queryis required and searches object content, not just names - To list all objects of a type, use a space as wildcard:
search --query " " --types <type_key> - The
--typesflag filters which object types are returned, not what text is searched - Type keys (e.g.,
page,task,note) vary per space — discover them by running a broad search and inspecting thetype.keyfield in results - Objects may contain
anytype://links in their markdown body that reference other objects byobjectIdandspaceId— use these with thegetcommand to follow links - Use
--sort last_modified_date --direction descto get most recently modified first - Use
--space <id>to scope search to a single space
Property Format Reference
When using --properties with create or update, match the property format:
| Format | JSON Example |
|---|---|
| checkbox | {"key": "done", "checkbox": true} |
| text | {"key": "description", "text": "Some text"} |
| select | {"key": "status", "select": {"name": "In Progress"}} |
| date | {"key": "due_date", "date": "2026-03-01T00:00:00Z"} |
Note: update also accepts --due YYYY-MM-DD as a shorthand for setting the due_date property.
API Quirks
- Unchecked checkboxes are omitted: When
doneisfalse, the property is absent from the response (not returned asfalse). Thetaskscommand handles this automatically. - No server-side property filtering: The API filters by type but not property values. The
taskscommand filters client-side. - Delete = archive: The DELETE endpoint archives objects; they can be restored in AnyType.
Examples
List open tasks:
bun Tools/AnyType.ts tasksQuick-create a task with due date:
bun Tools/AnyType.ts task-add "Review pull request" --due 2026-03-01Mark task done:
bun Tools/AnyType.ts done <task_id>Set a due date on existing task:
bun Tools/AnyType.ts update --id <task_id> --due 2026-03-15Search with sorting:
bun Tools/AnyType.ts search --query "meeting" --sort last_modified_date --direction descRead a specific object:
bun Tools/AnyType.ts get --id <object_id>Create with full control:
bun Tools/AnyType.ts create --type page --name "Meeting Notes" --body "## Agenda\n- Item 1"