[FEATURE] Custom Symbol Autocomplete Providers
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
Currently, Claude Code only supports @ for file autocompletion. However, many users work in domains where they frequently reference non-file entities like clients, projects, tickets, or database records. These users must manually type or copy-paste identifiers, which breaks their flow and reduces productivity.
For example, a consultant managing multiple clients constantly needs to reference client names in their notes and communications. A project manager needs to quickly reference project codes. A developer needs to reference ticket numbers.
Currently, there's no way to get autocomplete assistance for these domain-specific entities, forcing users to context-switch to other applications or maintain manual lists.
The @ symbol works beautifully for files, but users need similar functionality for their custom data sets that are just as important to their daily workflows.
Proposed Solution
Extend Claude Code's autocomplete system to support user-defined symbols with configurable data sources. Users would:
- Configure custom symbols in a .claude/symbols.config.json file
- Define data sources (JSON files, APIs, databases, or scripts)
- Use familiar autocomplete UX with their custom symbols
User Experience:
- User types %narc and presses TAB
- Claude Code shows dropdown: "Narcisi, Gustavo - www.KingConf.com clientID:11254", "Martin, Sarah - XYZ Inc"
- User selects with arrow keys and Enter
- Text expands to "Narcisi, Gustavo - www.KingConf.com clientID:11254" or custom format
The configuration would be simple:
{
"symbols": [{
"symbol": "%",
"name": "clients",
"source": {"type": "file", "path": "./clients.json"},
"searchFields": ["name", "companyweb", "clientID"],
"displayFormat": "{name} - {companyweb} {clientID}"
}]
}
Alternative Solutions
Current workarounds:
- Maintaining text files with copy-paste workflows
- Using external tools for snippets
- Keeping browser bookmarks with search functionality
- Using IDE snippets (limited and context-unaware)
Why these don't work well:
- Context switching breaks flow
- No integration with Claude Code's natural language interface
- Require maintaining separate tools and databases
- Don't provide the same seamless UX as @ symbol
Other tools with similar features:
- VSCode has snippet expansion but limited to code
- Notion has @ mentions for database records
- Slack has @ mentions for users and channels
- None integrate with AI coding assistants
Priority
High - Significant impact on productivity
Feature Category
Interactive mode (TUI)
Use Case Example
Scenario: Business Consultant Daily Log
Sarah is a business consultant who works with 15+ clients and needs to log daily activities for billing and project tracking.
Current workflow (frustrating):
- Opens Claude Code to write daily notes
- Types: "Had call with "
- Switches to client spreadsheet to find exact client name
- Copy-pastes "Martinez, John - ABC Corp"
- Continues: "about project timeline"
- Repeats this 5-10 times per day
Proposed workflow (seamless):
- Opens Claude Code to write daily notes
- Types: "Had call with %mart" + TAB
- Selects "Martinez, John - ABC Corp" from dropdown
- Continues typing naturally
- At end of day, types: "Generate invoice for %ABC" + TAB
- Gets client details instantly for billing
Step-by-step example:
User types: "Update %mar"
Claude shows: [Martinez, John - ABC Corp] [Martin, Sarah - XYZ Inc]
User selects first option
Result: "Update Martinez, John - ABC Corp called to confirm..."
User types: "Bill 3 hours to $web"
Claude shows: [website-redesign] [web-portal] [webstore-v2]
User selects: website-redesign
Result: "Bill 3 hours to website-redesign for API integration"
Additional Context
Technical Implementation:
- Extend existing autocomplete parser to recognize configurable symbols
- Plugin-like architecture for different data source types
- Caching layer for performance with large datasets
- Security sandbox for script-based data sources
Configuration Schema:
interface SymbolConfig {
symbol: string; // %, $, #, etc.
name: string; // "clients", "projects"
source: DataSource; // file, api, database, script
searchFields: string[]; // fields to search in
displayFormat: string; // how to show in dropdown
insertFormat: string; // what gets inserted
}
Security Considerations:
- Local file access only within project directory
- API credentials via environment variables
- Script execution in restricted environment
- User must explicitly configure each symbol
Performance Considerations:
- Lazy loading of data sources
- Intelligent caching with TTL
- Fuzzy search algorithms for large datasets
- Debounced queries for API sources
Similar Features in Other Tools:
- Notion's database @ mentions
- Obsidian's link suggestions
- VSCode's IntelliSense extensibility
- Alfred's custom workflows
This feature would make Claude Code significantly more useful for domain-specific workflows while maintaining the intuitive UX users already love.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