> For the complete documentation index, see [llms.txt](https://sentinel.rexiox.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sentinel.rexiox.co/sentinel-docs.md).

# Sentinel Docs

<figure><img src="/files/MfaSOwkD7ed0LowmfdLz" alt=""><figcaption></figcaption></figure>

Sentinel is a lightweight, modular security toolkit designed specifically for Kotlin Multiplatform (KMP). It empowers mobile developers to analyze runtime environments and detect potential security threats in real-time across both Android and iOS applications from a single codebase.

{% hint style="danger" %}
Development Stage Notice Sentinel is currently in an active development and testing phase. API structures may change as new features are added. Caution is advised when deploying to production environments.
{% endhint %}

{% hint style="danger" %}
Sentinel is a client-side detection library and is not a standalone security solution. It can be bypassed on rooted or jailbroken devices by a sufficiently capable attacker.&#x20;

For robust, real-world security, Sentinel must be utilized within a defense-in-depth framework, supported by server-side verification mechanisms such as the Sentinel Attest architecture, Play Integrity API (Android), and App Attest (iOS)
{% endhint %}

{% columns %}
{% column %}

<p align="center">Android</p>

<figure><img src="/files/L1GjJDE0Psb4VStxr7iZ" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<p align="center">iOS</p>

<figure><img src="/files/w3Af4zqTRsRt7QXUfvIJ" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

{% file src="/files/ddtzdTtsMpYE2Bv8j0RY" %}

***

### 🛡️ Why Sentinel?

Most mobile applications rely heavily on server-side security, leaving a massive blind spot on the client side. Attacks, reverse engineering, and environment manipulations happen directly on the user's device.

Sentinel solves this by providing real-time, on-device threat detection with minimal performance overhead, ensuring your app's runtime environment remains secure.

#### Key Capabilities:

* Detect Compromised Devices: Instantly flag rooted Android devices or jailbroken iOS devices.
* Halt Runtime Manipulation: Detect dynamic hooking tools like Frida or Xposed.
* Prevent Reverse Engineering: Identify application tampering and signature mismatches.
* Isolate Unsafe Environments: Detect if the app is running on emulators, simulators, or under a debugger.

***

### ⚡ Core Features

* Kotlin Multiplatform: Natively supports Android and iOS with a clean, unified API.
* Modular Detector Architecture: Turn specific security checks on or off, or easily extend them with custom rules.
* Smart Risk Aggregation: Employs a weighted scoring system by category to prevent artificial risk inflation.
* DSL-Based Configuration: Setting up thresholds and active modules is clean, expressive, and developer-friendly.
* RASP (Runtime Application Self-Protection): Moves beyond startup checks to continuously monitor your app for injection or hooking attempts in the background.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://sentinel.rexiox.co/sentinel-docs.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
