Capture a visual issue without leaving your iOS or Android app: take a screenshot, crop it, add a memo, and submit it through your own callback or KUE Cloud.
This repository contains the MIT-licensed SDK and setup CLI only. KUE Cloud is a separately operated service; its server code, configuration and credentials are not part of this repository.
KUE shows its screens in Japanese or English, following the device's preferred
languages; locale fixes the display language.
The finding screen offers Add finding and Create Issue. Create Issue sends the
current finding, or confirms a title for it together with the saved findings. A
tap always captures; when the draft is full or its send result is unconfirmed,
the new finding goes alone and Saved findings shows the draft. The long-press
menu lists only what a tap cannot do, each item named beside its button.
The Expo KueProps requires cloud or onSubmit, and submitLabel with a custom handler.
Optional silent native screen recording and mixed video/image submission require
an active Indie workspace, a recording-capable build and Cloud with video
admission enabled. Free keeps a visible locked action.
During recording, tap the red-square KUE button to stop and review locally.
For Expo apps, the CLI resolves default auto recording inclusion from the
workspace plan, supports an explicit off, and saves deterministic build settings.
This selection does not enable recording or grant runtime entitlement by itself.
For a custom wrapper, the CLI's --skip-integration manages these
settings and dependencies without reading or editing JSX. Build and store
distribution remain part of the host application's workflow.
When changing user-visible behavior, review and update both documentation languages along with affected package READMEs and release notes. If no documentation change is needed, explain why in the pull request. Keep unreleased behavior distinct from published SDK/CLI and Cloud features.
| Integration | Installation and API reference | Distribution |
|---|---|---|
| Expo SDK 54–57 | @kue-qa/react-native, kue-qa setup CLI | npm |
| iOS 15+, SwiftUI/UIKit | Kue / optional KueRecorder | Swift Package tag v0.6.0; release ZIP for local CocoaPods |
| Android API 26+, Views/Compose | Installation, API reference | Maven Central; legacy Maven ZIP |
| Flutter 3.32+, Dart 3.8+ | kue_qa, optional recorder | pub.dev core, recorder |
| React Native 0.86.2 / React 19.2.3, New Architecture | @kue-qa/react-native-bare, optional recorder | npm |
The CLI requires Node.js 22.13 or newer and configures Expo applications. Other integrations use their platform's dependency tools. KUE is disabled by default in Release. Web capture is not supported. Do not install duplicate native core copies when using the Flutter or Expo-free React Native packages.
SDKs and CLI version 0.6.0 are available. Expo, Expo-free React Native and CLI
packages are distributed on npm; Flutter core and recorder are on pub.dev. Native
iOS uses the v0.6.0 Swift Package tag or release ZIP; native Android core and
optional recorder are on Maven Central. The existing
Maven ZIP release remains available.
The production Cloud is hosted at kue.ischca.dev.
Cloud requires the KUE QA GitHub App on the destination repository. SDK usage
with your own callback does not require the App or a Cloud account. Recording
requires Cloud feature entitlement even with local saving. Check the
pricing page for Cloud sales availability.
Include google() and mavenCentral() in settings.gradle.kts:
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
}
}Add the dependencies to the application module and sync Gradle:
dependencies {
implementation("io.github.ischca.kue:kue-android:0.6.0")
// Optional: omit this dependency to exclude native screen recording.
implementation("io.github.ischca.kue:kue-android-recorder:0.6.0")
}Requirements are Android API 26 or later and Kotlin/JVM 17. Attach KUE to the
foreground Activity once after setContentView or setContent; see
Documentation for Views/Compose
examples, defaults, recording requirements, ZIP migration and removal.
A workspace covers one GitHub personal account or organization. The connecting user must own that account or organization and have repository administrator permission. The first connecting user becomes its KUE workspace owner. Separate GitHub owners and separate clients' work require separate subscriptions.
| Per workspace | Free | Indie |
|---|---|---|
| Monthly price | US$0 | US$12, tax included |
| Active projects | 1 | Unlimited |
| Reports per UTC calendar month | 100 | 5,000 |
| Image storage | 100 MB | 10 GB |
| Image retention from acceptance | 30 days | 365 days |
Usage is shared across the workspace. There are no per-tester or per-device fees. New submissions stop at the limits; there are no automatic overage charges. Accepted reports count even if Issue delivery fails; deletion does not restore quota. Indie renews monthly. Its billing period is separate from the UTC monthly quota reset. Manage cancellation through the dashboard before renewal; access continues until the paid period ends. Deleting a project or uninstalling the SDK does not cancel billing.
Production Cloud retains multiple Free connections but restricts repository switching for 24 hours from the first accepted report to a new destination. Switching requires explicit dashboard confirmation after expiry; connecting an app or checking its key will not switch the destination. See the documentation for the complete policy.
# From the Expo app or workspace root, once your repository has access to the GitHub App:
npx kue-qa initThe default server is https://kue.ischca.dev. Use --server URL for staging or
local development.
One Expo app in the workspace is selected automatically. With multiple apps,
use npx kue-qa init --app apps/mobile; no app is selected implicitly.
To use the current published version, run npx kue-qa@latest init. The CLI installs
the SDK at the same exact version.
No Cloud account is needed to use the SDK with your own onSubmit callback and submitLabel.
For other platforms, follow the Documentation.
See the Expo SDK installation and API documentation for
manual integration and the CLI documentation for tarball setup.
Upgrades use normal package versions and your app's lockfile.
Repeating init with unchanged managed configuration, integration, and installed
dependencies does not restart approval, run the package manager, or rewrite files.
The CLI still reads the current plan when recording is set to auto; off skips
that read. Use --reconnect to explicitly reconnect. See the
CLI documentation for update,
dependency, and configuration rules.
The floating button defaults to a viewfinder design. Use
<Kue cloud={cloud} buttonDesign="mascot" /> to select the bundled character with the same gestures.
Review screenshots before sending and crop out personal information or secrets. The optional offline queue stores reports inside the host app's private documents directory and follows its backup policy; it is not separately encrypted. Cloud image links grant access to anyone who has the link, independently of GitHub repository permissions. Expired images cannot be restored. Upgrading does not extend existing Free images; Indie images expire within 30 days after the subscription ends, without extending the original deadline. Image expiry does not delete report metadata or GitHub Issues. CDN, browser, and GitHub caches may delay revocation. A delivery-disabled placeholder containing no original image may remain to prevent republication.
Deleting a workspace schedules its images, reports, and workspace information for removal; active subscriptions must end first. GitHub Issues and Stripe invoices remain. Current-month usage and a pseudonymized owner-matching record remain until scheduled cleanup from the following month to prevent quota resets. See the Documentation for account removal, ownership transfers, receipt tokens, retry behavior, and optional trigger limitations.
Use Node.js 24 and the pnpm version in package.json.
pnpm install --frozen-lockfile
pnpm checkCI runs type checks, SDK/CLI tests, builds and package-content previews. It has no publication or deployment step. See CHANGELOG.md for release history and LICENSE for the MIT license.