Cimu Print is an independently implemented Obsidian desktop printing plugin. The repository has its own source structure, Git history, package identity, styles, tests, and build configuration.
cimu-printobsidian-cimu-print.obsidian/plugins/cimu-printmain.jslp.The plugin does not use Electron webContents.print().
The CLI sends authenticated loopback requests to the running Obsidian plugin. This keeps Markdown rendering inside Obsidian, so internal links, embeds, Mermaid, MathJax, the active theme, and enabled snippets use the same rendering pipeline as the Print Center.
Reload Cimu Print after building or installing it, then run the deployed script:
node .obsidian/plugins/cimu-print/cimu-print.mjs status
node .obsidian/plugins/cimu-print/cimu-print.mjs printers
node .obsidian/plugins/cimu-print/cimu-print.mjs print "Notes/Example.md" \
--printer "Office_Printer" \
--duplex long-edge \
--scale 75 \
--style obsidian
Run from the vault root, set CIMU_PRINT_VAULT, or pass --vault /absolute/path/to/vault. Every command returns JSON.
Print options:
--duplex single: one-sided printing.--duplex long-edge: two-sided printing with long-edge binding.--duplex short-edge: two-sided printing with short-edge binding.--scale 25..200: actual PDF content scale used for the submitted print job. Preview zoom remains unchanged.--style obsidian: Obsidian MarkdownRenderer plus captured current Obsidian theme and relevant CSS.--style plain: Obsidian MarkdownRenderer plus Cimu Print's clean Markdown stylesheet.--copies 1..999 and --pages 1-4,7: optional copy count and generated-PDF page ranges.The plugin binds the service to 127.0.0.1 on a random port. It writes a mode-0600 endpoint file with a random bearer token in .obsidian/plugins/cimu-print/cimu-print-cli.json, serializes print requests, and removes the endpoint file when the plugin unloads. Obsidian and Cimu Print must be running. Direct CLI submission currently uses CUPS on macOS and Linux.
printOn its first load, Cimu Print performs a guarded one-time migration:
.obsidian/plugins/print/data.json when the new plugin has no settings;print:<command> to cimu-print:<command>;.obsidian/hotkeys.cimu-print-migration-backup.json before changing shortcuts;cimu-print:<command> shortcut when both IDs are present.The source plugin folder remains untouched by the migration.
.obsidian/plugins/cimu-print/.temp inside the current vault by default, or a custom directory selected by the user.npm install
npm test
npm run build
Deploy main.js, manifest.json, and styles.css to .obsidian/plugins/cimu-print.
Copyright (C) 2026 Cimu Lumi. Licensed under the GNU Affero General Public License v3.0 only (AGPL-3.0-only). Modified versions distributed to users, including versions offered as a network service, must provide the corresponding source code under the same license terms.