A VS Code extension that shows one Thirukural (couplet by Thiruvalluvar) a day, with an image, transliteration, and meaning, docked in the sidebar right next to your file Explorer.
Setup
Unzip this folder and open it in VS Code (code .).
Install dependencies:
npm install
Press F5 to launch an Extension Development Host with the extension loaded.
A new icon (open-book shape) appears in the Activity Bar on the far left. Click it to open the "Today's Kural" sidebar panel.
It will auto-open that sidebar once when the dev host starts.
Run "Show Today's Thirukural" or "Show a Random Thirukural" from the Command Palette (Ctrl/Cmd+Shift+P) any time to jump to it.
Project structure
daily-thirukural/
├── src/
│ ├── extension.ts # main extension logic (sidebar webview, daily picker)
│ └── kurals.json # the kural dataset (only 10 sample entries included)
├── media/ # one illustration per kural (SVG placeholders)
├── resources/
│ └── icon.svg # Activity Bar icon for the sidebar panel
├── package.json # extension manifest + commands + view contribution
├── tsconfig.json
└── .vscode/ # F5 debug config
Extending it
Add all 1330 kurals: replace src/kurals.json with a full dataset (several open Thirukural JSON datasets exist on GitHub with Tamil text, transliteration, and English meaning). Keep the same field names (number, tamil, transliteration, meaning, chapter, image) or update extension.ts to match your field names.
Real images: the media/ folder currently has simple generated SVG placeholders (one per sample kural, color-coded by chapter). Swap in your own artwork/photos — just make sure the image field in kurals.json matches the filename, and keep images inside media/ since that's the only folder the webview is allowed to load local resources from.
True daily popups: VS Code extensions only run when VS Code is open, so "daily" currently means "once per calendar day that you have VS Code open" (tracked via globalState). For a true background daily notification you'd need an OS-level scheduler (outside what a VS Code extension can do on its own).
Packaging
npm install -g @vscode/vsce
vsce package
This produces a .vsix file you can install via Extensions: Install from VSIX... in VS Code, or publish to the Marketplace.