Obsidian plugins

Published in the official community directory.

Runs projects and tasks as plain Markdown notes with time tracking on top: a Kanban board, a pausable timer, and a dashboard of hours logged, streaks and per-project breakdowns. Everything stays in frontmatter — no database, no lock-in if you stop using it.

  • TypeScript
  • Obsidian API
  • Jalali Calendar

Converts Gregorian dates to Shamsi (Jalali) automatically inside Obsidian. Watches frontmatter properties, applies the Persian calendar conversion, and writes the result back — or just displays it, leaving the source untouched.

  • JavaScript
  • Obsidian API
  • Jalali Calendar

147 downloads

Sets each line's text direction from the majority of its words, so a Persian, Arabic or Hebrew line that opens with an English word still reads right-to-left.

  • TypeScript
  • Obsidian API
  • RTL

Brings Codecks boards into Obsidian: browse decks as a colour-coded grid, filter by project and status, and bulk-import cards as tasks. Deliberately read-only, with duplicate protection via Codecks IDs, so nothing upstream can be broken by accident.

  • TypeScript
  • Obsidian API
  • REST API

Keeps AI providers, keys and reusable prompts in one place, and runs them on any text from the command palette or from your own scripts.

  • TypeScript
  • Obsidian API
  • LLM APIs

Graduate coursework

From the MSc at Sharif.

Applies the NSGA-II and SMS-EMOA evolutionary algorithms to the mean-variance model on NASDAQ data, trading risk against return as a true multi-objective problem. Built for the convex optimization course.

  • Python
  • NSGA-II
  • SMS-EMOA
  • Convex Optimization

Recognises spoken digits from the Free Spoken Digit Dataset using classical machine learning methods rather than deep nets. Built for the statistical learning course.

  • Python
  • Machine Learning
  • SVM
  • Audio