Skip to content

oh-my-zsh plugin for synced zsh_history; with encryption :)

Notifications You must be signed in to change notification settings

zhogov/history-sync

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 

Repository files navigation

An Oh My Zsh plugin for GPG encrypted, Internet synchronized Zsh history using Git

That is, if you'd like an easy way to securely synchronise your zsh_history across many computers connected to the Internet, this plugin will help you. Be creative with this - I dare you.

What tooling do I need?

  1. GnuPG
    history-sync uses GPG to encrypt/decrypt your zsh_history. The GnuPG documentation is very good.

  2. Git
    history-sync uses Git to push/pull your zsh_history to/from a remote repository.

How do I use it?

  1. Create a Git repo for housing your encrypted zsh_history file. This repo needs to be accessible from all client shells you'd like to synchronize
    • Mine is $HOME/.zsh_history_proj
  2. Activate history-sync plugin in your .zshrc
    • git clone git@github.com:wulfgarpro/history-sync.git $HOME/.oh-my-zsh/plugins/.
  3. Export environment variables (or use defaults found in the plugin file history-sync.plugin.zsh)
    These are:
    • ZSH_HISTORY_FILE
      Your zsh_history file location
    • ZSH_HISTORY_PROJ
      Your Git project for housing your zsh_history file
    • ZSH_HISTORY_FILE_ENC
      Your encrypted zsh_history file location
    • GIT_COMMIT_MSG
      Your default message when pushing to $ZSH_HISTORY_PROJ
  4. Ensure your GPG setup is complete and you have a public/private key pair for encrypting/decrypting: man gpg
  5. Run zhpl to pull
  6. Run zhps to encrypt and push
  7. Run zhsync to pull/push

Example use

About

oh-my-zsh plugin for synced zsh_history; with encryption :)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Groovy 64.6%
  • Shell 35.4%