Browse and paste commands from your ZSH history directly into any application.
- Browse History: View up to 1000 most recent commands from your ZSH history file
- Quick Paste: Press Enter to paste the selected command into the frontmost application
- Edit Before Action: Press Cmd+E to edit a command before pasting or copying
- Copy to Clipboard: Press Ctrl+C to copy the command to clipboard
- Search: Instantly search through your command history
- Timestamps: See when each command was last used
- Configurable: Set a custom path to your ZSH history file
- Clone or download this extension to your local machine
- Navigate to the extension directory:
cd vicinae-zsh-history - Install dependencies:
npm install
- Build the extension:
npm run build
- The extension will be automatically installed to
~/.local/share/vicinae/extensions/zsh-history - Restart Vicinae or reload extensions
Open the command palette and search for "Browse ZSH History" to see your command history.
Select a command and press Enter to paste it into the currently active application. The Vicinae window will automatically close after pasting.
Select a command and press Cmd+E to open an edit form where you can modify the command before pasting or copying it. This is useful for:
- Adjusting file paths
- Changing command arguments
- Fixing typos in historical commands
- Customizing commands for the current context
In the edit form:
- Press Cmd+Enter to paste the edited command
- Press Cmd+C to copy the edited command to clipboard
Select a command and press Ctrl+C to copy it to your clipboard without pasting.
Use the search bar at the top to filter commands by text. The search is instant and works across all your history.
By default, the extension looks for your ZSH history at ~/.zsh_history. If your history file is located elsewhere, you can configure the path in Vicinae preferences:
- Open Vicinae preferences
- Navigate to Extensions > ZSH History
- Update the "History File Path" setting
- Common alternative locations:
~/.zsh/history~/.histfile- Custom path set via
$HISTFILE
The path supports tilde (~) expansion for your home directory.
The extension handles both ZSH history formats:
: 1704446400:0;ls -la
: 1704446405:0;cd /home/user
: 1704446410:0;git status
ls -la
cd /home/user
git status
Multi-line commands are displayed as-is with line breaks preserved.
- Displays up to 1000 most recent commands (configurable in source)
- Requires read access to the history file
- History file must be in ZSH format
Builds the extension to ~/.local/share/vicinae/extensions/zsh-history:
npm run buildRun the extension in development mode with hot reloading:
npm run devnpm run typecheckRuns Biome linting and Vicinae manifest validation:
npm run lintnpm run formatnpm run format:checkThis project uses GitHub Actions for continuous integration. The CI pipeline runs on every push and pull request to the main branch.
The workflow (.github/workflows/ci.yml) runs the following checks:
- Format Check: Ensures code is properly formatted
- Lint: Runs Biome linting and Vicinae manifest validation
- Type Check: Validates TypeScript types
- Build: Compiles the extension and uploads build artifacts
All checks must pass before merging pull requests.
src/
├── types.ts # TypeScript interfaces
├── history.ts # History file parser and utilities
├── list-command.tsx # Main list view component
└── edit-command.tsx # Edit command form component
MIT
brpaz
Issues and pull requests are welcome!