Skip to content

My Journal 0.1.0

Choose a tag to compare

@Jadencreatescode Jadencreatescode released this 31 Jul 11:19

My Journal 0.1.0

My Journal is an evidence backed activity journal for Hermes Agent. It turns explicitly authorized Hermes session history into provenance bound daily Markdown notes, then lets Hermes answer journal questions from validated entries instead of guessing from raw chat history.

This is the first stable release. It supports Linux, macOS, and Ubuntu under WSL with Python 3.11, 3.12, or 3.13. Native Windows support is not claimed.

Watch first

Getting started and slash commands, 65 seconds

Product overview, 55 seconds

What it does

  1. Discovers available Hermes profiles and platforms without reading message bodies during inventory.
  2. Builds a bounded, read only collection plan for the exact activity dates you approve.
  3. Masks common personal information, redacts credentials, and replaces raw session identifiers with nonreversible references in public evidence.
  4. Produces deterministic evidence chunks and resumable digest receipts.
  5. Generates one canonical Markdown note per validated activity date.
  6. Lets Hermes answer conversational journal questions through 11 deterministic tools.
  7. Uses four restricted generation tools that exclude terminal, web, messaging, delegation, and unrelated plugins.
  8. Keeps your canonical journal under journal/notes/YYYY/MM/YYYY-MM-DD.md.

Install

Download these assets from this release:

  • my-journal-v0.1.0.tar.gz
  • SHA256SUMS

Verify the archive on Linux or Ubuntu under WSL:

sha256sum -c SHA256SUMS

Verify it on macOS:

shasum -a 256 -c SHA256SUMS

Extract it:

tar -xzf my-journal-v0.1.0.tar.gz

Enter the extracted directory:

cd my-journal-v0.1.0

Install into the Hermes home used by your agent:

python3 install.py --hermes-home ~/.hermes

Enable My Journal:

hermes plugins enable my-journal

Start a new Hermes process or restart the Hermes gateway, then verify:

hermes journal status
hermes journal resolve-range "last 7 days"

Guided first use

Inventory available sources without reading message bodies:

hermes journal setup-inventory

Create a proposed plan with your actual profile, platform, timezone, and privacy choices:

hermes journal setup-plan --profile default --platform discord --timezone America/Los_Angeles --pii-mode mask --entropy-mode report

Review the complete plan. It reports eligible activity dates, workload, exclusions, and the exact approval phrase. Approve only if the scope is correct:

hermes journal setup-approve PLAN_ID --confirm "EXACT GENERATED PHRASE"

Approved missing activity dates are processed oldest first. Completed and failed dates are reported separately. Daily scheduling is offered only after the approved backlog succeeds and is never enabled automatically.

Useful commands

hermes journal status
hermes journal gaps "last 90 days"
hermes journal preview "last 30 days"
hermes journal generate 2026-07-27
hermes journal backfill "last 30 days"
hermes journal cron-setup --schedule "0 11 * * *" --deliver local

Upgrade and recovery

Upgrade transactionally:

python3 install.py --hermes-home ~/.hermes --upgrade

Restore the previous installation snapshot:

python3 install.py --hermes-home ~/.hermes --restore

Recover an interrupted install, restore, or uninstall:

python3 install.py --hermes-home ~/.hermes --recover

Uninstall code while preserving journal data:

python3 install.py --hermes-home ~/.hermes --uninstall

Privacy boundary

Collection is disabled until explicitly enabled. Profiles and platforms use explicit allowlists. Secret redaction cannot be disabled. Model generation can send bounded evidence to the model provider configured in Hermes. Redaction reduces risk but cannot prove every sensitive value was removed. Review PRIVACY.md, SECURITY.md, and THREAT_MODEL.md before enabling collection.

Runtime journal data, evidence, digests, credentials, local configuration, caches, bytecode, databases, and user owned state are excluded from the public archive.

Stable release identity

  • Tag: v0.1.0
  • Reviewed release commit: 4804460c3514f33fba9630e108647eb9fde435e0
  • Merged main commit: db5890680533a90bea4913e4c27ce9efcd81fb5b
  • Archive: my-journal-v0.1.0.tar.gz
  • Archive SHA256: 5b2868db399961a68315fd50c74f47cf4352872793e2a52bedc656e6c26398fb
  • Archive members: 72
  • Expanded bytes: 752,217
  • Getting started video SHA256: 5a25a8bddd13f85cca6b023d9b6a8ba167fe9ca7a3afbb545534a12dd3349bbb
  • Product overview video SHA256: 43dedab545836eed1f6a315fd97852f83fea3c8312388a69c33fe847edf85fd5

The release also includes the sorted inventory and exact commit sidecar so the archive can be independently bound to the reviewed source.

Verification

  • 65 root release tests passed
  • 118 plugin tests passed
  • 93 skill tests passed
  • 276 total source tests passed
  • All 31 shipped Python files compiled from the extracted archive
  • Release privacy check passed for 55 packaged files
  • Two independent builds were byte identical
  • Exact archive and all sidecars verified
  • All six Ubuntu and macOS CI configurations passed on Python 3.11, 3.12, and 3.13
  • Stable archive installed under Ubuntu WSL
  • All 30 preexisting journal filesystem objects retained identical path identity, inode, mode, size, symlink target, and SHA256
  • Direct CLI checks and model driven journal questions passed using the installed plugin