Anytype Sync for Godot
Connect your Godot project to Anytype with a small, dependency-free GDScript client for Anytype’s local HTTP API.
Anytype Sync gives your game or tool a straightforward way to read, search, create, update, and archive Anytype objects directly from Godot. Use it for developer tools, content workflows, companion apps, personal knowledge integrations, prototypes, or any project that benefits from a local, structured knowledge base.
Highlights
- Native Godot 4 editor plugin with a registered
AnytypeClientnode. - Runtime GDScript API with no third-party dependencies.
- Local API-key authentication and challenge-based authentication helpers.
- List and inspect Anytype spaces.
- List, retrieve, create, update, and archive objects.
- Global object search with optional type filters.
- Access space types and properties.
- Pagination helpers for large collections.
- One-call, page-by-page synchronization of all active objects in a space.
- Configurable API endpoint, API version, and request timeout.
- Consistent async results with HTTP status codes, parsed response data, and error messages.
- Request and synchronization signals for progress and integration with your own UI.
- Low-level
request_async()access for API endpoints not yet wrapped by a convenience method.
Quick start
- Install the addon in your Godot project under
addons/anytype_sync. - Enable Anytype Sync in Project > Project Settings > Plugins.
- In Anytype, create an API key from Settings > API Keys.
- Add an
AnytypeClientnode to your scene, or create one from code.
var anytype := AnytypeClient.new()
add_child(anytype)
anytype.configure("YOUR_API_KEY")
var spaces: Dictionary = await anytype.list_spaces()
if spaces.ok:
print(spaces.data)
The default endpoint is http://127.0.0.1:31009. You can configure a different local Anytype instance when needed:
anytype.configure("YOUR_API_KEY", "http://localhost:31009")
Example
Create an object, search for pages, or pull an entire space:
var created := await anytype.create_object(space_id, {
"name": "Created from Godot",
"icon": {"emoji": "🎮", "format": "emoji"},
"body": "Created by a Godot project.",
"type_key": "page",
})
var results := await anytype.search("Godot", ["page"])
var space_snapshot := await anytype.sync_space(space_id)
Convenience methods return a consistent dictionary:
{
"ok": true,
"status_code": 200,
"data": ...
}
Failed requests include an error message and preserve JSON returned by Anytype in data when available. Archiving uses Anytype’s delete endpoint; it archives the object rather than immediately destroying it.
Requirements
- Godot 4.x
- Anytype installed and running with its local HTTP API available
- An Anytype API key
Included API coverage
The addon wraps challenge authentication, spaces, objects, global search, types, properties, pagination, and complete space synchronization. The API version is configurable and defaults to 2025-11-08.
For advanced or newly introduced endpoints, use request_async() directly.
License
See the included LICENSE file for licensing details.
Changelog for version v.1.0
No changelog provided for this version.