Nix flake packaging Logseq Desktop (nightly) and Logseq CLI (DB graph management / MCP server) from upstream master.
Warning
Linux x86_64 only. Open an issue to request other platforms.
| Package | Binary | Description |
|---|---|---|
logseq |
logseq |
Desktop app with FHS wrapper |
logseq-cli |
logseq-cli |
CLI for DB graphs: query, export, MCP server |
default |
both | Desktop app + CLI combined |
nix run --accept-flake-config github:Bad3r/nix-logseq-git-flake#logseq
nix run --accept-flake-config github:Bad3r/nix-logseq-git-flake#logseq-cli -- --helpThis flake publishes binaries to Cachix and exposes the cache in flake.nix via:
nixConfig.extra-substituters = [ "https://nix-logseq-git-flake.cachix.org" ]nixConfig.extra-trusted-public-keys = [ "nix-logseq-git-flake.cachix.org-1:DSBNW07PSRyCvS926tpIWahb53OIydwwZhsP6LhJNZo=" ]
Passing --accept-flake-config in commands above enables these settings from the flake.
{
inputs.logseq-nightly.url = "github:Bad3r/nix-logseq-git-flake";
# optional: share nixpkgs
inputs.logseq-nightly.inputs.nixpkgs.follows = "nixpkgs";
# optional but recommended: pin cache settings in your own flake too
nixConfig = {
extra-substituters = [ "https://nix-logseq-git-flake.cachix.org" ];
extra-trusted-public-keys = [
"nix-logseq-git-flake.cachix.org-1:DSBNW07PSRyCvS926tpIWahb53OIydwwZhsP6LhJNZo="
];
};
# in your NixOS module:
environment.systemPackages = [
inputs.logseq-nightly.packages.${pkgs.system}.logseq
inputs.logseq-nightly.packages.${pkgs.system}.logseq-cli
];
}{
nixpkgs.overlays = [ inputs.logseq-nightly.overlays.default ];
environment.systemPackages = [
pkgs.logseq-nightly.logseq
pkgs.logseq-nightly.logseq-cli
];
}| Command | Description |
|---|---|
logseq-cli list |
List local graphs |
logseq-cli show <graph> |
Graph info (schema version, creation date) |
logseq-cli search -g <graph> "<term>" |
Full-text search |
logseq-cli query -g <graph> '<datalog>' |
Datalog query |
logseq-cli export -g <graph> |
Export as Markdown |
logseq-cli export-edn -g <graph> |
Export as EDN |
logseq-cli import-edn -g <graph> -f <file> |
Import EDN into graph |
logseq-cli validate -g <graph> |
Validate graph integrity |
logseq-cli mcp-server -g <graph> |
Start MCP server |
# HTTP transport (default, port 12315)
logseq-cli mcp-server -g MyGraph
# Stdio transport (for Claude Desktop / Claude Code)
logseq-cli mcp-server -g MyGraph -sMCP tools provided: listPages, getPage, listTags, listProperties, searchBlocks, upsertNodes.
Add to claude_desktop_config.json:
{
"mcpServers": {
"logseq": {
"command": "logseq-cli",
"args": ["mcp-server", "-g", "MyGraph", "-s"]
}
}
}claude mcp add logseq -- logseq-cli mcp-server -g MyGraph -sNote
The first CLI run downloads ClojureScript dependencies (~30s). These are cached in $XDG_CACHE_HOME/logseq-cli/nbb/ for subsequent runs.
nix build .#logseq # desktop app
nix build .#logseq-cli # CLI tool
nix flake check # build checks + evaluate flake
nix fmt # format all Nix files (nixfmt)