Logseq Review Workflow Eval
logseq/logseq
Compare two revisions of the Logseq logseq-review-workflow skill by running the same review prompt against isolated before and after skill snapshots, collecting both outputs, and producing a…
A skill your agent uses when working on Trilium's share functionality — shared pages under /share/, the static HTML (share-theme) export, the share theme package (packages/share-theme: EJS…
$ npx skills add TriliumNext/Trilium --skill developing-share-pages -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install TriliumNext/Trilium developing-share-pages --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/TriliumNext/Trilium.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/developing-share-pages .claude/skills/developing-share-pages && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "developing-share-pages" agent skill from https://github.com/TriliumNext/Trilium/tree/main/.claude/skills/developing-share-pages into .claude/skills/developing-share-pages/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "developing-share-pages", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/TriliumNext/Trilium/tree/main/.claude/skills/developing-share-pagesType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add TriliumNext/Trilium --skill developing-share-pages -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install TriliumNext/Trilium developing-share-pages --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TriliumNext/Trilium.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/developing-share-pages .agents/skills/developing-share-pages && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "developing-share-pages" agent skill from https://github.com/TriliumNext/Trilium/tree/main/.claude/skills/developing-share-pages into .agents/skills/developing-share-pages/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "developing-share-pages", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TriliumNext/Trilium --skill developing-share-pages -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install TriliumNext/Trilium developing-share-pages --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TriliumNext/Trilium.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/developing-share-pages .cursor/skills/developing-share-pages && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "developing-share-pages" agent skill from https://github.com/TriliumNext/Trilium/tree/main/.claude/skills/developing-share-pages into .cursor/skills/developing-share-pages/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "developing-share-pages", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/TriliumNext/Trilium.git --path .claude/skills/developing-share-pages--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add TriliumNext/Trilium --skill developing-share-pages -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install TriliumNext/Trilium developing-share-pages --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TriliumNext/Trilium.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/developing-share-pages .gemini/skills/developing-share-pages && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "developing-share-pages" agent skill from https://github.com/TriliumNext/Trilium/tree/main/.claude/skills/developing-share-pages into .gemini/skills/developing-share-pages/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "developing-share-pages", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install TriliumNext/Trilium developing-share-pagesInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add TriliumNext/Trilium --skill developing-share-pages -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/TriliumNext/Trilium.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/developing-share-pages .github/skills/developing-share-pages && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "developing-share-pages" agent skill from https://github.com/TriliumNext/Trilium/tree/main/.claude/skills/developing-share-pages into .github/skills/developing-share-pages/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "developing-share-pages", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TriliumNext/Trilium --skill developing-share-pages -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install TriliumNext/Trilium developing-share-pages --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TriliumNext/Trilium.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/developing-share-pages .opencode/skills/developing-share-pages && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "developing-share-pages" agent skill from https://github.com/TriliumNext/Trilium/tree/main/.claude/skills/developing-share-pages into .opencode/skills/developing-share-pages/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "developing-share-pages", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
developing-share-pagesA skill your agent uses when working on Trilium's share functionality — shared pages under /share/, the static HTML (share-theme) export, the share theme package (packages/share-theme: EJS…
Developing Share Pages is an agent skill from TriliumNext/Trilium. Use when working on Trilium's share functionality — shared pages under /share/, the static HTML (share-theme) export, the share theme package (packages/share-theme: EJS templates, page model, browser scripts and CSS), core's share renderer (packages/trilium-core/src/share/contentrenderer.ts, handlers.ts, shaca), the per-platform share providers, ~shareTemplate custom templates, ~shareHtml snippets, or any share label. Covers where each piece runs (server, desktop, standalone worker, visitor's browser), the render…
Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Knowledge Management. The repository describes itself as: Build your personal knowledge base with Trilium Notes. The licence is AGPL-3.0.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 80be026. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pnpmnpxgitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm, npx and git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Developing Share Pages loads about 3.4k tokens when it runs. Until then it costs about 196 tokens; SKILL.md has 1,438 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from TriliumNext/Trilium at commit 80be026, republished under its AGPL-3.0 licence (© TriliumNext). 1,438 words, ~3,415 tokens.
.claude/skills/developing-share-pages/SKILL.md (or your agent's skills folder).A shared note is rendered on the backend into a complete HTML page by core, using the share theme's EJS templates, and then enhanced in the visitor's browser by the share theme's script bundle. The same renderer produces the static HTML export, with every page written to a ZIP.
packages/trilium-core/src/share/ backend, runs in server, desktop and the standalone worker
route_paths.ts SHARE_ROUTE_PATHS (import-free, so a platform can register routes cheaply)
handlers.ts transport-neutral handlers: credentials, protected notes, raw, images, search
content_renderer.ts note → content HTML (getContent), page render (renderNoteContent,
renderNoteForExport), preparePageContent, highlighting
shaca/ share cache: SNote/SBranch/SAttribute/SAttachment over a read-only SQL view
share_provider.ts ShareProvider interface: sql, readTemplate, isScriptingEnabled, isReady
apps/server/src/share/ Express adapter (routes.ts) + Node provider (share_provider.ts)
apps/standalone/src/lightweight/ browser provider (share_provider.ts: templates bundled ?raw)
and route adapter (browser_routes.ts)
packages/trilium-core/src/services/export/zip/share_theme.ts static export (renderNoteForExport)
packages/share-theme/
src/model/page.ts the page model: pure functions from notes to template values
src/templates/ page.ejs + partials (boot_script, tree_item, toc_item, prev_next, 404)
src/index.ts browser entry; imports CSS in cascade order, calls each setup*()
src/page/ page chrome: one script next to its CSS (layout, header, navigation,
search, toc, theme_switch, footer)
src/content/ content enhancements (math, mermaid) and content CSS
scripts/build.ts esbuild → dist/scripts.js + dist/scripts.css, and dist/tree.js on its own
(no code splitting, so it loads as one file) (run by tsx)packages/share-theme/package.json exports ./templates/* and ./model/* from source (core
imports the model as @triliumnext/share-theme/model/page); everything else resolves to dist/.
handlers.ts resolves the note through shaca, checks shareCredentials, rejects
protected notes, and calls renderNoteContent(note, canAccessEmbed). A page route first awaits
ensureShareHighlighting() (the renderer is synchronous; language registration is not).getContent(note, options) renders by note type into { header, content, isEmpty }.
Text goes through renderText() (node-html-parser): include-note embeds via the commons
resolver (resolveContentEmbed), link previews via commons markup, reference links, inline
links via getShareLink(), syntax highlighting bounded by shouldSyntaxHighlight().renderNoteContentInternal() builds the variables: the legacy ones
(note, content, subRoot, cssToLoad, jsToLoad, t, utils, ancestors, …) plus the
page model's (head, snippets, logo, prevNext, navigation, childLinks, language,
lastUpdated, contentClasses).~shareTemplate (only when backend scripting is enabled) gets those values with
the content as it is. The default page.ejs additionally gets the output of
preparePageContent(): content with heading anchors and image alt/loading, headings and
toc.tree.js, the first entry of jsToLoad and the only blocking="render" one,
restores the tree's expansion, scroll position and clicked clone before the first paint.
scripts.js then wires the expand buttons, search, ToC scroll tracking, theme switch, footer
date, math, Mermaid, link previews and tabs. boot_script.ejs runs inline in <head> before the
first paint (theme class, collapsed panes, window.glob).The static export calls renderNoteForExport() with isStatic: true, which also expands embeds
at every depth and drops the login link and the last-updated date.
packages/share-theme/src/model/page.ts)Everything a template would otherwise compute lives here, as pure functions over ShareNote,
the structural subset of a note that both SNote and BNote satisfy (pnpm typecheck verifies
this; extend the interface rather than importing core types). Its spec runs on plain fake notes
(fakeNote() / addChild() in page.spec.ts) — no shaca, no database.
| Function | Feeds |
|---|---|
getPageHead | title, description, no-index, OpenGraph (relative image completed with #shareOpenGraphURL), metaTags |
getHtmlSnippets | ~shareHtml per #shareHtmlLocation |
getSiteLogo | logo link and size (#shareLogoWidth/Height are proportions; drawn 32 px wide) |
getShareLink | the only link-target rule: first non-blank of #shareExternalLink, #shareExternal, else ./shareId — used by the tree, subpages, index and inline links |
getNavigationTree, getSiteAncestorIds | the tree; expansion follows the first parent inside the site |
getPrevNextLinks | tree-order previous/next, inside the site; hidden notes get none |
getTableOfContents | nests PageHeadings from core's preparePageContent() |
getChildLinks, getContentClasses | subpage list, #content classes |
getPageLanguages, getLastUpdated | <html lang dir> from the display language, #content lang dir from the content language when it differs, the date via Intl |
Rules:
navigation.length, childLinks.length). Anything that walks notes, reads
labels or transforms HTML goes into the model (or into core when it changes content).renderText()/preparePageContent() already
does — never a regex over HTML in a template.getSitePosition()), never
getParentNotes()[0].~shareTemplate notes are copies of an earlier page.ejs, documented on the Custom share
template page of the User Guide. So:
header is always "").
Add new ones and list them in that page's table.content without the anchors and image attributes
preparePageContent() adds: copies of the old template add their own, and doubling them shows
twice. headings/toc are passed to the default template only.index.ts imports in cascade order (a module's CSS lands
where it is first imported). Moving an import moves CSS; compare the bundle's declarations when
reordering.boot_script.ejs. Top-level const/let in a classic inline
script is a global binding shared with ~shareHtml snippets — keep everything inside the IIFE.
boot_script.spec.ts enforces both and that page.ejs has no <script>.tree.ts's bundle, which is
render-blocking; keep it small, since every page waits for it. Everything else stays in
scripts.js, and ~shareJs scripts never block.theme-dark/theme-light, left-pane-collapsed) — the theme switch is styled from it, not
from :checked, so it needs no script to look right.getElementById, not querySelector("#" + slug) (a slug may start
with a digit).@triliumnext/commons/src/lib/…, e.g. enhanceLinkPreviews, getMermaidConfig,
applyTabs); shared content CSS comes from packages/ckeditor5/src/theme/.share_mermaid entry through the client/share_mermaid.json
manifest, so diagrams match the app; it redraws on theme change.| Layer | How | Command |
|---|---|---|
| page model | fake notes | pnpm --filter @triliumnext/share-theme test |
| browser scripts | // @vitest-environment happy-dom; set offsetTop etc. by hand (no layout) | same |
| inline scripts | render the .ejs, run in a node:vm context | same |
| core renderer | shaca fixtures (buildShareNote), getContent() / renderNoteContent() | pnpm --filter server test src/share and pnpm --filter standalone test src/share |
The share code is held at 100% coverage (lines, branches, functions, statements), and CI fails below it:
packages/share-theme/vitest.config.ts (--coverage in the
share-theme CI step, Codecov flag share-theme);packages/trilium-core/src/share/** and apps/server/src/share/**, by the per-glob thresholds in
apps/server/vite.config.mts; core's share code and lightweight/share_provider.ts again in
apps/standalone/vite.config.mts. Each runner must reach 100% on its own;share project status in codecov.yml.Check a change with --coverage on the narrowest run, e.g. npx vitest run share --coverage in
apps/server and apps/standalone; the threshold errors name the glob that falls short. Other
core files print PARSE_ERROR noise in that run (untested files are parsed untransformed); it does
not fail the run. Cover a branch with a test; remove it only when the types or the callers rule it
out. Never delete a public SNote/SAttribute/SAttachment method for coverage: custom templates
can call any of them.
vi.mock() runs, so a mock of a
module core already imported (icon packs, search) never reaches the renderer or the handlers.
Use vi.spyOn() on the module namespace or its default export instead, or vi.resetModules()
with vi.doMock() and a dynamic import for a module tested in isolation (the platform adapters).page.ejs with hand-built variables (the subpage-list helper in
content_renderer.spec.ts) must be given every new variable, or EJS throws ReferenceError.
Prefer full renders through renderNoteContent() for new page-level checks.HEAD version in place (git show HEAD:<path> > <path>), run the spec, copy the file back. For
a pure refactor, render the old and new template with the same values and compare the output.querySelector(...) === null as a boolean, or compare mapped attributes.node:vm context have another Object prototype: use toEqual, not
toStrictEqual.tsconfig.json covers specs and browser code alike; a spec needing Node
types adds /// <reference types="node" />.packages/share-theme/dist in development: run
pnpm --filter @triliumnext/share-theme build (or dev to watch) after changing its scripts
or CSS.?raw imports): a new partial must be added to
TEMPLATES in apps/standalone/src/lightweight/share_provider.ts; the server reads the
template folder by name and needs nothing.User-facing share behavior is documented in docs/User Guide/User Guide/Advanced Usage/Sharing.md
(feature list, attribute reference, OpenGraph table) and Sharing/Custom share template.md
(template variables). Update them in the same commit, then run the writing-documentation
skill's docs.mjs sync and check from the repository root — a shell sitting inside
docs/User Guide makes the sync fail halfway on Windows and delete hundreds of files.
Obsidian Publish declares every site lang="en" (even its Chinese and Japanese help sites) and
has no language setting. Quartz takes lang from a site locale or a note's frontmatter and formats
dates with that locale. Trilium marks the page with the display language and the content with the
note's content language separately, so the theme's own texts are not mislabeled.
© TriliumNext, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/developing-share-pages of TriliumNext/Trilium.
Open the folder on GitHubat commit 80be026
Developing Share Pages next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Developing Share Pages this skillTriliumNext/Trilium | 38k | — | ~3.4k | Automated safety check: Pass | AGPL-3.0 | |
| Logseq Review Workflow Evallogseq/logseq | 45k | — | ~1k | Automated safety check: Pass | AGPL-3.0 | |
| Baoyu URL To Markdownsdyckjq-lab/llm-wiki-skill | 2.5k | 2 repos | ~3.2k | Automated safety check: Pass | None | |
| Obsidian CLIAtmosphere/atmosphere | 3.8k | 13 repos | ~795 | Automated safety check: Pass | Apache-2.0 | |
| Esm Cjs Risk Scanlogseq/logseq | 45k | — | ~3.3k | Automated safety check: Pass | AGPL-3.0 | |
| Knowledge Searchdataelement/bisheng | 12k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 |
logseq/logseq
Compare two revisions of the Logseq logseq-review-workflow skill by running the same review prompt against isolated before and after skill snapshots, collecting both outputs, and producing a…
sdyckjq-lab/llm-wiki-skill
Fetch any URL and convert to markdown using Chrome CDP. An agent skill from sdyckjq-lab/llm-wiki-skill.
Atmosphere/atmosphere
Interact with Obsidian vaults using the Obsidian CLI to read, create, search, and manage notes, tasks, properties, and more.
logseq/logseq
Scan Logseq ClojureScript Node/Electron targets for npm module loading risks, especially ESM-only packages that may fail when loaded through js/require or shadow-cljs require-based shims.
dataelement/bisheng
Search the user's knowledge bases and knowledge spaces (企业知识库检索).
outline/outline
Save the current conversation, a decision, or a set of notes as a document in an Outline collection; use when the user wants to keep what was discussed in their knowledge base.
TriliumNext/Trilium
A skill your agent uses when cutting, preparing, or debugging a Trilium release — bumping the monorepo version, tagging, or diagnosing a failed "Release" workflow run.
TriliumNext/Trilium
A skill your agent uses when working on the Trilium Electron desktop app (apps/desktop) — adding or changing an electronApi method / IPC channel, touching preload.ts, main.ts, services/window.ts or…
TriliumNext/Trilium
A skill your agent uses when adding a DB migration or a new column/field to a Becca entity in Trilium ("add a migration", "new column on notes/attributes", "ALTER TABLE", "add a field to…
TriliumNext/Trilium
A skill your agent uses when adding, moving, or wiring an internal REST endpoint in Trilium (a new /api/ route) — choosing between a core-shared handler (packages/trilium-core/src/routes/index.ts…
TriliumNext/Trilium
A skill your agent uses when adding, changing, or reviewing an LLM/MCP tool in Trilium (the defineTools definitions under packages/trilium-core/src/services/llm/tools/ —…
TriliumNext/Trilium
Write, extend, and review CKEditor 5 plugins in the Trilium (TriliumNext Notes) monorepo — the rich-text-note editor under packages/ckeditor5, whose plugins live in src/plugins/.
Categories
A skill your agent uses when working on Trilium's share functionality — shared pages under /share/, the static HTML (share-theme) export, the share theme package (packages/share-theme: EJS…. Developing Share Pages is an agent skill from TriliumNext/Trilium.ts, shaca), the per-platform share providers, ~shareTemplate custom templates, ~shareHtml snippets, or any share label.
Developing Share Pages fits situations like: working on Triliums share functionality — shared pages under /share/; the static HTML (share-theme) export; the share theme package (packages/share-theme: EJS templates; browser scripts and CSS).
Run `npx skills add TriliumNext/Trilium --skill developing-share-pages -a claude-code`. Or copy the skill folder (.claude/skills/developing-share-pages in TriliumNext/Trilium) into .claude/skills/developing-share-pages in your project. Claude Code loads it when a task matches its description.
Run `npx skills add TriliumNext/Trilium --skill developing-share-pages -a codex`. Or copy the skill folder (.claude/skills/developing-share-pages in TriliumNext/Trilium) into .agents/skills/developing-share-pages in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add TriliumNext/Trilium --skill developing-share-pages -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/developing-share-pages, .gemini/skills/developing-share-pages, .github/skills/developing-share-pages and .opencode/skills/developing-share-pages in your project.
Going by SKILL.md and its folder, Developing Share Pages needs the command-line tools its instructions call (pnpm, npx and git). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npx and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Developing Share Pages is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.4k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Developing Share Pages: Logseq Review Workflow Eval (logseq/logseq, 45k stars), Baoyu URL To Markdown (sdyckjq-lab/llm-wiki-skill, 2.5k stars), Obsidian CLI (Atmosphere/atmosphere, 3.8k stars) and Esm Cjs Risk Scan (logseq/logseq, 45k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
TriliumNext (a GitHub organization) maintains it in TriliumNext/Trilium, which has 38,265 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 10, 2026.
Source: TriliumNext/Trilium on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.