๐ฏ Search and browse 27,000+ Talon Voice commands and lists with lightning-fast performance, advanced filtering, and dedicated list search capabilities.
โ ๏ธ AI Disclosure: This extension was developed with assistance from AI tools (GitHub Copilot and Claude AI). While thoroughly tested and functional, users should be aware that AI-generated code was used in its creation. Please report any issues or concerns through the project's issue tracker.๐ File Access Policy: This extension only reads your Talon files (.talon, .talon-list, .py). It never writes to, modifies, or deletes any of your Talon Voice files or Python scripts. All file access is read-only for indexing and search purposes only.
- โก Lightning Fast JSON Storage: Handles massive datasets (27k+ commands) with optimized in-memory search
- ๐ Intelligent Search: Instant search across commands, scripts, applications, and metadata
- ๐ Dedicated List Search: Brand new tabbed interface with dedicated Talon list (.talon-list) search
- ๐ฏ Separate "Commands" and "Lists" tabs for focused searching
- ๐ Search across list names, spoken forms, values, and source files
- ๐ช Grouped results by list name for better organization
- ๐ Table format showing spoken form โ list value mappings
- ๐ Collapsible available lists section with click-to-filter functionality
- ๐๏ธ Advanced Filtering: Filter by application, mode, repository with real-time results
- ๐ Repository Breakdown: See command distribution across your repositories (community, personal, etc.)
- ๐ฏ Multiple Search Scopes:
- ๐ช Command Names Only (spoken phrase matches only)
- ๐ Scripts Only (code content search)
- ๐ All (comprehensive search across everything + list matching)
- ๐ง Intelligent List Matching: Search by list values to find commands that use them
- ๐ Search "left" โ finds
game <user.arrow_key>(because "left" is in the arrow_key list) - ๐ญ Search "happy" โ finds
insert <user.emoji>(because "happy" is in the emoji list) - ๐ Automatically maps command placeholders to actual Talon lists
- โจ Works with complex list naming structures and repository paths
- ๐ Search "left" โ finds
- ๐ค Auto-Detection: Automatically finds your Talon user folder on Windows/Mac/Linux
- ๐ File Integration: Click any result to open source .talon or .talon-list files instantly
- โจ๏ธ Keyboard Shortcuts:
Ctrl+Shift+T(Windows/Linux) orCmd+Shift+T(Mac) - ๐ Real-time Stats: Live command count, list count, and repository statistics
- ๐ง Folder Management: Set custom Talon user folder paths and import from any directory
- ๐ ๏ธ Database Tools: Built-in database management with clear/check functionality
๐พ Database: Optimized JSON storage with in-memory processing
- ๐ Lightning-fast search through 27k+ commands
- ๐ผ Stored in extension global storage (workspace-independent)
- ๐ Intelligent filtering without database complexity
- ๐ Real-time repository breakdown and statistics
- โ Proven to handle massive Talon command datasets
๐ Migration Journey:
- โ SQLite Issues: Native module compilation problems on Windows
- โ IndexedDB: Too slow for large datasets (cursor-based iteration)
- โ JSON + In-Memory: Perfect balance of speed, simplicity, and reliability
The Intelligent List Matching feature revolutionizes command discovery by letting you search for the values that commands accept, not just their names.
| Search Term | Finds Commands | Why? |
|---|---|---|
"left" |
game <user.arrow_key> |
"left" exists in the arrow_key list |
"chrome" |
focus <user.running_applications> |
"chrome" is in the applications list |
"happy" |
insert <user.emoji> |
"happy" is an emoji in the emoji list |
"enter" |
press <user.keys> |
"enter" is in the keys list |
- ๐ Placeholder Detection: Finds placeholders like
<user.arrow_key>and{user.emoji}in commands - ๐บ๏ธ Smart Mapping: Maps simplified names (
user.arrow_key) to full database paths (user.community/core/keys/arrow_key) - ๐ List Lookup: Searches through actual Talon list files (.talon-list) for matching values
- โ Match Return: Returns the command as a match if your search term exists in any referenced list
- Command Names Only: โ List matching disabled (spoken phrases only)
- Scripts Only: โ No list matching (searches code content only)
- All: โ Includes list matching + everything else
This feature makes it incredibly easy to discover commands when you know what you want to do but don't know the exact command name!
The extension now includes a complete List Search interface for browsing and searching through your Talon list files (.talon-list).
- ๐ Separate Tab: Dedicated "Lists" tab alongside "Commands" for focused searching
- ๐ Multi-field Search: Search across list names, spoken forms, values, and source files
- ๐ช Organized Results: Results grouped by list name (e.g., user.emoji, user.keys) for better navigation
- ๐ Clean Display: Table format showing "spoken form โ list value" mappings
- ๐ฏ Click-to-Filter: Click any available list name to filter results to that specific list
- ๐ Collapsible Interface: Space-saving design with expandable available lists section
- ๐ File Integration: Click source file names to open .talon-list files directly
- Open Search: Use
Ctrl+Shift+Tor "Talon: Search Commands" - Switch to Lists: Click the "Lists" tab in the interface
- Search Lists: Type in the search box to find specific list items
- Filter by List: Click any list name in the "Available Lists" section to filter
- Open Files: Click source file names to edit your .talon-list files
- Find Emoji: Search "happy" to see all happy-related emojis in your emoji lists
- Browse Keys: Click "user.keys" to see all available key mappings
- Check Snippets: Search "print" to find all print-related code snippets
- Verify Lists: Quickly verify what values are available in specific lists
- ๐ฆ Install the extension
- ๐ฏ Open Command Palette (
Ctrl+Shift+P/Cmd+Shift+P) - ๐ Run:
Talon: Refresh Index(first time only - imports your commands and lists) - ๐ Search:
Talon: Search Commandsor useCtrl+Shift+T - ๐ Enjoy: See your command breakdown and start searching instantly!
- ๐ Try List Search: Click the "Lists" tab to search through your Talon list files
- ๐ง Try List Matching: Search for values like "left", "chrome", or "happy" to see the magic!
{
"talonSearch.userFolderPath": "", // ๐ Leave empty for auto-detection
"talonSearch.enableAutoIndexing": true, // ๐ Auto-import on startup
"talonSearch.maxSearchResults": 500, // ๐ Max results per search
"talonSearch.searchDebounceMs": 3000 // โฑ๏ธ Search delay in milliseconds (0-30000)
}- User Folder Path: Auto-detects standard Talon locations:
- Windows:
%APPDATA%\talon\user - Mac:
~/.talon/user - Linux:
~/.talon/user
- Windows:
- Auto Indexing: Automatically imports commands on VS Code startup
- Max Results: Prevents UI slowdown with large result sets (default: 500)
- Search Debounce: Configurable delay before performing search (default: 3000ms)
- โฑ๏ธ Prevents searches on every keystroke for better performance
- ๐ฏ Adjustable from 0ms (instant) to 30 seconds via VS Code settings
- ๐จ Visual feedback with orange pending indicator and countdown
- ๐ก Recommended: 1000-3000ms for optimal user experience
- ๐ Includes race condition prevention for smooth search experience
# ๐ฆ Install dependencies
npm install
# ๐จ Compile TypeScript
npm run compile
# ๐ Watch mode for development
npm run watch
# ๐ Run extension (press F5 in VS Code)- ๐ฏ Extension Host (
src/extension.ts): VS Code integration, command registration, file scanning - ๐พ Database Manager (
src/database/dataManager.ts): JSON storage, in-memory search, repository breakdown - ๐ Parser (
src/parser/talonFileParser.ts): Advanced Talon file parsing (headers, commands, scripts) - ๐ฅ๏ธ Webview UI (
webview/): Modern search interface with real-time filtering and stats - ๐ Data Models (
src/types.ts): TypeScript interfaces ensuring type safety - ๐จ Modern UI (
webview/styles.css): CSS Grid responsive layout with VS Code theming
๐ Evolution: Started with SQLite โ Tried IndexedDB โ Perfected with JSON + In-Memory for optimal performance!
- Smart Focus Management: Automatic focus handling for optimal voice user experience
- Configurable Search Debounce: Performance-tuned search delays with visual feedback system
- Advanced Filtering Architecture: Multi-dimensional filtering (tags, OS, repos) with persistent state
- Responsive Design: CSS Grid automatically adapts to screen size (3/2/1 columns)
- In-Memory Search: All filtering and search operations run in memory for instant results
- Repository Intelligence: Smart path parsing extracts repository info from file paths
- Additive Imports: Support both full refresh and incremental folder imports
- Database Isolation: Commands stored in extension global storage, workspace-independent
- โจ๏ธ Smart Focus Management: Automatic focus on search inputs when switching between Commands and Lists tabs
- ๐จ Improved Tab Navigation: Seamless switching with immediate focus for voice users
- ๐ Enhanced Search Performance: Intelligent search triggers only when tab switching with available data
- ๐ฑ Touch-Friendly Interface: Better click targets and responsive design elements
- ๐ญ Voice-Optimized UX: Minimal navigation required for efficient voice command usage
- ๐ฏ Targeted Categories: Published under Programming Languages, Snippets, and Other to help the right users find the extension faster
- ๐งน Clean Console Output: Removed development-only
console.logstatements to keep logs focused on actionable information during troubleshooting
- ๐ฏ Smart Search Timing: Configurable delay prevents searches on every keystroke
- โ๏ธ Fully Customizable: Adjust delay from 0ms (instant) to 30 seconds via VS Code settings
- ๐จ Visual Feedback: Orange pending indicator shows search will start with countdown
- ๐ Performance Optimized: Reduces server load while maintaining responsive feel
- ๐ก Smart Defaults: 3-second default delay balances performance and usability
- ๐ท๏ธ Tags Filter: Filter commands by tags for better organization
- ๐ป Operating System Filter: Filter commands by OS (Windows, Mac, Linux)
- ๐ Enhanced Repository Stats: More detailed breakdown with visual indicators
- ๐ฏ Smart Filter Combinations: Multiple filters work together for precise results
- ๐ Persistent Filter State: Filters maintain state across searches
- ๐ฏ Dedicated List Search Tab: Complete separate interface for searching Talon lists (.talon-list files)
- ๐ Comprehensive List Parsing: Full support for parsing .talon-list files with spoken_form: list_value format
- ๐ช Grouped Results Display: Search results organized by list name for better navigation
- ๐ Table Format: Clean display showing spoken form โ list value mappings
- ๐ Multi-field Search: Search across list names, spoken forms, values, and source files
- ๐ฏ Click-to-Filter: Click any list name to instantly filter results to that specific list
- ๐ Collapsible Lists Section: Space-saving UI with expandable available lists section
- ๐ง Voice-Friendly Design: Optimized for voice users with minimal scrolling required
- ๐ฏ Intelligent List Value Search: Find commands by searching for the values they accept
- ๐ Smart Placeholder Mapping: Automatically maps
<user.arrow_key>to actual lists likeuser.community/core/keys/arrow_key - โจ Enhanced Command Discovery: Search "left" to find all commands that use arrow keys
- ๐ซ No False Positives: Only matches actual Talon lists, not code captures
- ๐โโ๏ธ Performance Optimized: Debounced search with race condition prevention
- ๐ Scope Awareness: List matching available in the All search scope
- ๐ Tabbed Interface: Separate "Commands" and "Lists" tabs for focused searching
- CSS Grid Layout: Modern responsive design with automatic 3-column layout
- Improved Results Display: Cards now use optimal grid spacing for better readability
- Interactive Repository Stats: Click on any repository in the breakdown to instantly filter results
- Visual Filter Feedback: Selected repositories are visually highlighted in the stats
- ๐ Stable Results: Fixed issue where search results would sometimes disappear
- โ๏ธ Clear Search Button: Quick search reset functionality for both tabs
- Check Database: New toolbar button to inspect database status and location
- Clear Database: Safe database clearing with confirmation dialogs
- Better Error Handling: Improved feedback when database isn't initialized
- ๐ Enhanced Import Process: Now imports both .talon and .talon-list files in single operation
- Set User Folder: New command to configure your Talon user folder path
- Import from Folder: Import commands from any directory (additive to existing commands)
- Refresh vs Import: Clear distinction between refreshing (replace all) and importing (add to existing)
- Complete Publishing Guide: Step-by-step marketplace publishing documentation
- VSCE Integration: Ready-to-publish package with proper configuration
- Professional Documentation: Comprehensive setup and usage instructions
- ๐
Talon: Search Commands- Open the powerful search panel with Commands and Lists tabs - ๐
Talon: Refresh Index- Re-import all .talon and .talon-list files (with progress indicator) - ๐
Talon: Import from Folder- Import commands and lists from a custom folder (additive) - โ๏ธ
Talon: Set User Folder Path- Configure your Talon user folder location
- โ Repository Breakdown - See command distribution across repositories
- โ Horizontal Stats Layout - Space-efficient command statistics
- โ JSON Storage Migration - Solved native module compilation issues
- โ Real-time Search - Lightning-fast search with 27k+ commands
- โ CSS Grid Layout - Responsive 3-column results layout
- โ Database Management - Built-in tools for clearing and checking database
- โ Folder Management - Custom folder selection and import workflows
- โ Enhanced Filtering - Clickable repository stats and dynamic filtering
- โ Publishing Ready - Complete publishing guide and marketplace preparation
- โ List Parsing & Matching - Full support for Talon list files (.talon-list) with intelligent command matching
- โ Dedicated List Search - Complete tabbed interface with separate list search functionality
- โ Collapsible UI - Space-saving interface optimized for voice users
- โ Click-to-Filter Lists - Interactive list name filtering for focused searching
- ๐ณ TreeView - Hierarchical browsing of results
- ๐ง Semantic Search - AI-powered command discovery
- ๐ File Watcher - Auto-refresh when .talon files change
- ๐ Usage Analytics - Track most-used commands
- ๐ Cross-Reference Search - Show which commands use specific lists
- โ๏ธ Inline List Editing - Edit list items directly in the interface
When you open the search panel, you'll now see a random selection of commands from your database (instead of filtering by a default application). This makes it easier to discover new commands and remember useful ones, even if you don't know what to search for!
The defaultApplications setting has been removed.
If you want to filter by application, simply use the filter dropdown in the search panel.
-
UI Improvement: The repository breakdown ("Commands by Repository") is now displayed above the search box in the Commands tab. This makes it clear that the figures shown are totals for each repository, not filtered results. When you filter or search, the breakdown remains visible for reference.
-
๐ฃ๏ธ New Default Search Scope: Spoken Forms (Commands + Lists)
- The search panel now defaults to the "Spoken Forms (Commands + Lists)" filter, making it easier to find both command names and list values instantly.
- This scope includes intelligent matching for spoken phrases and list values, so searching for terms like "left" or "happy" will find commands that use those list items.
- You can still switch to other scopes (All, Command Names Only, Scripts Only) using the dropdown next to the search box.
-
๐ฏ Enhanced User Experience: Smart focus management with automatic search input focus when switching tabs
-
โฑ๏ธ Configurable Search Debounce: Customizable search delay (0-30s) with visual feedback and performance optimization
-
๐ Advanced Filtering System: New tags and operating system filters with enhanced repository breakdown
-
๐ Revolutionary List Search: Complete tabbed interface with dedicated Talon list search functionality
-
๐ฏ Intelligent List Parsing: Full support for .talon-list files with comprehensive search capabilities
-
๐๏ธ Organized Results: Grouped list results by list name with clean table formatting
-
๐ Enhanced Filtering: Click-to-filter list names with collapsible interface design
-
๐ Performance Revolution: Migrated from SQLite to optimized JSON storage
-
๐ Repository Insights: See exactly where your commands come from with clickable stats
-
๐จ Modern UI: CSS Grid layout with responsive 3-column design and tabbed navigation
-
๐ ๏ธ Database Tools: Built-in database management (check/clear with confirmation dialogs)
-
๐ Flexible Imports: New commands for setting user folder and importing from any directory
-
โก Zero Dependencies: No more native module compilation issues
-
๏ฟฝ๏ธ Windows Compatible: Solved all the pesky Node.js version conflicts
-
๐ Scalable: Tested with 27,000+ commands and thousands of list items!
-
๐ฃ๏ธ Voice-Optimized: UI designed specifically for voice users with minimal scrolling required
-
๐ฆ Publishing Ready: Complete marketplace publishing guide included
This extension is ready for VS Code Marketplace publication! A comprehensive publishing guide is included:
- ๐ Complete Setup: Step-by-step Azure DevOps and Personal Access Token configuration
- ๐ง VSCE Integration: All package.json settings configured for publishing
- ๐ Documentation: Professional README and marketplace-ready descriptions
- ๐ One-Command Publishing:
vsce publish patchfor streamlined releases - ๐ Security Best Practices: Token management and security guidelines included
See PUBLISHING.md for the complete publishing guide.
We welcome contributions! Here's how to get started:
- ๐ด Fork the repository
- ๐ง Setup: Run
npm installandnpm run compile - ๐งช Test: Press F5 to launch extension development host
- โจ Develop: Make your changes and test thoroughly
- ๐ค Submit: Create a pull request with your improvements
MIT - Feel free to contribute and make Talon Voice even better! ๐ฏ
- The parser now normalizes any application header containing
terminalorwindows_terminaltowindows_terminalfor consistency in filtering and search. - Any header containing
powershellis normalized topowershell. - If you want
terminalandwindows_terminalto be listed separately, you must adjust the normalization logic insrc/parser/talonFileParser.ts. - To ensure commands are indexed under the correct application, add explicit
app: powershellorapp: terminalheaders to your Talon files.
