Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Join the community
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Epochgram

Andriy BabetsAndriy Babets461 downloads

A timemap of your mind.

Epochgram screenshot
  • Overview
  • Scorecard
  • Updates45
A Timemap of Your Mind


Epochgram screenshot


Pain. Your vault fills up with quick capture notes. A week later, you've lost the thread. A month later, you can't reconstruct the story — and you don't see the themes, the slow stretches, or the bursts of activity.

Solution. Epochgram turns your notes into a scalable timeline retrospective. Browse day by day to scan changes in order, spot bigger patterns across unsorted notes, and edit directly on the timeline — so you can focus on what really matters.

Epochgram Pro adds even more overview:

  • On-device AI summaries via Google Chrome.
  • Epochs: a zoomable time map, from daily detail to a year overview.
  • Find related notes through links, tags, titles, and semantic similarity.
  • Topic clustering and marked related groups.
  • Tracked content edits.
  • Recurring events.

Table of Contents

  • Get Started
  • Timeline
  • Filters
  • Search
  • Actions
  • Review State
  • Recurring (Pro)
  • Similarity (Pro)
  • AI Bridge (Pro)
  • Epochs (Pro)
  • Custom YAML
  • Settings & Data
  • FAQ
  • Disclosures

Get Started

Download

Install from Obsidian Community plugins

BRAT

  • Install BRAT community plugin in Obsidian.
  • Use Obsidian protocol to add Epochgram.
  • Or Obsidian Settings → BRAT → Add beta plugin https://github.com/2brn/Epochgram.

Manual install

  • Download the latest release files from GitHub releases.
  • Copy files into your vault plugin folder: .obsidian/plugins/epochgram.
  • Enable Epochgram in Obsidian Settings → Community plugins.

[!TIP] Click the Epochgram ribbon icon or run ⌘ Epochgram: Open timeline to show the timeline in the right panel.
To open it automatically on launch, enable ⛭ Open timeline on startup.

Cheatsheet

Shortcut Description
Click record Open the file
Click date Open the daily note
Ctrl/Cmd+Click record Open the file in a new tab
Right-Click or Long-Tap record or date Open the context menu
Right-Click or Long-Tap empty space Toggle Epochs view (Pro)
Double-Click empty space Scroll to Today
Double-Click date Create a new daily note
Wheel or Pan Scroll
Ctrl/Cmd+Wheel or Pinch Zoom
Alt/Option+Wheel/Up/Down or Two-Finger-Tap Jump to the next/previous similar record
Shift+Wheel Zoom around the current record
Alt/Option+Hover record Show the file preview
Drag-N-Drop record Change its date

Activating Pro

  • Follow the instructions on epochgram.com/pro to get your activation key by email.
  • Open the link in the email or paste the key into ⛭ License key to activate.
  • Epochgram may periodically connect to the cloud service to verify your license.

Timeline

Timeline scroll Timeline zoom

The timeline is a scrollable, zoomable surface that collects records from all files in the vault, excluding paths ignored in Obsidian settings. It detects dates and date ranges in different formats and renders one record per file per day, in the following priority order:

Source Description
Tracked changes Per-block edit history excluding YAML. Requires ⛭ Track changes (Pro).
Content dates Parsed content date (ranges), including Recurring dates (Pro).
-- Anchors --
Filename dates Parsed filename date.
Frontmatter dates YAML date property (configurable via ⛭ Date property name).
Created dates File creation time.

[!TIP] Enable ⛭ Parse dates in properties to extract dates from YAML frontmatter. The date property is always parsed.

Each file has one anchor record that represents its canonical date. All other record types are optional. Drag and drop works only for anchor records, it updates the YAML date property, and the filename for daily notes.

Create note Drag-n-drop

# EXAMPLE OF SOURCES
# FROM FILE PROPS:

`my_note.md`			 ⚓︎ cdate
`daily-01.01.2026.md`	 ⚓︎ filename

# FROM CONTENT:

---
date: 2026-02-02		 ⚓︎ frontmatter
---
May 1, 2026 diary		 🗓 parsed content
Added new line...		 ✐ tracked change

