## @logseq/libs

🚀 Logseq SDK libraries.

#### Installation

```shell
yarn add @logseq/libs
```

#### Usage

Load `logseq` plugin sdk as global namespace

```js
import "@logseq/libs"
```

#### APIs & Samples & References
- https://logseq.github.io/plugins/
- https://github.com/logseq/logseq-plugin-samples
- [The New DB properties developer guide - A](./development-notes/db_properties_guide.md)
- [The New DB properties developer guide - B](./development-notes/db_properties_skill.md)
- [Logseq Plugin Development Agents Guide](./development-notes/AGENTS.md)

#### 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):

```bash
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.
