Skip to content

Repository files navigation

CiCa

CiCa is an Android client for connecting to remote Linux servers over SSH and managing Claude chat sessions from a mobile UI.

What It Does

  • Stores server profiles locally with password or private key authentication
  • Encrypts saved credentials with Android Keystore and EncryptedSharedPreferences
  • Tests SSH connectivity before saving a server profile
  • Opens remote Claude sessions over SSH and runs prompts through claude -p
  • Uses tmux run-shell to keep remote Claude work alive after the initial SSH exec call returns
  • Persists servers, sessions, and messages with Room
  • Renders the app with Jetpack Compose and Navigation Compose

Project Structure

  • app/src/main/java/com/lazy/cica/ui: Compose screens, navigation, and reusable UI components
  • app/src/main/java/com/lazy/cica/data: local database, repositories, SSH client, tmux integration, and runtime state
  • app/src/main/java/com/lazy/cica/security: encrypted credential storage
  • app/src/test: repository and Room DAO tests

Requirements

  • Android Studio with Android SDK 34
  • JDK 17
  • A reachable SSH server
  • A remote environment with:
    • tmux
    • claude CLI available in PATH

Build And Run

./gradlew assembleDebug

To install on a connected device or emulator:

./gradlew installDebug

To run local unit tests:

./gradlew testDebugUnitTest

Current Flow

  1. Add a server profile in the app with host, port, username, and either a password or PEM private key.
  2. Use the built-in connection test to verify SSH access.
  3. Save the server and create a chat session.
  4. CiCa invokes claude -p --session-id --output-format stream-json on the remote machine.
  5. Remote output is appended to a session log and tailed back into the Android UI.

Notes

  • This repository currently contains a single Android app module: :app
  • Network access requires the Android INTERNET permission, which is already declared in the manifest
  • Host key checking is currently disabled in the JSch client implementation, so this codebase is still best treated as an early-stage project

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages