Skip to main content

hindsight-daily

CI PyPI

Syncs Obsidian daily notes to Hindsight so they can be recalled by AI agents.

How it works

Walks a configured vault directory, finds notes named YYYY-MM-DD.md, parses them into structured sections, and submits new or changed notes to Hindsight via its API. Unchanged notes are skipped. Notes deleted from the vault are removed from Hindsight, as long as the local cache still records that they were synced — pass --reconcile-remote to diff against the server instead, which also catches notes deleted on another machine or while the cache was missing.

Change detection uses a content hash (not mtime) because Obsidian plugins frequently touch mtime without changing content.

Installation

uv tool install hindsight-daily

or with pip:

pip install hindsight-daily

Config

Config lives in ~/.config/hindsight-daily/config.yaml (XDG-compliant):

bank_id: your-bank-id       # required
api_key: your-api-key
api_url: https://your-hindsight-host   # required
daily_notes_path: /path/to/vault/journals   # required, must be an existing directory
verbose: false
retain_timeout: 1800        # optional, max seconds to wait for a note to be ingested
retain_poll_interval: 3     # optional, initial seconds between ingestion status checks

bank_id, api_url, and daily_notes_path are required and validated when a command starts; anything missing is reported as a plain error naming the config file.

Cache

Sync state lives in a local cache (~/Library/Caches/hindsight-daily on macOS, ~/.cache/hindsight-daily on Linux), which records the content hash last submitted for each date. It is keyed by date alone, so switching bank_id will not re-upload anything — every note still reports as unchanged. Delete the cache directory when pointing the tool at a different bank.

Notes are submitted asynchronously: the server queues the ingestion and sync polls it to completion before marking the note as synced. Large notes can take the server several minutes, so raise retain_timeout if a note reports that it is still being ingested.

Usage

hindsight-daily sync             # sync new and changed notes
hindsight-daily sync --limit 5   # sync at most 5 notes
hindsight-daily sync --date DATE # sync just one note (no deletion phase)
hindsight-daily sync --prune     # allow deletion even when the vault is empty
hindsight-daily sync --reconcile-remote  # find stale notes by asking the server
hindsight-daily forget DATE      # remove a note from server and cache
hindsight-daily status           # show pending/up-to-date counts
hindsight-daily -v status        # show individual note dates
hindsight-daily -v sync          # sync with debug logging

Content structure

Each section of a note is submitted as a separate Hindsight document (e.g. journal:2024-01-07_001, journal:2024-01-07_002). The journal: prefix namespaces documents to avoid collisions with other tools writing to the same bank. The shallowest top-level heading level present in the note becomes the section boundary; deeper headings are merged into their parent section as text blocks. Section content is sliced out of the original markdown rather than reassembled, so nested lists, ordered-list numbering, tables, HTML and other constructs are preserved as written. Blockquotes, unlabeled code blocks and indented code are wrapped in <quote> tags so Hindsight distinguishes external content from the user's own writing. Language-tagged code blocks use <code lang="...">. Wikilinks in section titles are extracted as scoped entity declarations so Hindsight correctly associates facts with the right entities.

Metadata

Release files for hindsight-daily 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hindsight-daily 0.3.0
File Size Uploaded
hindsight_daily-0.3.0.tar.gz 14.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hindsight-daily 0.3.0
File Interpreter ABI Platform
hindsight_daily-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 31.9 kB

Release files / hindsight_daily-0.3.0.tar.gz

Download URL hindsight_daily-0.3.0.tar.gz
Size 14.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a724db4ee9e59136a15d39f9a37a9b92d6ecabb5adc5da63d1f70bea6907d779
BLAKE2b-256 checksum
How to use checksums
e66f0a6884fa925c1638dbdc22ee37468901464bc7fa379d60e13fac90d89e6e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.

Transparency log

Release files / hindsight_daily-0.3.0-py3-none-any.whl

Download URL hindsight_daily-0.3.0-py3-none-any.whl
Size 17.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
57244e78beeb00870cd4814fa2389aa27880e420bd71019c8189623baf145038
BLAKE2b-256 checksum
How to use checksums
86cb046e619832a1e93fbd2975a391293884f85d2f794d7d78f1eb2d6a192a53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.

Transparency log

Release history Release notifications | RSS feed

0.4.0

2 release files

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page