The CLI console shim (the .com executable placed next to Obsidian.exe) silently fails (exit code 1, no output) when executing any colon subcommand (property:read, daily:append, base:query, etc.) that includes key=value parameters. The same colon subcommands work correctly when invoked without parameters, and non-colon commands work correctly with or without parameters.
Steps to reproduce
All commands run from the vault root directory with Obsidian app running.
1. Confirm CLI is functional
> obsidian vault
name MyVault
path C:\Users\<user>\...\MyVault
files 3921
2. Confirm non-colon commands with parameters work
> obsidian search query="test" limit=1
SomeNote.md
EXIT: 0
3. Confirm colon subcommands without parameters work
> obsidian daily:read
(full daily note content returned)
EXIT: 0
> obsidian plugins:enabled
(list of enabled plugins returned)
EXIT: 0
4. Demonstrate failure: colon subcommand + key=value parameter
> obsidian property:read name=type
(no output)
EXIT: 127
5. Demonstrate failure via direct full-path invocation
Calling the CLI shim by full path eliminates bash/MSYS resolution as a variable:
> "C:/Program Files/Obsidian/<shim>" property:read name=type
(no output)
EXIT: 1
> "C:/Program Files/Obsidian/<shim>" daily:append content="hello"
(no output)
EXIT: 1
> "C:/Program Files/Obsidian/<shim>" base:query path=00-System/Bases/concepts-all.base format=paths
(no output)
EXIT: 1
> "C:/Program Files/Obsidian/<shim>" template:read name=Area
(no output)
EXIT: 1
Did you follow the troubleshooting guide? [Y/N]
Expected result
Actual result
All these commands failed:
Affected Commands (all tested, all fail with key=value params)
| Command | Params tested |
|---|---|
property:read |
name=type |
property:set |
name=test value=hello |
property:remove |
name=test |
daily:append |
content="text" |
daily:prepend |
content="text" |
base:query |
path=<path> format=paths |
base:create |
name=test content="text" |
template:read |
name=Area |
template:insert |
name=Area |
history:read |
file=SKILL version=1 |
search:open |
query="test" |
workspace:save |
name=test |
workspace:load |
name=test |
plugin:enable |
id=word-count |
plugin:disable |
id=word-count |
theme:set |
name=Default |
snippet:enable |
name=test |
Two Layers of Failure
Layer 1: Git Bash MSYS2 resolution (exit 127)
When invoked as obsidian property:read name=type (no explicit path/extension), Git Bash returns exit 127 (“command not found”). This only occurs when both a colon subcommand and key=value parameters are present. The same obsidian binary resolves and executes correctly for all other argument combinations.
This appears to be an MSYS2 interop issue with .com executables under specific argument patterns.
Layer 2: CLI shim named-pipe relay (exit 1, silent)
When invoked by full explicit path, the binary runs but returns exit 1 with zero output on both stdout and stderr. The named-pipe communication between the CLI shim and the running Obsidian process silently drops the command.
This is the core bug — the CLI shim fails to relay colon subcommands that include key=value arguments to the Obsidian app process.
Pattern Summary
| Command type | Example | Exit code | Works? |
|---|---|---|---|
| Non-colon, no params | obsidian vault |
0 | Yes |
| Non-colon, with params | obsidian search query=test |
0 | Yes |
| Colon, no params | obsidian daily:read |
0 | Yes |
| Colon, with params | obsidian property:read name=type |
1 (or 127) | No |
Additional Context
- The CLI shim is a 6.6 KB PE64 console binary that communicates with the running Obsidian process via Windows named pipes (
\\.\pipe\pattern visible in binary strings, along withsession=andttytokens). - PowerShell produces the same result — invoking the shim with
property:read name=typereturns exit 1 with no output — so this is not specific to Git Bash. - Tested from both Git Bash and PowerShell with identical results.
Environment
Additional information
I am not a programmer this was debugged using claude code opus 4.6 Every other function of the CLI was tested by Claude and none had issues except those mentioned above.