Each record appears as file ⸱ summary. You can control the length of each part using ⛭ Filename length and ⛭ Summary length. The summary is either the first N words extracted from Markdown or an AI-generated summary when ⛭ Auto summarize is enabled (Pro). You can also set a manual summary using the YAML property ⛭ Description property name or via context menu Summary…; manual summaries are always preferred over AI-generated ones.

Timeline draws today as , weekdays as and weekends as . Entries are shown stacked or side by side when space allows, long entries are truncated with …. If space runs out, the day collapses to a few records and shows the rest as (+n). When zoomed out, records collapse into placeholder bars , with height based on record count.

[!TIP] A top label shows the current date, and a vertical red line marks the distance from Today — at the default zoom, each day of redshift represents one month.

Filters

Filters

There are collapsible filters under the button.

Filter Description
Show drafts only.
Show tracked changes (Pro).
Show content dates, ranges, and recurring.
Show non-text files.
Toggle Epochs view (Pro).

Search

Search

A search bar at the bottom lets you search timeline records and shows the number of matches. Click it or run ⌘ Epochgram: Search timeline. Search covers file names, content, AI summaries, Epochs, with support for fuzzy search.

Search shortcut Description
Enter Open the matched file.
Ctrl/Cmd+Enter Open the matched file in a new tab.
Alt/Option+Enter Filter timeline records by the current query.
$marked Show only marked records.
$hidden Show only hidden records.
$similar Show only similar records to currently opened file.
"exact" Find exact string.

Actions

Actions

Files in the vault are never modified unless you run an explicit file action. All attributes except the date and manual summary are stored in Epochgram data files, not in vault files.

Record menu Description
Summary… Update the file manual summary.
Topic Open the topics assignment popup; to remove topics, clear the input (Pro).
Pin Pin the file at the Today position; or ⌘ Epochgram: Toggle pin for current file.
Mark Mark similar records with a color; or ⌘ Epochgram: Toggle mark for current file.
Draft
Review
Hide
Change the file review state.
Rename… Rename the file in the vault.
Move to… Move the file to another folder.
Delete Permanently delete the file, or move it to trash, depending on Obsidian settings.

[!TIP] ⌘ Epochgram: Clear tracked changes for current file → clear all file history at once.

Date menu Description
Create daily note Uses ⛭ Daily notes core plugin settings for that date: date format, location, and template. Also available by Double-click.

Review State

Epochgram is designed around the C.O.D.E. process (Capture → Organize → Distill → Express). New or indexed files appear as Draft. After organizing the file and extracting the key points, the record can be set as Reviewed. If the file changes later, the record returns to Draft, indicating it may need review again.

Not every record deserves space on the timeline. Some, such as minor tracked changes, can be set Hidden. Hidden records disappear from the timeline by default. Use !hidden in search to show only hidden records — they are rendered muted.

[!TIP] ⌘ Epochgram: Review all → set all records across the vault as reviewed.
⌘ Epochgram: Toggle visibility for current file → hide or show all records from the current file.

Recurring (Pro)

Recurring

You can create recurring records, which will appear on the timeline. To add one, set the repeat or recur property in YAML. Supported formats (see RRULE):

---
repeat: every day
repeat: every N days
repeat: every week on mon,tue
repeat: every N weeks on mon,tue
repeat: every month on D
repeat: every month on -D # D days from end of month; -1 = last day
repeat: every year on MM-DD
repeat: FREQ=DAILY;COUNT=5 # RRULE
---

Similarity (Pro)

Semantics Topics

Similarity helps find related records. When you open a note, similar records on the timeline are marked using the current theme color. Epochgram includes multiple similarity settings that work across all platforms, including iOS and Android:

Settings Description
⛭ Links Treat notes as related through inbound and outbound links.
⛭ Tags Treat notes as related when they share tags.
⛭ Title threshold Use Jaro–Winkler matching to group notes with similar names or paths. Higher values match more; 0 disables it.
⛭ Semantic threshold Use an embedding default model to find notes with similar meaning across the vault. Useful for notes that describe the same idea in different words.
⛭ Topic threshold Use a zero-shot default model for similarity grouping. When you assign a topic to a note, Epochgram finds related records across the vault. Useful for broad themes like travel, projects, health, or photography, where notes may share meaning without direct links or tags.

