Skip to content

A very simple solution to a simple problem: syncing your zsh shell history between computers

License

Notifications You must be signed in to change notification settings

vitobotta/zsh-history-sync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zsh-history-sync

Syncs your zsh shell history between computers using git and in encrypted format (using GPG), easily. Only requirement is to have a git repository on Github or similar (recommended private although the history is encrypted).

If you like this or any of my other projects and would like to help with their development, consider becoming a sponsor.

Notes:

  • To eliminate or at least minimise the frequency of conflicts, the history is synced only when the last command was executed at least 15 seconds ago. This way even if you switch from a computer to another quickly, the chance of a sync conflict is greatly reduced compared to a sync at each command.
  • You can trigger a sync at any time with the command synchistory -f
  • fzf is required to show a nice fuzzy-search window to search the history for a previous command
  • Ctrl-r and the up arrow key are bound to the fuzzy search, to make it easier and quicker to find a previous command you want to run again.

Installation

You need to clone this repo with the scripts somewhere and run the install script. The installer will ask you for the path to your git repository that you want to use to synchronise the history, as well the UID of the GPG key you want to use to encrypt the history. The install script then updates your .zshrc to load what's required to trigger the synchronisation in background.

git clone https://github.com/vitobotta/zsh-history-sync.git
cd zsh-history-sync

./install.sh

source ~/.zshrc

About

A very simple solution to a simple problem: syncing your zsh shell history between computers

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages