benjaminezequiel21k downloadsTurns out watching your word count go up is all the motivation you need.
Keep the Rhythm is an Obsidian plugin that helps you maintain a consistent writing habit by tracking your daily word count, setting writing goals and visualizing data through a heatmap and customizable code blocks.
Writing Stats: Automatically tracks how many words/characters you write each day in Obsidian
Goals & Streaks: Set daily writing goals and track your streak of consecutive days meeting your target
Heatmap: View your writing activity over time (helps with consistency and motivation)
Custom Slots: Various writing statistics (written today, this week, avg. this year, etc.)
Entries by Day: Easily check and navigate to files you have worked on today
Embedded Components: Insert heatmaps, slots, and entries widgets into any note using custom code blocks
Advanced Filtering: Filter your writing statistics with the query syntax for specific folders or file patterns
Multi-device Sync: Syncs and merges statistics across different devices
Install through the Community Plugins section in Obsidian's settings
Download the latest release files from this repository's Releases section Create a folder at /.obsidian/plugins/ named keep-the-rhythm Reload Obsidian Go to Settings > Community Plugins and enable "Keep the Rhythm"
Once installed and enabled, Keep the Rhythm will automatically begin tracking your writing activity. To view your statistics:
Open sidebar viewSet and track your daily writing goals:
You can force the plugin to check previous dates when you change your writing goal by using the command
Check streak
Customize your heatmap appearance with various options:
gradual: Smooth gradient between colorssolid: Single color intensitystops: Discrete color levels with thresholdsliquid: Color fills cells from bottom upDisplay various writing statistics using customizable slots:
Keep the Rhythm provides three types of embeddable code blocks.
A block can be created by using the code block syntax (3 backticks on start and end) and a keyword to specify the block type.
ktr-heatmap)Embed customizable heatmaps with filtering and display options:
filePath starts_with "journal"
OPTIONS // must always start with the OPTIONS header
HIDE month_labels, weekday_labels // allows to hide the labels
COLORING_MODE liquid // toggles the coloring mode (liquid, stops, solid or gradual)
STOPS 100, 500, 1000 // changes the keypoints used for calculating the color of the cells
SQUARED_CELLS // changes the cell styling for a more squared look
ROUNDED_CELLS // changes the cell styling for a rounded look
WEEKS 24 // changes how many weeks are displayed (can affect performance)
Query Syntax:
filePath starts_with "folder_name"(filePath starts_with "journal") OR (filePath starts_with "worldbuilding")Available Options:
HIDE month_labels, weekday_labels: Hide specific labelsCOLORING_MODE: Set to liquid, stops, solid, or gradualSTOPS: Define threshold values (e.g., 100, 500, 1000)SQUARED_CELLS or ROUNDED_CELLS: Control cell appearancektr-slots)Display inline statistics with customizable metrics:
CURRENT_WEEK, WORDS
CURRENT_DAY, CHARS
CURRENT_STREAK
WHOLE_VAULT
CURRENT_MONTH, WORDS, AVG
CURRENT_YEAR
Available Slots:
Options:
ktr-entries)Display writing activity for specific dates:
2024-03-15
Shows the activity for the specified date (YYYY-MM-DD format). If no date is provided, displays the current date's activity.
Access comprehensive customization options through the plugin settings:
Keep the Rhythm stores all data locally in your Obsidian vault. No data is sent to external servers. Your writing statistics are saved in a JSON file within the plugin's data directory.
If you encounter any issues or have suggestions for improvements, please:
I built this plugin after finding that Better Word Count, while useful, had issues with Obsidian Sync - stats would get overwritten when switching between devices. Keep the Rhythm solves this by properly saving and merging data across devices, ensuring your writing progress is always accurately tracked!