I will try it because the history tool looks like an interesting take, but the security model is not ok for multi computer use.
Yesterday I was tired and working on a friend serveur. The ssh prompt was different and I entered the password from a account while the remote port has hang up on me. So effectively typing “password” straight on my shell.
His password is in my history now. I removed it but that type of thing happen all the time. ( Not that much in a professional settings, password tends to fade away )
The better written ones might accept it in env but that will also stay in history.
But if someone have access to your home they can put keylogger in the .profile/.bashrc so it's not really relevant...
[0]: https://atuin.sh/
But otherwise yes, the tools are pretty similar! Nice to see another in the space
*: context, I'm the maintainer so may be biased ;)
I also did not enjoy that the install script is not in the repo.
A table comparing these and existing tools would be ideal to show what's unique about this one.
All jokes aside, from reading the threads, I see there are other alternatives, most interestingly atuin and fzf. I used fzf for a while, but didn't use the history features. Atuin looks amazing, and installs using nix-shell. My litmus test for whether something is safe to use is nix-shell these days; I'm not excited about running a curl script into python as my starting point!
Does anyone have references on whether atuin and fzf can be used together, or should you only use one or the other? I liked fzf but the encrypted remote sync feature of atuin looks really fascinating.
If it can't be self hosted, despite end to end encryption it's a big no no for me.
Edit. I read the code
func getServerHostname() string {
if server := os.Getenv("HISHTORY_SERVER"); server != "" {
return server
}
return "https://api.hishtory.dev"
}As it is, this is a blocker for me even trying it out. Even if it could eventually be disabled, I don't want it to have network access at all.
This isn't supported quite yet, but is the next item on the road map.
function sync_history
cat ~/.local/share/fish/fish_history.sync-conflict-* >>~/.local/share/fish/fish_history
rm ~/.local/share/fish/fish_history.sync-conflict-*
endWhat was much more interesting to me is how this tool hooks into the shell to record commands. This can be found here: https://github.com/ddworken/hishtory/tree/master/client/lib/...
Also, Github pro tip: Press `t` when on any github repo to bring up fuzzy matching that can be used to easily find any specific file.
Also just a heads up, I find the demo gif to be unintelligibly fast.
> if I delete something using `hishtory redact` does it delete it from my native shell history too
It does not (though if you think it should, please open an issue and I'm happy to add this!)
> Also just a heads up, I find the demo gif to be unintelligibly fast.
Ah thanks! Updating.
Is the history visible and editable by the user ? ( does not have to be overriding a existing command )
> curl https://hishtory.dev/install.py | python3 -
[Q: can this tool help? As far as in understand, it seems that YEEEES!!!]
#write to history file at each shell prompt
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
(Unless I read your comment wrong.)(Btw I read the util name in Sean Connerys voice)
another suggestion is to have a setting for the timestamp format
I used to use something before, probably McFly, that had way better search results.
> You may use either the server I host, or host your own! Or just don't use sync at all.
I sincerely appreciate the fact that you provided these as alternatives, because wow, offline only, with no synchronization? That's honestly really nice to see compared to this tool.
[1] https://til.marcuse.info/bash/bash-infinite-history.html