[!TIP] Use ⛭ to open the model picker, or to browse Hugging Face models.
Use only trusted models; third-party models, downloads, and licenses are your responsibility.

Building semantic vectors and running topic classification can take a long time on slower machines. Long-running jobs show their progress in the status bar — hover over the progress item to see all jobs, or click it to cancel.

Similarity also groups related records automatically: when you mark one record, related records inherit the same color. These records behave as one group, so changing or removing the color updates the whole group, and inherited marks are recalculated automatically if the relation later disappears.

In addition to the standard red-to-violet palette, an extended palette is available in the submenu. This makes it easy to choose colors by activity. For example, I use glacier for ski trip reports.

Scroll to similar

[!TIP] Alt/Option+Wheel/Up/Down or Two-Finger-Tap → move through related records.
⌘ Epochgram: Toggle mark for current file → assign the next unique color from the palette.

AI Bridge (Pro, desktop-only)

Epochs

Epochgram Pro includes an AI Bridge that uses Google Chrome's on-device AI APIs for local summarization. When started, it runs a small local server on an available port at http://127.0.0.1. The bridge page can be opened from ⌘ Epochgram: Open AI bridge, from the ⌀ AI status bar button (button absent = server not started, button red = client disconnected), or automatically on startup if ⛭ Open AI Bridge on startup is enabled. This page processes summary jobs in Chrome and returns the results to the plugin. All summarization data stays only on your device and is not sent to external services.

On first use, Chrome may need a user gesture to download the built-in Gemini Nano model, and the drive with your Chrome profile should have at least 22 GB of free space. The bridge page also serves as a control panel, showing connection and model status, queue progress, the current text preview, the latest result, and a chart with progress in gray and processing speed in blue. Keep it open while summaries are running. You can also adjust API settings and prompt/context texts in the YAML settings editor. For larger notes, Epochgram can split input into chunks, summarize them separately, then merge the results.

sharedContext: | # Shared instructions across all summarization jobs
  Ignore dates and empty content.
  Group by topics, compress, remove duplicates and metaphrases.
  Order by frequency.

format: plain-text # Output format: markdown | plain-text
preference: capability # Model preference: auto | speed | capability
expectedInputLanguages: [en] # Accepted input languages: en | es | ja
outputLanguage: en # Output language: en | ja | es
expectedContextLanguages: [en] # Accepted context languages: en | ja | es
maxRelatedChars: 300 # Related-context size limit

reduce:
  context: | # Recursive reduction instructions
    Recursive summary reduction.
    Preserve dominant topics and recurring entities.

  type: tldr # Reduction summary type: key-points | tldr | teaser | headline
  length: long # Summary length: short | medium | long
  maxChunkChars: 3000 # Split threshold before recursive reduction
  maxDepth: 3 # Maximum recursive reduction depth

records:
  context: | # Per-record summarization instructions
    File:
    {{filePath}}
    
    Preserve facts, entities, terminology, and concrete topics.
    Remove repetition, filler, boilerplate, and metaphrases.

  type: tldr # Summary type: key-points | tldr | teaser | headline
  length: short # Summary length: short | medium | long

  maxInputChars: 3000 # Max source chars per record
  maxOutputWords: 30 # Max generated words (optional)

epochs:
  - period: day-2weeks # Supported  periods/ranges: day | 2days | 4days | week | 2weeks | month | 3months | 6months | year | day-year
    context: | # Epoch summarization instructions
      Short-term activity summary.
      Recent events, actions, tasks, places, people, projects.
      Output max 12 words, nouns only.

    type: tldr # Summary type: key-points | tldr | teaser | headline
    length: short # Summary length: short | medium | long
    maxFileChars: 300 # Max chars taken per file
    maxOutputWords: 30 # Max generated words (optional)

  - period: month-year
    context: |
      Broad period summary.
      Long-term themes, domains, projects, interests, recurring topics.
      Output max 12 words, nouns only.

    type: tldr
    length: medium 
    maxFileChars: 300 
    maxOutputWords: 30

