Skip to main content

Convert AI chat exports (Claude, Grok, ChatGPT, Gemini) into an Obsidian-friendly Markdown vault.

Project description

obsivault

Convert your AI chat exports into a tidy Obsidian Markdown vault. One note per conversation, YAML frontmatter, attachments copied into a sibling folder, and an idempotent state file so re-running only touches what changed.

Supported sources (v0.1):

  • Claude (Settings -> Privacy -> Export). Reads conversations.json.
  • Grok (Settings -> Data controls -> Export). Reads prod-grok-backend.json.
  • ChatGPT (Settings -> Data controls -> Export). Reads the conversations.json tree.
  • Gemini via Google Takeout (My Activity -> Gemini Apps and Gemini in Workspace). Reads the Workspace transcripts and, optionally, NotebookLM.

Install

From PyPI:

pip install obsivault

Or with uv:

uv tool install obsivault

From source (for development):

uv sync

Usage

uv run obsivault providers
uv run obsivault convert ./data/claude  ./vault --provider claude
uv run obsivault convert ./data/grok    ./vault --provider grok
uv run obsivault convert ./data/google  ./vault --provider gemini

Useful flags:

  • --include-tools show tool calls as collapsible callouts
  • --include-thinking show Claude thinking blocks as collapsible callouts
  • --branches render alternate branches as > [!example]- callouts
  • --no-copy-attachments skip the attachment copy step
  • --dry-run plan-only, no writes
  • --force rewrite even when content hash is unchanged

Layout

vault/
  claude/2026-04/<slug>.md
  grok/2026-05/<slug>.md
  gemini/2026-03/<slug>.md
  _attachments/<provider>/<conv-id>/...
  .obsivault/state.json

Adding a provider

Drop a module under src/obsivault/providers/<name>.py with a class that implements Provider and is decorated with @register. The CLI auto-detects sources by calling each provider's discover().

Licence

AGPL-3.0-or-later. PRs welcome.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

obsivault-0.2.0.tar.gz (92.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

obsivault-0.2.0-py3-none-any.whl (40.5 kB view details)

Uploaded Python 3

File details

Details for the file obsivault-0.2.0.tar.gz.

File metadata

  • Download URL: obsivault-0.2.0.tar.gz
  • Upload date:
  • Size: 92.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for obsivault-0.2.0.tar.gz
Algorithm Hash digest
SHA256 9979381ae717aff83e8112bb5979ed366c03262f75b0c0bf5d2fa1e0106160e1
MD5 ce750a935b7a2c1351a79d69186837fc
BLAKE2b-256 2d7cbcabfb4d8aeebb43cf237b7b94ecf9376544f5b49fc22bebe3761d6c89e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for obsivault-0.2.0.tar.gz:

Publisher: publish.yml on andrijdavid/obsivault

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file obsivault-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: obsivault-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 40.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for obsivault-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 12166848916aa6d7d6fce83b8e1166c708d36026aec7dc2ae544b9cf55320caf
MD5 bc7c4c0f76c33f2d935c4b662c29604b
BLAKE2b-256 c01906015a85edb00141c4faab0e925e90490115920a3f543f7bc0ebc52a1453

See more details on using hashes here.

Provenance

The following attestation bundles were made for obsivault-0.2.0-py3-none-any.whl:

Publisher: publish.yml on andrijdavid/obsivault

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page