Skip to content

mthli/chuchu

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chuchu logo

Chuchu

A Modern, Better, Native Android SSH client powered by libghostty

Download Latest · ChangeLog ·


Chuchu sample 3 Chuchu sample 2 Chuchu sample 1 Chuchu sample 4

Chuchu is a native Android SSH client powered by libghostty, a terminal-first Compose UI, and has support for both standard SSH and Tailscale SSH workflows.

Features

  • tailscale, ssh password + key authentication
  • image display using libghostty's kitty image protocol support
  • more than 400 themes from the official ghostty repository
  • configurable accessory keys
  • beautiful and working terminal renderer with fully working resize, scrollback, focus, modifier keys, mouse actions

Status

Chuchu is in active development. I am daily driving it and improving any issues i found in the way. Join the journey and report any bugs you find. And I welcome any contributions.

Getting Started

Checkout our releases and download the apk from there. The latest release will have the latest changes.

I don't have a personal Play Store account right now (and I can't open one because of the payment limitation in my country, feel free to contact me if you want to publish it.)

Stack

  • Kotlin + Jetpack Compose for the Android app
  • Zig for native build orchestration and JNI/native bridge code
  • Ghostty VT for terminal emulation
  • libssh2 + openssl for the current native SSH path
  • Room for local data storage

Development - Prerequisites

If you have nix installed, the following three steps will get you started

  1. nix develop - will set you up with everything you will need.
  2. running 'make build' will build the native code needed
  3. running 'make app' will build the apk and install it in a connected device.

If you don't have nix installed, you will need

  1. setup tools
  • Android Studio - This will set up the needed Android SDK, Android NDK and Java runtime (JDK 17+).
  • Zig 0.15.2
  1. build the native library

Set ANDROID_NDK_HOME or ANDROID_NDK_ROOT, then build the JNI library for Android arm64:

zig build jni -Dtarget=aarch64-linux-android

That copies libchuchu_jni.so into app/src/main/jniLibs/arm64-v8a/.

  1. From android studio run
./gradlew assembleDebug

Inspiration

I have been using vvterm on iOS for the past few weeks and i really liked it. This project came from my desire to have native ssh client but for android.

Project Name

chuchu is one of my favorite characters from the amharic book Yesinbit Kelemat [it means colors of adios].

Demo

Chuchu demo

About

native android ssh client based on libghostty

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Kotlin 72.2%
  • Zig 24.4%
  • Shell 3.0%
  • Other 0.4%