[!TIP] Chrome's built-in Gemini Nano currently officially supports English, Spanish, and Japanese for input and output text. You can still try forcing another output language in the prompt context; for example, I used this context for Ukrainian: OUTPUT ONLY IN UKRAINIAN!.

AI Summaries & Epochs (Pro, desktop-only)

⛭ Auto summarize → when enabled, Epochgram automatically summarizes timeline records through the AI Bridge whenever the file changes. It does not modify the file content.

⛭ Generate Epochs → when enabled, Epochgram creates a zoomable time map that groups many days into larger period summaries, helping you see the bigger picture without reading the timeline day by day. Epochs are generated hierarchically from day up to year, in essence, summaries of summaries. If marked records are present, Epochs are colored by the most common mark color in that range. You can regenerate a specific Epoch from the context menu.

[!TIP] ⌘ Epochgram: Summarize current file → generate AI summaries for all timeline records from the current file.
⌘ Epochgram: Summarize missing → generate all missing AI summaries and Epochs across the entire vault.

Custom YAML

Epochgram supports the following custom YAML properties:

---
date: 2026-01-01 # override the anchor date
description: my summary # override the summary
noindex: # exclude this file from all indexing
notracked: # don't track changes for this file
noparsed: # don't parse dates from this file's content
nosimilar: # don't match this file by similarity
similar: [links, tags, title, semantics, topics] # match similarity only by these relations
repeat: every day # create recurring records
recur: every day # same as repeat
---

Settings & Data

Settings

Plugin data is mostly stored in the vault config directory, usually .obsidian/.

File Description
epochgram-index.json Timeline/index data.
epochgram-search.json Search cache.
epochgram-summaries.json AI summaries and Epochs.
epochgram-semantics.json Embeddings store.
epochgram-topics.json Topic similarity store.
plugins/epochgram/data.json Settings and view state.

If Obsidian Sync is enabled, this data should synchronize between devices as long as ⛭ Sync → Vault configuration sync → Other file types is turned on. License data is stored separately in localStorage and is not synced through the vault config.

[!TIP] Double-Click a setting name/description → reset it to default.

Epochgram also provides Rebuild and Reset popups for rebuilding or clearing stored data:

  • ⛭ Rebuild
    • ⛭ All → rebuild all data.
    • ⛭ Index → rebuild the index; useful if something is broken or after an update.
    • ⛭ Search → rebuild the MiniSearch cache.
    • ⛭ Semantics → rebuild embedding vectors.
    • ⛭ Topics → reclassify topics.
    • ⛭ AI summaries → queue all files for AI summary generation.
    • ⛭ Epochs → queue all Epochs for regeneration.
  • ⛭ Reset
    • ⛭ All → reset all data and settings to defaults, keep license data, then rerun indexing.
    • ⛭ Settings → reset all settings to defaults.
    • ⛭ Data files → clear data files and schedule regeneration.
    • ⛭ Search → clear the search cache.
    • ⛭ Pinned → unpin all items.
    • ⛭ Marks → remove all marks.
    • ⛭ Reviews → set all records to draft.
    • ⛭ Semantics → remove all embedding vectors.
    • ⛭ Topics → remove all topics and classification data.
    • ⛭ Tracked changes → remove all tracked changes.
    • ⛭ AI summaries → remove all AI summaries and use default "first N words".
    • ⛭ Epochs → remove all Epochs.

[!TIP] ⛭ Version X.X.X shows the current version, build timestamp, and a link to the CHANGELOG.

FAQ

How do I get support?
Check the docs first. If you still cannot find what you need, feel free to open an issue on GitHub. You can also join the Reddit community for discussions, feedback, and updates. If you have any other questions, just contact me at [email protected].

