Files
logseq/libs
Tienson Qin 0a54e807bb enhance(api): plugin class with ident like plugin.class.id/class-name (#12200)
* enhance(api): plugin class with ident like `plugin.class.id/class-name`
* enhance(apis): remove support for namespace separator in create tag
* enhance(apis): get tag with ident or uuid
* fix(lint): remove unused vars
* fix(apis): sanitize user property name
* enhance(apis): get tag ex info
* chore: bump libs version
---------
Co-authored-by: charlie <xyhp915@qq.com>
2025-11-14 10:48:08 +08:00
..
2025-10-24 23:49:49 +08:00
2025-10-21 16:32:12 +08:00
2022-09-01 00:31:49 +08:00
2025-10-21 16:32:12 +08:00
2023-12-13 15:42:21 +08:00
2025-10-21 16:32:12 +08:00
2025-10-21 16:32:12 +08:00

@logseq/libs

🚀 Logseq SDK libraries.

Installation

yarn add @logseq/libs

Usage

Load logseq plugin sdk as global namespace

import "@logseq/libs"

APIs & Samples

Community templates

  1. https://github.com/pengx17/logseq-plugin-template-react
  2. https://github.com/pengx17/logseq-plugin-template-svelte
  3. https://github.com/tiensonqin/logseq-cljs-playground
  4. https://github.com/YU000jp/logseq-plugin-sample-kit-typescript

Feedback

If you have any feedback or encounter any issues, feel free to join Logseq's discord group. https://discord.gg/KpN4eHY

Generate CLJS SDK wrappers

To regenerate the ClojureScript facade from the JS SDK declarations (keeping the same argument shapes as the JS APIs while auto-converting to/from CLJS data):

yarn run generate:schema              # emits dist/logseq-sdk-schema.json
bb libs:generate-cljs-sdk            # emits logseq/core.cljs and per-proxy files under target/generated-cljs

Non-proxy methods (those defined on ILSPluginUser, e.g. ready, provide-ui) land in logseq.core. Each proxy (IAppProxy, IEditorProxy, ...) is emitted to its own namespace such as logseq.app or logseq.editor, preserving the original JS argument ordering while automatically bean-converting CLJS data.

Pass --out-dir to change the output location or --ns-prefix to pick a different namespace root.