Focus Sessions
unlistedby Luis Pernia
A focus session manager for Obsidian.
Obsidian Plugin Starter Template
A production-ready, batteries-included starter template for building high-quality Obsidian plugins with TypeScript.
Features
- Modern Tooling: fast builds with
esbuild, hot reloading withnode esbuild.config.mjs. - Type Safe: Strict TypeScript configuration enabled by default.
- Code Quality:
- ESLint with
eslint-plugin-obsidianmdfor best practices. - Prettier for consistent formatting.
- Husky & lint-staged for automated pre-commit checks.
- ESLint with
- Testing: Ready-to-go unit testing with Vitest.
- Automated Releases: Zero-config GitHub Releases and Changelog generation using Semantic Release.
- Path Aliases: Pre-configured
@/alias for cleaner imports (mapped tosrc/).
Quick Start
- Use template: Click "Use this template" on GitHub or clone the repository.
- Install dependencies:
npm install - Configure:
- Update
manifest.json(id,name,description,author). - Update
package.json(name,description). - (Optional) Update
esbuild.config.mjsif you have special build requirements.
- Update
Development
Start the development server with hot reloading:
npm run dev
This will build your plugin and watch for changes.
Available Scripts
| Script | Description |
|---|---|
npm run dev | Watch mode. Rebuilds on file changes. |
npm run build | Production build. Minifies the output. |
npm test | Run unit tests with Vitest. |
npm run lint | Run ESLint check. |
npm run format | format code with prettier. |
Pre-commit Hooks
This repo uses Husky to run lint-staged on commit. This ensures that every commit:
- Passes ESLint checks.
- Is formatted with Prettier.
- (Optional) You can add
npm testto.lintstagedrcif strict TDD is preferred.
Releases
This template uses Semantic Release to automate versioning.
- Commit Messages: Use Conventional Commits.
feat: ...→ Minor releasefix: ...→ Patch releasedocs: ...→ No releasefeat!: ...→ Major release
- Push to Main: When you push (or merge) to the
mainbranch, the GitHub Action workflow:- Analyzes your commits.
- Bumps the version in
package.json,manifest.json, andversions.json. - Generates a Changelog.
- Publishes a GitHub Release with the compiled
main.js,manifest.json, andstyles.css.
AI Agents
This repository includes an AGENTS.md file. This file contains deep context about the project structure, conventions, and implementation details. It is designed to be read by AI coding assistants to help them understand your codebase instantly.
License
Copyright (C) 2026 Luis Pernia
GNU GPLv3 (or whichever license you prefer)
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.