ResolveKit

Open-source SDK · in-app AI support

Backend open-sourced⭐ Star on GitHub

Resolve support issues inside your app.

An in-app AI agent that finds, explains, and fixes product issues — with approvals and full operator control.

2,400+ tickets resolved38 teams1,200+ SDK downloads
iOS · 17.4 · SDK v1.4.2
Live command traceResolveKit Sample · sess_8f3c…42a1
In progress
Ask about an in-app issue…
Send
Used by teams at

Deflect known issues earlier

ResolveKit meets users inside the workflow that is already failing, so repeatable blockers can be handled before they turn into ticket queues.

Make support knowledge executable

Ground the agent in docs, flows, and screenshots, then connect approved product actions so guidance can turn into actual resolution.

Keep teams aligned on risk

Product, CX, and engineering share one policy layer for approvals, version limits, and trace history instead of improvising across tools.

Control and guardrails

Approved automation for fixes that should move fast, with friction only where risk justifies it

ResolveKit lets you automate the safe path, require consent on the sensitive path, and keep an auditable record of both.

Step 1

Define policy

Choose which actions can auto-run, which must wait for consent, and which should stay unavailable by default.

Step 2

Explain action

The agent states what it wants to do, why it matters, and what the user should expect next.

Step 3

Collect approval

Sensitive steps stop inside chat until the user explicitly approves the action.

Step 4

Record outcome

Execution results, payloads, and final status are written to the session trace for review.

Buyer value

Lower ticket volume without hiding the work

Teams can see which issues were resolved in-product, which actions were taken, and where escalation is still required.

Operations

Tune behavior without another release cycle

Update prompts, functions, limits, and environment-specific rules from one dashboard instead of waiting on app updates.

Guardrails

Policies can block the wrong action before it runs

Function eligibility can be scoped by platform, app version, session fields, and explicit approval requirements.

Product awareness

The agent understands what the user is actually seeing

Ingest guide images and screenshots alongside docs so the assistant can reason about UI layout, steps, and breakpoints with less guesswork.

How To Integrate

Integrate ResolveKit iOS SDK in 3 steps

Based on the real resolvekit-ios-sdk APIs and runtime lifecycle.

Active snippet

Define tool functions with @ResolveKit

Function Source
Runtime resolves inline functions + function packs.Function names must stay unique across all sources.
import ResolveKitCore

@ResolveKit(name: "set_lights", description: "Turn lights on or off in a room", timeout: 30)
struct SetLights: ResolveKitFunction {
    func perform(room: String, on: Bool) async throws -> Bool {
        // your implementation
        return on
    }
}

@ResolveKit(name: "get_weather", description: "Get current weather for a city", timeout: 10)
struct GetWeather: ResolveKitFunction {
    func perform(city: String) async throws -> String {
        "\(city): sunny, 22°C"
    }
}

Use stable snake_case names — the backend stores tools by function name.

Each function must be async throws and implemented on a struct.

Get iOS SDK on GitHub

Try the iOS sample app

Download the Mac-compatible demo (.dmg) to test managed or self-hosted endpoints in minutes.

Use cases

Start with the support problem you actually have.

Getting live

Start in one flow. Expand from there.

Pick the in-app moment where users get stuck most often, ship there first, and expand after the team trusts the flow.