Person/codekiln/GitHub/logseq-gardener
Properties
- logseq-entity
- Logseq/Entity/Software/Project
- alias
- lsg
- tags
- CLI/Tool
logseq-gardener
- GitHub/Star: 0 (checked 2026-11-01 Sun).
- Written in Rust.
- License: AGPLv3.
About
logseq-gardeneris a command-line tool, calledlsg, for people and coding agents to manage Logseq/OG knowledge gardens from the terminal and Neovim. Version 0.0.1 shipped on 2026-10-31 Sat.lsg lookup NAME --graph PATH --filename-format triple-lowbarprints the file of the page named by its title, an alias or a journal date.lsg publishgenerates selected local HTML pages, andlsg helpdocuments every command.
Install
- mise installs the latest release on every machine that My/Dotfiles sets up, through the line
"github:codekiln/logseq-gardener" = "latest"in the global mise config (dotfiles#183 Install Logseq Gardener (lsg) globally with mise). - A project that uses lsg writes the same line under
[tools]in itsmise.toml, and mise runs the globally installed version there. This garden'smise.tomldoes so.
- mise installs the latest release on every machine that My/Dotfiles sets up, through the line
Project proposal
- Person/codekiln/GitHub/logseq-gardener/Project/Proposal — purpose, use cases, technical design, and starting tasks for
lsg.
- Person/codekiln/GitHub/logseq-gardener/Project/Proposal — purpose, use cases, technical design, and starting tasks for
Earlier drafts
- Person/codekiln/GitHub/logseq-gardener/Project/Goals
- Person/codekiln/GitHub/logseq-gardener/Project/Brief
- Person/codekiln/GitHub/logseq-gardener/Project/Proposal/Astra - a CLI-first proposal with a per-checkout cache, Logseq compatibility tests, staged graph diffs, Markdown export before mutations, and a Git merge driver before shared editing.
- Person/codekiln/GitHub/logseq-gardener/Project/Proposal/Fable - one engine behind an agent command line, a Neovim language server, a graph diff that git and hooks run, a Markdown export for a standard site generator, and a block-aware merge driver.
Analysis
- Earlier proposal comparison
2026-09-12 Sat 0658 and responses
- Person/codekiln/GitHub/logseq-gardener/Analysis/Fable/26/09/12/0658 ET Measure the corpus before designing the cache - the local gardens are far smaller than the Brief's million lines, so time a cold parse before building cache machinery.
- Person/codekiln/GitHub/logseq-gardener/Analysis/Fable/26/09/12/0658 ET Pick the parser first and let the language follow - every faithful Logseq parser is AGPL-3.0, and Tine and lsdoc already cover much of garden-core; run lsdoc's differential check on this garden and decide from that.
- Person/codekiln/GitHub/logseq-gardener/Analysis/Fable/26/09/12/0658 ET Ship the agent CLI first and let the LSP inherit the index - agents in this repository grep for pages every session; a few commands replace that and exercise the index daily.
- Person/codekiln/GitHub/logseq-gardener/Analysis/Fable/26/09/12/0658 ET Publish by exporting plain Markdown to a standard site generator - resolve Logseq semantics in garden-core, render with Quartz or similar, and try Tine's export first.
- Person/codekiln/GitHub/logseq-gardener/Analysis/Fable/26/09/12/0658 ET A Logseq-aware git merge driver before a CRDT - the concurrency that exists is a merge problem; a merge driver solves it and settles block identity first.
- Person/codekiln/GitHub/logseq-gardener/Analysis/Fable/26/09/12/0658 ET One tool carries four names and two of them collide -
gardenis garden.io's binary andlogseq-gardeneris an existing Nx repository; pick one tested name. - Person/codekiln/GitHub/logseq-gardener/Analysis/Fable/26/09/12/0658 ET Smaller fixes to the Brief and Goals pages - XDG cache path, git-style graph discovery, fixtures that already exist, the overlapping pages, and wording.
2026-09-12 Sat 0733 ET Codex
- Person/codekiln/GitHub/logseq-gardener/Analysis/Codex/26/09/12/0733 ET Resolve pages through evidence from the whole graph - page existence, file existence, and unambiguous resolution need separate answers; the current link checker already demonstrates the gap.
- Person/codekiln/GitHub/logseq-gardener/Analysis/Codex/26/09/12/0733 ET Keep editor buffers and worktrees separate in the shared cache - unsaved text and separate checkouts need distinct graph views even when they reuse parsed content.
- Person/codekiln/GitHub/logseq-gardener/Analysis/Codex/26/09/12/0733 ET Test graph meaning and preserve the original source text - matching a syntax parser leaves graph construction untested; minimal future edits also require source preservation.
- Person/codekiln/GitHub/logseq-gardener/Analysis/Codex/26/09/12/0733 ET Benchmark repeated commands and edits to widely linked pages - measure repeated CLI calls and how soon links elsewhere in the garden reflect an edited page.
- Person/codekiln/GitHub/logseq-gardener/Analysis/Codex/26/09/12/0733 ET Specify which Logseq features the publisher supports - specify how the exporter handles links, embeds, and queries, and which published pages need rebuilding after an edit.
- Person/codekiln/GitHub/logseq-gardener/Analysis/Codex/26/09/12/0733 ET Build a command that shows what an edit affects - a person or coding agent runs
garden impactto find links and block relationships affected by saved edits before committing.
2026-09-12 Sat 0933 ET Fable responses to Codex
- Person/codekiln/GitHub/logseq-gardener/Analysis/Fable/26/09/12/0933 ET Answer page existence with a typed result and an exit code - agrees that a page exists through graph-wide evidence, and makes the answer a sum type with an exit code a shell condition can test.
- Person/codekiln/GitHub/logseq-gardener/Analysis/Fable/26/09/12/0933 ET Give each checkout its own cache and share parsed text later - keeps Codex's overlay of unsaved editor buffers, and gives each worktree its own cache until a measurement asks for sharing.
- Person/codekiln/GitHub/logseq-gardener/Analysis/Fable/26/09/12/0933 ET Use Logseq's own graph-parser as the oracle and require a byte-identical round trip - nbb-logseq can dump Logseq's own graph as the golden fixture, and Tine's
tine-checkalready tests byte-faithful serialization. - Person/codekiln/GitHub/logseq-gardener/Analysis/Fable/26/09/12/0933 ET Agents calling the CLI justify a persistent cache on a small garden - concedes the persistent cache to Codex because agents run the CLI as fresh processes, and says what frontier performance means as benchmark rows.
- Person/codekiln/GitHub/logseq-gardener/Analysis/Fable/26/09/12/0933 ET Expand embeds before evaluating queries in the publisher - the encode garden uses embeds and block references in hundreds of files and queries in three, so the publisher expands embeds first and leaves queries for later.
- Person/codekiln/GitHub/logseq-gardener/Analysis/Fable/26/09/12/0933 ET Call the impact command garden diff and run it where the link checker runs - takes Codex's impact command, names it
garden diff, registers it as git's external diff driver, and takes fixtures from this repository's alias-removal commits. - Person/codekiln/GitHub/logseq-gardener/Analysis/Fable/26/09/12/0933 ET Where my plan agrees with Astra's proposal and where it departs - what the Fable proposal takes from Astra's proposal unchanged, and where it would decide differently.
105 Linked References
Hierarchy
- PersoncodekilnGitHublogseq-gardenerAnalysisCodex2609120733 ET Benchmark repeated commands and edits to widely linked pages
- PersoncodekilnGitHublogseq-gardenerAnalysisCodex2609120733 ET Build a command that shows what an edit affects
- PersoncodekilnGitHublogseq-gardenerAnalysisCodex2609120733 ET Keep editor buffers and worktrees separate in the shared cache
- PersoncodekilnGitHublogseq-gardenerAnalysisCodex2609120733 ET Resolve pages through evidence from the whole graph
- PersoncodekilnGitHublogseq-gardenerAnalysisCodex2609120733 ET Specify which Logseq features the publisher supports
- PersoncodekilnGitHublogseq-gardenerAnalysisCodex2609120733 ET Test graph meaning and preserve the original source text
- PersoncodekilnGitHublogseq-gardenerAnalysisFable2609120658 ET A Logseq-aware git merge driver before a CRDT
- PersoncodekilnGitHublogseq-gardenerAnalysisFable2609120658 ET Measure the corpus before designing the cache
- PersoncodekilnGitHublogseq-gardenerAnalysisFable2609120658 ET One tool carries four names and two of them collide
- PersoncodekilnGitHublogseq-gardenerAnalysisFable2609120658 ET Pick the parser first and let the language follow
- PersoncodekilnGitHublogseq-gardenerAnalysisFable2609120658 ET Publish by exporting plain Markdown to a standard site generator
- PersoncodekilnGitHublogseq-gardenerAnalysisFable2609120658 ET Ship the agent CLI first and let the LSP inherit the index
- PersoncodekilnGitHublogseq-gardenerAnalysisFable2609120658 ET Smaller fixes to the Brief and Goals pages
- PersoncodekilnGitHublogseq-gardenerAnalysisFable2609120933 ET Agents calling the CLI justify a persistent cache on a small garden
- PersoncodekilnGitHublogseq-gardenerAnalysisFable2609120933 ET Answer page existence with a typed result and an exit code
- PersoncodekilnGitHublogseq-gardenerAnalysisFable2609120933 ET Call the impact command garden diff and run it where the link checker runs
- PersoncodekilnGitHublogseq-gardenerAnalysisFable2609120933 ET Expand embeds before evaluating queries in the publisher
- PersoncodekilnGitHublogseq-gardenerAnalysisFable2609120933 ET Give each checkout its own cache and share parsed text later
- PersoncodekilnGitHublogseq-gardenerAnalysisFable2609120933 ET Use Logseq's own graph-parser as the oracle and require a byte-identical round trip
- PersoncodekilnGitHublogseq-gardenerAnalysisFable2609120933 ET Where my plan agrees with Astra's proposal and where it departs
- PersoncodekilnGitHublogseq-gardenerProjectBrief
- PersoncodekilnGitHublogseq-gardenerProjectGoals
- PersoncodekilnGitHublogseq-gardenerProjectProposal
- PersoncodekilnGitHublogseq-gardenerProjectProposalAstra
- PersoncodekilnGitHublogseq-gardenerProjectProposalFable
- PersoncodekilnGitHublogseq-gardenerProjectResearch2609relevant repo precedents