Android app: no reliable way to start new conversation via share intent
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/pngwithEXTRA_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:
- An intent extra:
com.anthropic.claude.intent.extra.NEW_CONVERSATION = true - A deeplink:
claude://new-chat?text=...(theclaude://scheme is already registered but doesn't seem to have a new-chat path) - Handle it inside the app: When receiving
ACTION_SENDorACTION_PROCESS_TEXTfrom 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
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