Description
Changelog
Reviews (0)

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 AnytypeClient node.
  • 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

  1. Install the addon in your Godot project under addons/anytype_sync.
  2. Enable Anytype Sync in Project > Project Settings > Plugins.
  3. In Anytype, create an API key from Settings > API Keys.
  4. Add an AnytypeClient node 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.

Reviews

Anytype Sync has no reviews yet.

Login to write a review.

Consider supporting the creators!

If you enjoyed this asset consider supporting its creator. Follow the link below.