Open-source in-app support SDK
Resolve support issues inside your app.
An in-app AI agent that finds, explains, and fixes product issues, with user approvals and full operator control.
Platforms
Native iOS & Android
Hosting
Managed or self-hosted
Models
Your own LLM keys
Source
Backend & SDKs on GitHubMeet users where the issue is already happening.
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.
Automation that asks before it acts.
Automate the safe path, require consent on the sensitive path, and keep an auditable record of both.
policy
Define policy
Choose which actions can auto-run, which must wait for consent, and which should stay unavailable by default.
explain
Explain action
The agent states what it wants to do, why it matters, and what the user should expect next.
approve
Collect approval
Sensitive steps stop inside chat until the user explicitly approves the action.
record
Record outcome
Execution results, payloads, and final status are written to the session trace for review.
Built for the people who answer for it.
outcomes
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.
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.
Three steps from install to a live agent.
Based on the real resolvekit-ios-sdk APIs and runtime lifecycle.
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"
}
}Runtime resolves inline functions + function packs.
Function names must stay unique across all sources.
Use stable snake_case names: the backend stores tools by function name.
Each function must be async throws and implemented on a struct.