Introducing XPipe: A brand-new type of shell connection hub and remote file manager - eviltoast

Hello there Lemmy users, I recently posted an announcement of my project on the selfhosted subreddit and I think it is a good idea to also post it here for the Lemmy users.

About this project

I always wanted to have an easy file system and terminal access to all of my servers, including containers and clusters that you normally can’t connect to with existing solutions out of the box. So over the last months I worked on my new project XPipe to fix that.

In short, it is a brand-new type of shell connection hub with an included remote file manager that works by only interacting with already installed command-line tools on local and remote shell connections. This approach makes it much more flexible as it doesn’t have to deal with file system APIs, protocols, or libraries at all, everything is delegated to your own CLI tools. This also allows you to open connections in your favorite terminal application through XPipe. So if you normally use CLI tools like ssh, docker, kubectl, etc. to connect to your servers, you can just use XPipe on top of that without any setup required on your servers.

Here are some screenshots:

Shell Connection Hub

File Manager

In the context of the selfhosted community, the application is technically not hosted as it is implemented as a desktop application to have access to your shells,command-line programs, and terminals, but you can use it to access all your self-hosted infrastructure. The application matches the spirit of selfhosted as you have full control over your data. Everything is stored on your system, it doesn’t need to connect to any online service and there are no accounts or anything like that. It is also designed to be cross-platform and should also run on every operating system.

So if this project sounds interesting to you, you can give it a try! There are more features to come in the near future. I also appreciate any kind of bug reports and feedback to guide me in the right development direction. There is also a Discord and a Slack workspace for any sort of talking, although there isn’t really a community yet. Any sort of issue reports are important as I only had the ability to test it in a few different server environments and your setups can differ wildly from mine.

Enjoy!

  • einsteinx2@programming.dev
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    Just downloaded this and tried it out on a Debian VPS I have. Ran into a bunch of bugs to the point I couldn’t really do anything with it, but I can see a bunch of potential in the UI. I really like the idea of being able to see an overview of shell, containers, files, etc. I have a bunch of self hosted Proxmox VMs and various VPSs I use on a daily basis, and whole I’m totally comfortable with the command line, this tool seems genuinely useful.

    It seems like you have a bunch of functionality and UI implemented already, so I think taking a few weeks to just bug hunt would be super beneficial at this point. I’ll open up some GitHub issues when I have a minute later, but I ran into so many bugs in just 5 min that it was basically unusable which is extra frustrating because it really seems like it can be a useful tool if it works.

    • crschnick@sh.itjust.worksOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      That is unfortunate that you had to deal with these bugs. The challenge here is that every setup and shell environment people run this in differs and there was only so much testing I was able to do on my end. Reporting bugs is very helpful to me and they can usually get fixed pretty quickly.

      • einsteinx2@programming.dev
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        Just reopened the app and tried it again and figured out what happened. I had not entered a password in settings when adding the server since I connect using an ssh key. It detected I had docker but when I tried to click it, it errored out. If I had read the error, I would have seen that the problem was needing the password for sudo. I added the password to the server settings and now it’s working.

        I guess then the only real “bug” I found so far is that on macOS the app defaults to using iTerm2.app which is a 3rd party terminal app which I don’t have installed, so I had to change it to Terminal.app. I know iTerm2 is popular, but I think the default should be the one everyone has installed, and let iTerm2 users select their app in settings, not the other way around. But that’s more a UI/UX/onboarding experience thing than a real bug (though maybe it’s possible to detect if iTerm2 is installed).

        Anyway, I’m going to keep playing with this and will report anything I find. So far my second impression is that it just overall feels kind of sluggish and doesn’t have the best UI feedback when you’re waiting for things so I ended up clicking things more than once not thinking it was working then it would open multiple times (like clicking the root file directory).

        Hope to see you keep working on this, it seems like a really cool idea.

        • crschnick@sh.itjust.worksOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 year ago

          That is good to hear it works at least to some degree now. In theory, xpipe does detect your installed terminals at launch and will select the most appropriate (i.e. prefer iTerm2 over Terminal.app if iTerm2 is installed), however it seems like there are some false positives as is it quite difficult to properly check whether an app is installed somewhere on macOS.

          The UI feedback is definitely on my TODO list, having a status bar for example that tells you exactly what is currently going on would be very nice to have instead of just a spinner or nothing at all. I will see what I can do there

          • einsteinx2@programming.dev
            link
            fedilink
            English
            arrow-up
            1
            ·
            edit-2
            1 year ago

            Awesome, that seems like a great idea. Since as I understand it, the app is essentially just running terminal commands, I think showing the currently running command would be a huge UX improvement. It would help both with knowing what’s going on and with debugging any issues with the commands.

            Right now I’m traveling and my home VPN connection isn’t working for some reason, so I don’t have access to most of the VMs I usually use daily, but as soon as I get access again I’ll get them all added and really give this a proper test drive. I’ll report any issues I run across or UX suggestions I can think of. It’s great to see how well you take feedback!

            Also funny enough, just due to talking about iTerm2, I went and downloaded it and found out about the split panes feature and I think I may now be a convert haha.

            • crschnick@sh.itjust.worksOP
              link
              fedilink
              English
              arrow-up
              2
              ·
              1 year ago

              Yeah it could definitely show the currently running command, although it will be tricky to not spam the user with too many commands and information in short succession, but we will see.

              I guess the main reason for the popularity of iTerm2 is that the normal Terminal.app is just a little bit too basic in terms of its features. It works fine but nowadays people expect a little bit more.

              • einsteinx2@programming.dev
                link
                fedilink
                English
                arrow-up
                1
                ·
                1 year ago

                Hmm yeah that’s a good point about spamming commands. Great example of why UI/UX is so hard…it’s easy to throw out suggestions that sound good but the devil is always in the details (and edge cases) ;)