Transform your Obsidian experience with a powerful slash menu system and seamless Notion integration. This plugin brings modern editor functionality to Obsidian with intelligent command suggestions, performance optimization, and full customization options.
- Intelligent Search: Fuzzy search with category filtering
- Rich Categories: Text, Lists, Media, Advanced, Notion, and Obsidian commands
- Performance Optimized: Lazy loading and caching for large vaults
- Keyboard Navigation: Full arrow key and hotkey support
- Custom Shortcuts: Configure personalized keyboard shortcuts
- Seamless Sync: One-click or automatic file synchronization
- Metadata Support: Preserve YAML frontmatter and tags
- Bulk Operations: Sync entire vault or selected folders
- Smart Retry: Automatic retry with exponential backoff
- Status Tracking: Real-time sync status for all files
- Multi-Language: English and German interface
- Theme Adaptive: Automatic light/dark theme support
- Mobile Responsive: Optimized for all screen sizes
- Accessibility: High contrast and reduced motion support
- Debug Mode: Performance metrics and troubleshooting tools
-
From Community Plugins (Recommended)
- Open Obsidian โ Settings โ Community Plugins
- Search for "Advanced Slash Menu"
- Click Install โ Enable
-
Manual Installation
cd your-vault/.obsidian/plugins git clone https://github.com/yourusername/obsidian-slash-menu cd obsidian-slash-menu npm install && npm run build
- Open Slash Menu: Type
/in any note - Search Commands: Type to filter available options
- Navigate: Use โโ arrow keys or mouse
- Execute: Press Enter or click to run command
- Go to notion.so/my-integrations
- Click "New integration"
- Name your integration (e.g., "Obsidian Sync")
- Select your workspace
- Copy the "Internal Integration Token"
-
Create a new database in Notion
-
Add these properties:
- Title (Title field)
- Content (Text field)
- Tags (Multi-select field)
- Last Modified (Date field)
- Obsidian Path (Text field)
-
Share database with your integration:
- Click "Share" in top-right
- Add your integration
- Grant full access
- Open Obsidian โ Settings โ Advanced Slash Menu
- Paste your Integration Token
- Add your Database ID (from database URL)
- Configure sync preferences
{
language: 'en' | 'de', // Interface language
theme: 'auto' | 'light' | 'dark', // Theme preference
performanceMode: boolean, // Enable for slower devices
maxMenuItems: number, // Limit menu items (5-100)
debugMode: boolean // Show performance metrics
}Enable/disable command categories:
- Text: Headings, paragraphs, formatting
- Lists: Bullets, numbered, tasks, tables
- Media: Images, links, embeds, code blocks
- Advanced: Templates, queries, calculations
- Notion: Sync commands and database operations
- Obsidian: Plugin commands and vault operations
Customize keyboard shortcuts for frequent commands:
{
heading1: 'Ctrl+1', // Quick heading 1
heading2: 'Ctrl+2', // Quick heading 2
todo: 'Ctrl+T', // Quick todo item
codeblock: 'Ctrl+K', // Quick code block
link: 'Ctrl+L' // Quick link insertion
}{
syncOnSave: boolean, // Auto-sync when saving
autoSync: boolean, // Periodic background sync
syncInterval: number, // Sync frequency (minutes)
syncMetadata: boolean, // Include frontmatter/tags
excludeFolders: string[], // Folders to skip
retryAttempts: number // Failed sync retries
}/h1โ # Heading 1/h2โ ## Heading 2/boldโ bold text/italicโ italic text/codeโinline code
/ulโ โข Bullet list/olโ 1. Numbered list/todoโ - [ ] Task item/tableโ | Table | Header |
/imgโimage
/linkโ text link/embedโ ![[internal link]]/codeblockโ ```language code block
/syncโ Sync current file to Notion/sync-allโ Sync entire vault/notion-statusโ Check sync status/notion-setupโ Open setup wizard
Slash menu not appearing
- Ensure plugin is enabled in Community Plugins
- Check for conflicting plugins
- Try restarting Obsidian
Notion sync failing
- Verify integration token is correct
- Check database permissions
- Ensure database has required properties
- Try "Test Connection" in settings
Performance issues
- Enable Performance Mode in settings
- Reduce maxMenuItems limit
- Clear cache in settings
- Check Debug Mode for metrics
| Code | Description | Solution |
|---|---|---|
| 401 | Invalid token | Check integration token |
| 403 | No permission | Share database with integration |
| 404 | Database not found | Verify database ID |
| 429 | Rate limited | Wait and retry |
| 500 | Notion error | Check Notion status |
Enable Debug Mode for detailed diagnostics:
- Performance metrics display
- Detailed error logging
- Cache statistics
- Sync operation tracking
# Clone repository
git clone https://github.com/yourusername/obsidian-slash-menu
cd obsidian-slash-menu
# Install dependencies
npm install
# Start development build
npm run dev
# Build for production
npm run build
# Run tests
npm test
# Lint code
npm run lintsrc/
โโโ main.ts # Main plugin class
โโโ slash-menu/ # Slash menu system
โ โโโ menu.ts # Menu rendering
โ โโโ commands.ts # Command definitions
โ โโโ search.ts # Search/filtering
โโโ notion/ # Notion integration
โ โโโ client.ts # API client
โ โโโ sync.ts # Sync operations
โ โโโ mapping.ts # Content mapping
โโโ settings/ # Settings management
โ โโโ tab.ts # Settings UI
โ โโโ types.ts # Type definitions
โโโ utils/ # Utility functions
โโโ performance.ts # Performance optimization
โโโ i18n.ts # Internationalization
โโโ theme.ts # Theme management
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push branch (
git push origin feature/amazing-feature) - Open Pull Request
Extend functionality with the Slash API:
// Register custom command
this.app.plugins.plugins['slash-menu'].registerCommand({
id: 'my-custom-command',
label: 'My Custom Command',
description: 'Does something amazing',
category: 'Custom',
handler: (editor, context) => {
// Your command implementation
}
});| Operation | Time (ms) | Notes |
|---|---|---|
| Menu Load | 5-15 | Initial display |
| Search Filter | 1-3 | Per keystroke |
| Command Execute | 2-10 | Depends on complexity |
| Notion Sync | 100-500 | Per file, network dependent |
| Cache Lookup | <1 | Cached commands |
- Lazy Loading: Commands loaded on demand
- Intelligent Caching: LRU cache for frequent operations
- Performance Mode: Reduced animations and effects
- Virtual Scrolling: Handle large command lists
- Debounced Search: Optimized filtering
- Local First: All processing happens locally
- Secure Storage: Tokens encrypted in Obsidian vault
- No Telemetry: No usage data collected
- Open Source: Full transparency
- API Token: Stored securely in Obsidian settings
- Minimal Permissions: Only database access required
- HTTPS Only: All API calls use TLS encryption
- Rate Limiting: Respectful API usage
- Custom command templates
- Advanced search operators
- Command history and favorites
- Export/import settings
- Plugin ecosystem integration
- Advanced Notion formatting
- Collaborative features
- Mobile app optimization
- AI-powered suggestions
- Voice command support
- Advanced automation
- Extended language support
This project is licensed under the MIT License - see the LICENSE file for details.
- Obsidian Team - For the amazing platform
- Notion Team - For the robust API
- Community - For feedback and contributions
- Beta Testers - For helping polish the experience
- GitHub Issues: Report bugs or request features
- Discussions: Community discussion
- Discord: Obsidian Community Discord
- Documentation: Full documentation
โญ Star this repo if you find it helpful!
Report Issues โข Contribute โข Changelog