What should I do if Epochgram feels slow?
On huge vaults or slower machines, performance may degrade. Try setting ⛭ Semantic threshold and ⛭ Topic threshold to 0, disable ⛭ Auto summarize and ⛭ Generate Epochs. You can also uncheck ⛭ Enable animation or reset plugin data.

What should I do if some records are missing?
Try rebuilding the index or reload Obsidian.

Disclosures

  • Epochgram Pro:
    • Requires an payment and internet access for license validation; your email address, license key, and basic server-side telemetry may be processed (see TERMS).
    • Is not affiliated with Obsidian Sync, Publish, or other Obsidian paid services.
    • AI Bridge: Epochgram starts a local server on http://127.0.0.1 and opens a local bridge page in Google Chrome to use Chrome's on-device Summarizer API. The bridge communication stays on your device. Chrome may download its built-in model(s) (Gemini Nano) the first time you use these APIs.
    • Similarity: embeddings/topic models and runtime files may be downloaded on first use via @huggingface/transformers (for example from Hugging Face) and ONNX Runtime Web WASM from jsDelivr.
    • Similarity WASM modules used by this plugin:
      • ort-wasm.wasm
      • ort-wasm-simd.wasm
      • ort-wasm-threaded.wasm
      • ort-wasm-simd-threaded.wasm
      • ort-wasm-simd-threaded.asyncify.wasm
      • ort-wasm-simd-threaded.jsep.wasm
    • Source and purpose: these modules are provided by the onnxruntime-web package and are used only for local ONNX inference for similarity embeddings/topic classification.
  • All vault data is processed locally on your device and is NEVER sent over the internet.
  • License: MIT (see LICENSE).
HealthExcellent
ReviewNot scanned
About
Epochgram turns your Obsidian vault into an interactive timemap. It automatically indexes dates from filenames, note content, and metadata, allowing you to explore your vault as a navigable timeline without manual maintenance or complex YAML setups. Designed as a fast daily tool for desktop and mobile, Epochgram lets you zoom from daily detail to year overviews, scroll through activity periods, and spot spikes or stagnation phases. - Interactive timeline built from existing vault data - Dense mode to literally see a timemap of your vault - Create, rename, move, and delete records directly on timeline - Fuzzy search and filtering - Summaries from markdown structure or via local AI - Match similars by links, tags, titles, semantics, and topics - Note change history and recurring records - Personal Epochs, from days to years The goal of Epochgram is not just visualization, but turning your vault into a live timemap that can be explored, edited, and analyzed directly on the timeline.
DatesVisualizationAI
Details
Payments
Optional
Current version
1.4.3
Last updated
1 hour ago
Created
2 months ago
Updates
45 releases
Downloads
461
Compatible with
Obsidian 1.12.4+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Payments
- Track record changes - Recurring records - Similarity by links, tags, titles, semantics, and topics - Local AI Google Chrome bridge - Generating Epochs
Author
Andriy BabetsAndriy Babets2brn
www.epochgram.com
GitHub2brn
  1. Community
  2. Plugins
  3. Dates
  4. Epochgram

Related plugins

Markwhen

Create timelines, gantt charts, calendars, and more using markwhen.

April's Automatic Timelines

Simple timeline generator for story tellers.

InfraNodus AI Graph View

Interactive 3D graph view: text analysis, topic modeling, gap detection, and AI.

Advanced Canvas

Supercharge your canvas experience. Create presentations, flowcharts and more.

Copilot

Your AI Copilot: Chat with Your Second Brain, Learn Faster, Work Smarter.

Day Planner

Day planning from a task list in a Markdown note with enhanced time block functionality.

Smart Connections

AI link discovery copilot. See related notes as you write. Lookup using semantic (vector) search across your vault. Zero-setup local model for embeddings, no API keys, private.

Claudian

Embeds Claude Code/Codex as an AI collaborator in your vault. Your vault becomes agent's working directory, giving it full agentic capabilities: file read/write, search, bash commands, and multi-step workflows.

Maps

Adds a map layout to bases so you can display notes as an interactive map view.

Tasks

Track tasks across your vault. Supports due dates, recurring tasks, done dates, sub-set of checklist items, and filtering.