Files
logseq/libs
Charlie 3c2359a79e enhance(plugins): libs improvements (#12588)
* enhance(libs): add Commands proxy and unified command APIs

* enhance(plugin): improve unregistering of simple and palette commands

* enhance(plugin): add unregister functionality for plugin commands

* chore(libs): add logseq.Commands API guide and implementation

* enhance(libs): introduce LSPluginNet for HTTP client functionality

* fix(ipc): ensure proper handling of IPC messages and improve plugin call structure

* enhance(libs): add HTTP methods (GET, HEAD, POST, PUT, PATCH, DELETE) and error handling

* enhance(api): support additional identifier types for opening blocks in sidebar

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Tienson Qin <tiensonqin@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-07 15:21:48 +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
2026-04-24 23:40:25 +08:00
2026-03-23 21:32:28 +08:00

@logseq/libs

🚀 Logseq SDK libraries.

Installation

pnpm add @logseq/libs

Usage

Load logseq plugin sdk as global namespace

import "@logseq/libs"

APIs & Samples & References

Community templates

  1. https://github.com/logseq/cljs-plugin-example
  2. 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):

pnpm 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.