Skip to main content
Klyx is a mobile code editor for Android with a plugin system that lets you extend its capabilities. Extensions can add custom screens, toolbar actions, file openers, terminal sessions, language servers, syntax highlighting grammars, event-driven features, and more. This documentation covers everything you need to build, bundle, and distribute extensions for Klyx.

How extensions work

Extensions are Android APKs packaged into .klyx bundles. Klyx loads them at runtime using a dedicated plugin classloader. You declare your plugin’s metadata with the @PluginManifest annotation, and a Kotlin compiler plugin generates the descriptor and plugin.json for you automatically at compile time. Klyx reads the generated descriptor to instantiate your entry class and manage its lifecycle.

Architecture overview

What you can build

  • Custom screens and UI panels in Jetpack Compose
  • Toolbar actions with icons in categorized menus
  • Custom file openers for unsupported file types
  • Terminal session management and process execution
  • Language server protocol integrations
  • Tree-sitter syntax highlighting grammars
  • Background process execution with streaming output
  • Event-driven features responding to file opens, terminal events, and more
  • Theme-aware UI using Klyx’s color system and typography
  • App settings observation and modification

Prerequisites

  • Android Studio (latest stable)
  • Gradle 8.7+
  • Android SDK 28 (API level 28) or higher
  • Kotlin 2.1+ (required for context receivers)
  • Klyx 4.2.0 or later installed on a device

Next steps

Quickstart

Build your first extension in minutes

Creating an Extension

Step-by-step guide to creating a Klyx extension

API Reference

Complete API reference for all Klyx extension APIs