Bring your favorite shell (xonsh, fish, zsh, bash, osquery) to any SSH host without root access or system installations.
xxh is a command-line tool that allows you to bring your locally configured shell environment to any remote Linux host over SSH. It solves the problem of losing your custom aliases, tools, and shell configurations when connecting to remote servers by packaging and uploading portable shells (like xonsh, fish, zsh) without requiring root access or system installations on the host.
Developers, system administrators, and DevOps engineers who frequently SSH into remote servers and want to maintain a consistent, personalized shell environment across all hosts.
xxh offers a unique, non-invasive approach by using portable shells and a plugin system, ensuring your environment is hermetic and easily removable. It supports multiple shells and tools out-of-the-box, is highly customizable, and works without host modifications.
🚀 Bring your favorite shell wherever you go through the ssh. Xonsh shell, fish, zsh, osquery and so on.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
xxh prepares shells locally and uploads them, requiring no root access or system installations on the host, as emphasized in the README's 'Portable' feature.
Sessions are contained in ~/.xxh, and deleting this directory removes all traces, allowing users to choose hermetic levels per the documentation.
Supports switching between xonsh, fish, zsh, bash, and osquery based on task, enabling seamless shell transitions as described in the 'Chameleon' section.
Offers prerun plugins for Docker, Python, dotfiles, and more, allowing users to bring tools and configs without host modifications, as shown in the examples.
Currently only supports Linux on x86_64, with ARM support pending, which restricts use on other architectures or operating systems, as noted in the shells table.
Requires forking and customizing plugins or shells for personal configs, which can be complex compared to simple file copying, per the 'Careful' philosophy.
The 'xxh local' mode expects tools like git and wget on the host, limiting its utility in minimal environments, as mentioned in the experimental section.