> For the complete documentation index, see [llms.txt](https://docs.luciq.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.luciq.ai/kmp/setup-luciq-for-kmp/setup-bug-reporting/showing-luciq.md).

# Showing Luciq

By default, Luciq is shown when the device is shaken (if you passed `InvocationEvents.Shake` in `LuciqConfiguration`). You can use other invocation events, show the SDK manually, or open a specific report type (bug, feedback, question) directly.

### Invocation events

Configure how the SDK is invoked using the `InvocationEvents` enum. You can set one or more events in `LuciqConfiguration` or at runtime with `BugReportingKmp.setInvocationEvents`.

Available events:

| Event                                  | Description                              |
| -------------------------------------- | ---------------------------------------- |
| `InvocationEvents.Shake`               | Shake the device to invoke bug reporting |
| `InvocationEvents.Screenshot`          | Take a screenshot to invoke              |
| `InvocationEvents.TwoFingersSwipeLeft` | Swipe left with two fingers              |
| `InvocationEvents.FloatingButton`      | Show a floating button above your UI     |
| `InvocationEvents.None`                | No automatic invocation (manual only)    |

{% code title="Kotlin" %}

```kotlin
BugReportingKmp.setInvocationEvents(listOf(InvocationEvents.Shake, InvocationEvents.FloatingButton))
```

{% endcode %}

### Floating button

If you use `InvocationEvents.FloatingButton`, you can set the edge and offset:

{% code title="Kotlin" %}

```kotlin
BugReportingKmp.setFloatingButtonEdge(FloatingButtonEdge.Right, offset = 50)
```

{% endcode %}

You can also set the position of the video recording floating button:

{% code title="Kotlin" %}

```kotlin
BugReportingKmp.setVideoRecordingFloatingButtonPosition(VideoRecordingButtonPosition.BottomRight)
```

{% endcode %}

### Shaking threshold

When using shake as an invocation event, you can adjust sensitivity. Higher values mean less sensitivity:

{% code title="Kotlin" %}

```kotlin
// iOS
BugReportingKmp.setShakingThresholdForiPhone(3.0)
BugReportingKmp.setShakingThresholdForiPad(1.0)
// Android
BugReportingKmp.setShakingThresholdForAndroid(800)
```

{% endcode %}

### Manual showing

To show the SDK manually (e.g. from a button or gesture), use `LuciqKmp.show()`:

{% code title="Kotlin" %}

```kotlin
LuciqKmp.show()
```

{% endcode %}

Use `InvocationEvents.None` if you only want manual invocation and no automatic triggers.

### Showing a specific report type

Instead of showing the prompt-options menu, you can open the bug, feedback, or question form directly. Pass the report type and optional invocation options:

{% code title="Kotlin" %}

```kotlin
// Show bug form
BugReportingKmp.show(ReportType.Bug, listOf(InvocationOptions.CommentFieldRequired))

// Show feedback form
BugReportingKmp.show(ReportType.Feedback, listOf(InvocationOptions.EmailFieldOptional))

// Show question form
BugReportingKmp.show(ReportType.Question, listOf(InvocationOptions.EmailFieldOptional))
```

{% endcode %}

`InvocationOptions` can include: `CommentFieldRequired`, `DisablePostSendingDialog`, `EmailFieldHidden`, `EmailFieldOptional`.

### Report types

Control which report types appear in the prompt (when you are not using `BugReportingKmp.show` with a specific type):

{% code title="Kotlin" %}

```kotlin
BugReportingKmp.setReportTypes(listOf(ReportType.Bug, ReportType.Feedback, ReportType.Question, ReportType.Other))
```

{% endcode %}

### Enable/disable Luciq

To disable or enable the entire SDK (e.g. for user opt-out):

{% code title="Kotlin" %}

```kotlin
LuciqKmp.setEnabled(true)   // enabled
LuciqKmp.setEnabled(false)  // disabled
```

{% endcode %}

{% hint style="warning" %}
When Luciq is disabled, all user data and attributes are removed from the device. Answered surveys are kept so they are not shown again when Luciq is re-enabled. User attributes cannot be set while disabled.
{% endhint %}


---

# 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://docs.luciq.ai/kmp/setup-luciq-for-kmp/setup-bug-reporting/showing-luciq.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.
