> 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/references/readme/showing-and-manipulating-the-invocation.md).

# Building Luciq

API reference for building Luciq in your project. Pass your app token and invocation events to initialise the SDK before invoking it.

You can use these methods to build Luciq in your project so that you can invoke it. This method takes a **string token** and **any number of invocation events** as an argument. This method will require that you have Luciq already installed. For more information on how to fully install and integrate **Luciq**, please refer to the relevant documentation sections here:

* [iOS](https://docs.luciq.ai/ios/setup-luciq-for-ios/integrate-luciq-on-ios)
* [Android](https://docs.luciq.ai/android/set-up-luciq-for-android/integrate-luciq-on-android)
* [React Native](https://docs.luciq.ai/react-native/setup-luciq-for-react-native/integrate-luciq-on-react-native)
* [Flutter](https://docs.luciq.ai/flutter/setup-luciq-for-flutter/integrating-luciq)

{% tabs fullWidth="false" %}
{% tab title="iOS - Swift" %}

```swift
Luciq.start(withToken: "YOUR-TOKEN-HERE", invocationEvents: [.shake, .screenshot]);
```

{% endtab %}

{% tab title="iOS - ObjC" %}

```objectivec
[Luciq startWithToken:@"YOUR-TOKEN-HERE" invocationEvents: LCQInvocationEventShake | LCQInvocationEventScreenshot]
```

{% endtab %}

{% tab title="And - Java" %}

```java
new Luciq.Builder(this, "APP_TOKEN")
    .setInvocationEvents(LuciqInvocationEvent.SHAKE, LuciqInvocationEvent.SCREENSHOT)
    .build();
```

{% endtab %}

{% tab title="And - Kotlin" %}

```kotlin
Luciq.Builder(this, "APP_TOKEN")
            .setInvocationEvents(LuciqInvocationEvent.SHAKE, LuciqInvocationEvent.SCREENSHOT)
            .build()
```

{% endtab %}

{% tab title="RN" %}

```javascript
//iOS
Luciq.startWithToken('IOS_APP_TOKEN', [Luciq.invocationEvent.shake]);

//Android
new RNLuciqReactnativePackage.Builder("TOKEN",MainApplication.this)
							.build();
```

{% endtab %}

{% tab title="Flutter" %}

```dart
//iOS
Luciq.start('APP_TOKEN', [InvocationEvent.shake]);

//Android
ArrayList<String> invocationEvents = new ArrayList<>();
invocationEvents.add(LuciqFlutterPlugin.INVOCATION_EVENT_SHAKE);
new LuciqFlutterPlugin().start(CustomFlutterApplication.this, "APP_TOKEN", invocationEvents);
```

{% endtab %}
{% endtabs %}

**Invocation Event Parameters:**

{% tabs fullWidth="false" %}
{% tab title="iOS - Swift" %}

```swift
//No Trigger
.none
//Shake
.shake
//Screenshot
.screenshot
//Two Finger Swipe Left
.twoFingersSwipeLeft
//Right Edge Pan
.rightEdgePan
//Floating Button
.floatingButton
```

{% endtab %}

{% tab title="iOS - ObjC" %}

```objectivec
//No Trigger
LCQInvocationEventNone
//Shake
LCQInvocationEventShake
//Screenshot
LCQInvocationEventScreenshot
//Two Finger Swipe Left
LCQInvocationEventTwoFingersSwipeLeft
//Right Edge Pan
LCQInvocationEventRightEdgePan
//Floating Button
LCQInvocationEventFloatingButton
```

{% endtab %}

{% tab title="And - Java" %}

```java
//No Trigger
NONE
//Shake
SHAKE
//Screenshot
SCREENSHOT
//Two Finger Swipe Left
TWO_FINGER_SWIPE_LEFT
//Floating Button
FLOATING_BUTTON
```

{% endtab %}

{% tab title="And - Kotlin" %}

```kotlin
//No Trigger
NONE
//Shake
SHAKE
//Screenshot
SCREENSHOT
//Two Finger Swipe Left
TWO_FINGER_SWIPE_LEFT
//Floating Button
FLOATING_BUTTON
```

{% endtab %}

{% tab title="RN" %}

```javascript
//iOS
//No Trigger
Luciq.invocationEvent.none
//Shake
Luciq.invocationEvent.shake
//Screenshot
Luciq.invocationEvent.screenshot
//Two Finger Swipe Left
Luciq.invocationEvent.twoFingersSwipe
//Floating Button
Luciq.invocationEvent.floatingButton

//Android
"none"
"shake"
"screenshot"
"swipe"
"button"
```

{% endtab %}

{% tab title="Flutter" %}

```dart
//iOS
InvocationEvent.none
InvocationEvent.shake
InvocationEvent.screenshot
InvocationEvent.twoFingersSwipe
InvocationEvent.floatingButton
  
//Android
LuciqFlutterPlugin.INVOCATION_EVENT_NONE
LuciqFlutterPlugin.INVOCATION_EVENT_SHAKE
LuciqFlutterPlugin.INVOCATION_EVENT_SCREENSHOT
LuciqFlutterPlugin.INVOCATION_EVENT_SWIPE
LuciqFlutterPlugin.INVOCATION_EVENT_BUTTON
```

{% endtab %}
{% endtabs %}


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.luciq.ai/references/readme/showing-and-manipulating-the-invocation.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
