Catalog PyPI
PACKAGE EXPLORERView in registry

aiobsidian

PyPI

Async Python client for Obsidian CLI and Local REST API

apiasynccliclientobsidian
Versions collected1
Direct dependencies2From release 0.4.0
Last observed21 Oct, 11:42 UTC

README

Version 0.4.0 documentation

aiobsidian

CI PyPI Python License Docs

Async Python client for Obsidian. CLI-first: works out of the box with the Obsidian CLI (v1.12+). Optional REST support via the Local REST API plugin.


Installation

pip install aiobsidian

For REST API support (requires httpx):

pip install aiobsidian[rest]

Quick start

CLI (primary)

import asyncio
from aiobsidian import ObsidianCLI

async def main():
    async with ObsidianCLI("MyVault") as cli:
        # Read a note
        content = await cli.vault.read("notes/hello.md")
        print(content)

        # Search the vault
        results = await cli.search.query("python")

        # List tags
        tags = await cli.tags.list()

        # Daily note
        await cli.daily.append("- [ ] New task")

asyncio.run(main())

REST (optional)

import asyncio
from aiobsidian import ObsidianClient

async def main():
    async with ObsidianClient("your-api-key") as client:
        status = await client.system.status()
        print(status.versions.obsidian)

        content = await client.vault.get("notes/hello.md")
        print(content)

asyncio.run(main())

Features

CLI resources

ResourceAccessDescription
vaultcli.vaultRead, create, append, prepend, move, rename, delete, list
dailycli.dailyDaily note operations
searchcli.searchFull-text search
propertiescli.propertiesYAML frontmatter properties
tagscli.tagsTag listing, lookup, rename
linkscli.linksOutgoing links, backlinks, unresolved, orphans
taskscli.tasksTask listing, creation, completion, toggle
commandscli.commandsList and execute Obsidian commands
templatescli.templatesList, read, insert templates
bookmarkscli.bookmarksList and add bookmarks
pluginscli.pluginsPlugin management
themescli.themesTheme management
snippetscli.snippetsCSS snippet management
synccli.syncObsidian Sync operations
publishcli.publishObsidian Publish operations
historycli.historyLocal file history
workspacescli.workspacesWorkspace management
hotkeyscli.hotkeysHotkey operations
outlinecli.outlineDocument outline (headings)
randomcli.randomRandom note
aliasescli.aliasesNote aliases
basescli.basesObsidian Bases / databases
systemcli.systemVersion, reload, restart, vaults
tabscli.tabsTab management, recents
webcli.webOpen URLs in web viewer
devcli.devDeveloper/debugging tools

REST resources

ResourceAccessDescription
vaultclient.vaultCRUD operations on any file
activeclient.activeOperations on the currently open file
periodicclient.periodicDaily, weekly, monthly, quarterly, yearly notes
commandsclient.commandsList and execute Obsidian commands
searchclient.searchSimple text search, Dataview DQL, JsonLogic
openclient.openOpen files in Obsidian UI
systemclient.systemServer status, OpenAPI spec

General

  • Full async/await support
  • Pydantic v2 models for type-safe responses
  • Custom exception hierarchy for both CLI and REST errors
  • Context manager lifecycle management
  • No external dependencies for CLI (only stdlib)

Documentation

Full documentation is available at kudato.github.io/aiobsidian.

Contributing

Contributions are welcome! Please see the Contributing Guide for details.

License

MIT

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.4.029 Mar 20262

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
kudato/aiobsidian

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 11:42 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:26b64a24a67c67715b8681800bf2b57c6580ff81b539a74f844dedfa2c4a28df