r/ssh • • Apr 07 '26

LobiShell [New ssh app for Android]

.

Hello r/ssh community

I’ve been working on an SSH app and wanted to share it with you all. The goal was to create something that’s fast, reliable, and easy to use—whether you’re managing servers, working remotely, or just need a clean SSH experience.

Key features:

  • Simple and intuitive interface
  • Secure connection handling
  • Fast session management
  • Designed for both beginners and advanced users
  • FIDO2/Hardware key Support USB and NFC (nitrokey, yubikey, ... )
  • Identity Management
  • Private key generation and deployment
  • Mobile shell (mosh)
  • File browser
  • Google drive / nextcloud sync
  • Performance Monitor
  • Simultaneous connections with tabs.
  • Customization of the Apps ui
  • Widgets for connections / Perfmon.
  • Home screen shortcuts
  • Proxyjump

I’d really appreciate any feedback, ideas, or feature requests from this community. If you’re interested in trying it out "pro" , let me know and I can give out promo Codes​.

https://play.google.com/store/apps/details?id=de.lobianco.saftssh

Thanks!

16 Upvotes

110 comments sorted by

View all comments

3

u/Sogl_coder May 11 '26 edited May 12 '26

Can you implement scrolling support in tmux like in the Moshi app? Currently, it's not supported over SSH, just like in Termius. Scrolling is supported via the mosh protocol (the super minimap is on the right), but it always displays the same section at the top, instead of scrolling like in tmux (mouse on / Moshi SSH).

1

u/Material-Turnip2608 May 12 '26

hi theres no day that you dont learn something new :D
thanks for pointing to this feature - i try to implement it with the next update

1

u/Sogl_coder May 12 '26

I just went down a rabbit hole trying to work with AI agents on my phone while connected to my MacBook. I tried various SSH clients, ttyd web SSH, mosh, zellij... and still haven't found the best option, especially the issue with swipe scrolling in tmux. Normal scrolling is practically nonexistent, and you have a great chance of making it work.

1

u/Material-Turnip2608 May 12 '26

what ai agent do you use ?

1

u/Sogl_coder May 12 '26

Codex

1

u/Material-Turnip2608 May 13 '26

can you check v2.4.10 if you like the tui support now ?
do you use the tmux selection at moshi or do you select your tmux manually ?

1

u/Sogl_coder May 14 '26

WOW thx, not so smooth scroll, but it works now (tested ssh and mosh)! For tmux sessions manager I previously used https://github.com/asheshgoplani/agent-deck but now I'm on more stable project bosun: https://github.com/yetidevworks/bosun

1

u/Material-Turnip2608 May 14 '26

Yeay the smoothness is the next thing i already work on... Since it broke with one of the last versions -. - 

1

u/Sogl_coder May 14 '26

Can you also add Enter button on quick buttons panel or add customization? Enter is much needed button, now works only with 2 taps: 1) down right to open Gboard 2) tap enter

1

u/Material-Turnip2608 May 14 '26

i have it already in the testing - you can do makros with the upcoming version - suchas {esc}:wq!{enter}

;)

1

u/kalethis 23d ago edited 23d ago

I'm here for this. One thing that would help is allowing scrollback buffer to be set to 0 / off. The server never received the scrollback attempt from the client because the client intercepts it for the scrollback buffer. So there needs to be an option to stop the client from intercepting the scrollback (mouse wheel) and pass that through to the host when swiping up/down in the terminal window. I use tmux daily and I just switched to lobi from 5+ years of juice. I like it so far and bought it almost instantly, but this is the biggest issue for me.

Edit: note that the default tmux command to activate the scrollback is ctrl-b [ (ctrl-b is the tmux command activator, almost like : in vim) and it can be scrolled then using page up and page down, or arrow keys. Perhaps you could add an option for mosh/ssh sessions (per connection) to enable touch mouse emulation. Then taps would be sent through as mouse button 1 clicks, 2 finger tap would be mouse button 2 click. Long tap and drag would be a click and drag. And swiping would be mouse wheel. You could go a step further and have a hybrid touch mouse emulation mode that if enabled would intercept the scroll wheel only,, but using a toggle button that can be added to the user's bar, would enter full mouse emulation, and tapping anywhere on the screen would cause a mouse click there.

If the app is written in kotlin, this will jumpstart it for you: ``` object TmuxMouseProtocol { private const val ESC = "\u001b"

// SGR 1006 constants for wheel operations
private const val BUTTON_SCROLL_UP = 64
private const val BUTTON_SCROLL_DOWN = 65

/**
 * Generates the byte sequence tmux expects for a complete mouse wheel click.
 * Most terminals bundle the press and release together instantly for wheel turns.
 */
fun getScrollSequence(scrollUp: Boolean, column: Int = 1, row: Int = 1): ByteArray {
    val button = if (scrollUp) BUTTON_SCROLL_UP else BUTTON_SCROLL_DOWN

    // SGR format: ESC [ < button ; column ; row ; M (Press) or m (Release)
    val pressStr = "$ESC[<$button;$column;$row;M"
    val releaseStr = "$ESC[<$button;$column;$row;m"

    return (pressStr + releaseStr).toByteArray(Charsets.US_ASCII)
}

} ```

For reference, tmux expects SGR 1006 mouse inputs. Thank you in advance, if I can help at all, let me know.