# Install dependencies
yarn install
# Start development server
yarn dev
# Build for production
yarn build
# Deploy to Obsidian vault
yarn deploy| Command | Description |
|---|---|
yarn dev |
Start dev server with hot reload |
yarn build |
Build and lint the plugin |
yarn deploy |
Build and deploy to local Obsidian vault |
yarn releaseThis command chains three operations:
- Bumps version (prompts for version selection)
- Pushes changes to
mainbranch - Creates and pushes git tag
Note: This is useful for testing locally but doesn't create a GitHub release.
gh workflow run release.ymlThis is the recommended way to create releases. It triggers the GitHub Actions workflow which:
- ✅ Automatically bumps version (patch level)
- ✅ Builds the plugin
- ✅ Pushes version bump to
main - ✅ Creates and pushes git tag
- ✅ Creates a published GitHub release
- ✅ Attaches build artifacts (main.js, manifest.json, styles.css)
yarn syncSyncs files from your Obsidian vault to the development directory (one-way sync from vault to dev).
-
GitHub CLI installed and authenticated:
# Check if installed gh --version # If not installed (macOS) brew install gh # Authenticate with GitHub gh auth login
-
Verify authentication:
gh auth status
-
From the CLI:
# From anywhere in the project gh workflow run release.yml # Monitor the workflow in GitHub Actions # Go to: https://github.com/marcopeg/mondo/actions
-
From GitHub Web UI:
- Go to: https://github.com/marcopeg/mondo/actions
- Select "Release Obsidian plugin" workflow
- Click "Run workflow" button
- Select branch:
main - Click "Run workflow"
When you trigger the release workflow:
- Version Bump: Automatically increments patch version (e.g., 0.0.33 → 0.0.34)
- Build: Runs
npm run buildto compile the plugin - Commit: Creates a commit with updated version files
- Tag: Creates a git tag matching the new version
- Release: Creates a GitHub release (published, not draft)
- Artifacts: Attaches compiled files to the release:
main.js- Compiled plugin codemanifest.json- Plugin manifeststyles.css- Plugin styles
.github/workflows/release.yml: Main release workflow (triggered manually viaworkflow_dispatch)
Note: The old automatic tag-push trigger has been disabled. Use the manual workflow instead.
src/
commands/ # CLI commands
components/ # React UI components
containers/ # Stateful components
context/ # React context providers
entities/ # Entity type definitions
events/ # Event listeners and DOM injections
examples/ # Usage examples
hooks/ # Custom React hooks
types/ # TypeScript type definitions
utils/ # Utility functions
views/ # Page-level aggregations
main.ts # Plugin entry point
styles.css # Tailwind CSS entry point
docs/ # Documentation
.github/workflows/ # GitHub Actions workflows
- ✅ Prefer arrow functions
() => {} - ✅ Default to
const; useletonly when mutation is required - ✅ Never use
var - ✅ Never use the
anytype - ✅ Do not use the
functionkeyword for declarations
- UI components implement a single visual control
- Containers bridge hooks/business logic with UI
- Views coordinate multiple containers and components
- Reuse shared
ui/Covercomponent for thumbnails - Use Tailwind CSS and Obsidian theming
The plugin provides several commands for working with daily notes:
| Command | ID | Description |
|---|---|---|
| Append to Daily note | add-log |
Core command - sets up daily note and positions cursor |
| Talk to Daily Note | talk-to-daily |
Append to daily note + start dictation |
| Record to Daily Note | record-to-daily |
Append to daily note + start native recording |
All three commands use the same core logic (setupDailyLogAndPositionCursor) for consistency.
If you get "command not found: gh", install it:
# macOS
brew install gh
# Then authenticate
gh auth loginCheck the workflow logs:
- Go to: https://github.com/marcopeg/mondo/actions
- Click on the failed workflow run
- Click on the "build" job to see detailed logs
If the version was already bumped locally, you can:
# Undo local changes
git reset --hard
# Or pull latest from main
git pull origin main