Android app: no reliable way to start new conversation via share intent

Resolved 💬 3 comments Opened Feb 22, 2026 by JayDoubleu Closed Mar 24, 2026

Context

This is about the Claude Android app (com.anthropic.claude), not Claude Code CLI. We understand these are different products, but there is no public issue tracker or feedback channel for the Android app. We're hoping this can be forwarded to the relevant team.

What we're building

An Android accessibility service app ("Circle to Claude") that captures screen regions, runs OCR, and shares the extracted text or cropped image to the Claude Android app. Think of it as a "Circle to Search" equivalent that sends results to Claude.

The problem

There is no reliable way to start a new conversation when sharing content to the Claude Android app via intents from a non-Activity context (e.g., an AccessibilityService).

What we've tried

ACTION_SEND with FLAG_ACTIVITY_CLEAR_TASK

Intent(Intent.ACTION_SEND).apply {
    type = "text/plain"
    putExtra(Intent.EXTRA_TEXT, text)
    setPackage("com.anthropic.claude")
    addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
}
  • From adb shell am start: Reliably starts a new conversation
  • From an AccessibilityService: Does NOT start a new conversation for text. The text is silently dropped or added to the current conversation's input. Image shares (image/png with EXTRA_STREAM) DO work correctly and start new conversations.

ACTION_PROCESS_TEXT

Intent(Intent.ACTION_PROCESS_TEXT).apply {
    type = "text/plain"
    putExtra(Intent.EXTRA_PROCESS_TEXT, text)
    putExtra(Intent.EXTRA_PROCESS_TEXT_READONLY, true)
    component = ComponentName("com.anthropic.claude", "com.anthropic.claude.deeplink.DeepLinkActivity")
    addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
}

Same result: works from adb, does not reliably work from an AccessibilityService.

Trampoline Activity

We tried launching from a transparent trampoline Activity (to change the caller context from Service to Activity). This did not help.

Various flag combinations

We tested many flag combinations (CLEAR_TASK, CLEAR_TOP, SINGLE_TOP, targeting DeepLinkActivity vs MainActivity directly). None reliably start a new conversation for text when launched from an AccessibilityService.

Root cause (from decompiled code analysis)

After decompiling the Claude APK, we found that jj.w.a() (the intent handler called from MainActivity.onCreate() and onNewIntent()) handles share intents by only adding content to the current input field's attachment list. It does not navigate to a new conversation.

New conversation creation depends entirely on Android's FLAG_ACTIVITY_CLEAR_TASK destroying and recreating the MainActivity. When this flag doesn't take effect (which happens inconsistently from non-Activity contexts), the content just gets appended to whatever conversation is currently active.

The inconsistency between text and image shares likely comes from how CLEAR_TASK interacts with FLAG_GRANT_READ_URI_PERMISSION propagation for image URIs, which forces a different framework code path that more reliably recreates the task.

Feature request

Please add an explicit mechanism to start a new conversation when sharing content, rather than relying on Android task management flags. For example:

  1. An intent extra: com.anthropic.claude.intent.extra.NEW_CONVERSATION = true
  2. A deeplink: claude://new-chat?text=... (the claude:// scheme is already registered but doesn't seem to have a new-chat path)
  3. Handle it inside the app: When receiving ACTION_SEND or ACTION_PROCESS_TEXT from an external app, always start a new conversation (or make it configurable in Claude's settings)

Any of these would make it possible to build reliable third-party integrations with the Claude Android app.

Environment

  • Device: Pixel 10 Pro XL
  • Claude Android app: latest from Play Store (Feb 2026)
  • Our app: targets SDK 35, min SDK 30
  • Android version: latest

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