Obsidian Official CLI Headless
Treat the official Obsidian CLI as a desktop-first app adaptation problem, not a normal CLI install.
Core rules
- Use this skill only for the official Obsidian CLI.
- Assume headless Linux needs a dedicated non-root user,
Xvfb, and a wrapper command. - Prefer ACLs over ownership changes when the vault lives under
/root. - Prefer one target vault.
- Keep the user away from
su - obsidianand display details by exposing/usr/local/bin/obs.
Fast path
- Confirm the vault path. Default to
/root/obsidian-vaultonly if the user does not specify another path. - Run
scripts/install_official_obsidian.shas root. - Run
scripts/configure_official_cli.sh <vault_path>as root. - Run
scripts/verify_official_cli.sh [vault_path]. - Report the wrapper path, active vault, verified commands, and remaining caveats.
What this skill owns
- Official Obsidian
.debinstall - Headless runtime dependencies needed for field use
- Dedicated
obsidianuser - Official CLI enablement via
~/.config/obsidian/obsidian.json - Vault access via ACLs
/usr/local/bin/obswrapper- Verification of
help,vault,daily:path,daily:append,daily:read, andsearch
What not to do
- Do not use this skill for
notesmd-clior lightweight markdown-only workflows. - Do not expand into plugins, sync setup, theme tuning, or full desktop environment work unless the user explicitly asks.
- Do not broaden permissions more than needed.
Wrapper model
The wrapper should effectively run:
su - obsidian -c 'cd <vault> && xvfb-run -a /usr/bin/obsidian --disable-gpu ...'
That is the stable operating model on a headless host.
Verification commands
Use at minimum:
obs help
obs vault
obs daily:path
obs daily:append content="skill verification"
obs daily:read
obs search query="skill verification"
References
- Read
references/architecture.mdwhen you need the rationale for non-root user, Xvfb, ACLs, or wrapper design. - Read
references/troubleshooting.mdwhen the install works partially but CLI behavior still fails.
Report format
Keep the result short:
- installed version
- wrapper path
- active vault path
- verified commands
- remaining limits