- Purpose: Provide a globally available command suggestion tool for Linux & Unix developers, leveraging shell history and triggered by customizable keystrokes.
- Target Audience: Developers working on Linux & Unix systems.
- Cross-shell Compatibility
- Support for Bash, Zsh, Fish, and tcsh.
- Configurable Keystroke Trigger
- Default:
Ctrl + Shift + Space - User-configurable via configuration file or CLI flag.
- Default:
- Command Suggestion Logic
- Primary: Partial Matching with Recency Bias
- Secondary: Frequency of Use (as a tiebreaker)
- Shell History Integration
- Utilize shell's built-in history file, with an option to merge across shells.
- Maintain a tool-specific history cache (in addition to shell history)
- User Interface
- Initial Implementation: Inline Autocomplete
- Future Enhancement: Optional Dropdown List or Sidebar
- Performance
- Minimize latency in suggestion prompts (<200ms).
- Security
- Handle sensitive command histories securely (e.g., encryption for stored histories).
- Future improvements: Use masking to hide sensitive information.
- Testability
- Unit tests for suggestion logic and integration tests for shell interactions.
- Simplicity
- Prioritize a simple, intuitive user experience.
- Programming Language: Go
- Dependencies:
github.com/gizak/termui/v3for terminal UI (subject to change based on developer preference)github.com/howeyc/fsnotifyfor monitoring history file changes (if directly reading from shell's history)