ilia d91936ab1c
CI / skip-ci-check (push) Successful in 32s
CI / secret-scan (push) Successful in 31s
Feat 1.16.9: Circle quest first-run
Merge feat 1.16.9 quest
2026-08-05 14:13:14 -05:00
2026-07-26 15:30:19 -05:00

Circle

Android assist app: circle on-screen text, then Translate, Copy, Explain, Share, or Vikunja. On-device processing.

Repo / Gradle module: crkl · Application id: com.example.crkl · Display name: Circle

Ship docs

Features

  • Circle gesture captures on-screen text (accessibility service + on-device OCR)
  • Action chips: Translate, Copy, Explain, Share, Vikunja
  • Vikunja HTTPS integration for add-to-todo
  • Optional mailto / lab gog bridge (Advanced in Integrations)
  • Device calendar read (Advanced)
  • Circle style settings (color, neon, stroke)
  • First-run onboarding; optional debug metadata in panel
  • Shortcuts: Quick Settings Circle tile, Accessibility button, volume-key shortcut
  • Local LLM when a .task model is present; otherwise stub Explain / summary

Quick start

./setup.sh          # one-time SDK (if needed)
make check-device
./gradlew assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk
adb shell am start -n com.example.crkl/.MainActivity

Or: make build / make install / make run when Make targets are available.

See PHONE_SETUP.md for USB debugging.

Enable Circle Overlay

  1. Open Circle
  2. Tap Enable Accessibility (or Accessibility settings)
  3. Turn on Circle Overlay
  4. Accept the permission dialog
    Re-enable after every reinstall.

Try it

Tap the floating C, or Quick Settings → Circle, then draw a closed loop around text.
VIP path is on Test fixtures (see docs/DEMO.md).

Shortcuts

docs/shortcuts.md — QS tile, Accessibility button, hold both volume keys.
Double-press power is not available to third-party apps.

Emulator note

If the GUI emulator never appears in adb devices, use headless (see docs/RELEASE.md):

$ANDROID_HOME/emulator/emulator -avd CrklEmulator -no-window \
  -gpu swiftshader_indirect -no-snapshot-load -grpc 8554 &
adb wait-for-device

Project structure

crkl/
├── app/src/main/kotlin/com/example/crkl/
│   ├── MainActivity.kt
│   ├── accessibility/          # Overlay, QS tile, bridge
│   ├── agent/                  # VoiceIntent, ActionExecutor, AssistEngine
│   ├── vision/                 # OCR + content capture
│   ├── integrations/           # Vikunja, translate, calendar
│   ├── fixtures/               # Test fixtures + demoScript()
│   └── ui/                     # Result panel, theme, CrklUi tokens
├── docs/                       # Ship + brand docs
└── Makefile

Model (optional)

Inference is MediaPipe on-device (make push-model). Without a model, Circle uses a local stub — still no cloud for summaries. OCR is ML Kit on-device.

License

MIT — see LICENSE.

S
Description
On-device AI assistant
Readme MIT
5.9 MiB
Languages
Kotlin 87.9%
Shell 7.8%
Makefile 3%
Python 1.3%