← Back to context

Comment by kuschkufan

9 hours ago

And once you want to one-up this look into fzf.

And once you get tired of fzf and want something better, you reach for https://atuin.sh.

Completely transformed all of my workflows

  • From the atuin.sh website

    > Sync your shell history to all of your machines

    I think of my shell history as very machine specific. Can you give some insights on how you benefit from history sync? If you use it.

    • That feature is entirely optional and disabled by default. Atuin stores your shell history locally in a sqlite db regardless of whether you choose to sync it. I thought fzf was fast, but atuin makes it look slow by comparison.

    • Same, I find shared history not very useful.

      However what I do find useful is eternal history. It's doable with some .bashrc hacks, and slow because it's file based on every command, but:

      - never delete history

      - associate history with a session token

      - set separate tokens in each screen, tmux, whatever session

      - sort such that backward search (ctrl-R) hits current session history first, and the rest second

      Like half my corporate brain is in a 11M history file at this point, going back years.

      What I would love is to integrate this into the shell better so it's using sqlite or similar so it doesn't feel "sluggish." But even now the pain is worth the prize.

      3 replies →

    • 1. work on a project on host_foo in /home/user/src/myproject

      2. clone it on host_bar in /home/user/src/myproject

      If you set filter_mode = "directory", you can recall project specific commands from host_foo for use on host_bar even though you're working on different machines and the search space won't be cluttered with project specific commands for other projects.