API & protocol
The wire-level reference for the JSON-RPC protocol the plugin and daemon speak. Useful if you’re building something against the daemon (a non-Obsidian client, a load test, a port to a different host) or debugging an unexpected error in a normal session.
Stability promise: the protocol is frozen at version 1. Method additions are non-breaking; breaking changes ship as new methods. See Protocol evolution.
Pages
| Page | What it covers |
|---|---|
| Overview | The shape of every RPC: framing, versioning, capabilities, the auth handshake, and the method namespace |
| Authentication | The auth and server.info handshake methods + protocol-version check |
| Filesystem | fs.* methods: read / write / list / walk / stat / mkdir / remove / rename / thumbnail |
| fs.watch | The push-notification subscription model + inotify caveats |
| Errors | Standard JSON-RPC error codes + the project’s domain-specific code range |
| Protocol evolution | How the v1 contract evolves; what counts as a breaking change |
| Examples | Copy-pasteable JSON-RPC requests for every method, ready for nc -U against a Unix socket |
Reading order
If you’re new to the protocol:
- Overview for the big picture (framing + handshake + namespace).
- Authentication to understand what every connection does first.
- Filesystem for the methods you’ll actually call.
- Errors when something goes wrong.
- Examples for copy-paste recipes.
If you’re porting to a new client, also read Protocol evolution before relying on any specific method’s shape.
See also
- Architecture — the why behind the wire-level decisions
- Daemon CLI reference — flag set for the binary that speaks this protocol
- Security model — what the authentication actually defends against