What is OACP?

OACP is an open protocol for Android apps. An app can describe what it can do, and a compatible assistant can discover and invoke those capabilities.

Think of this as MCP but for mobile apps, hence Open App Capability Protocol.

What ships today

Today, OACP is built around standard Android pieces:

  • oacp.json - the machine-readable capability manifest
  • OACP.md - a plain-language context file for the app
  • an exported .oacp ContentProvider that serves those files
  • Android Intents for foreground and background invocation

The public protocol spec and Android SDK currently target Android apps, not a general cross-platform runtime.

Why it exists

On Android, app-to-assistant integrations are usually vendor-specific. OACP is an attempt to make that contract open and reusable:

  • App developers describe capabilities once.
  • Assistants discover those capabilities at runtime.
  • Invocation stays inside normal Android primitives instead of a closed platform API.

The protocol is separate from any one assistant. Hark is the reference implementation, not the protocol itself.

What an OACP app exposes

Piece

Purpose

oacp.json

Declares capabilities, parameters, metadata, and invocation details.

OACP.md

Adds semantic context and disambiguation notes in plain language.

.oacp ContentProvider

Serves /manifest and /context so assistants can discover the app.

Assistants discover the app through the ContentProvider, parse oacp.json, and use Android Intents to invoke the selected action.

Two invocation patterns

Foreground handoff

Use an Activity action when the app needs to open:

  • open the camera
  • show a screen
  • start an editor

The assistant resolves the action, calls startActivity(), and the app takes over.

Background action with async result

Use a broadcast action when the app can do the work without opening UI:

  • fetch the weather
  • read a stored value
  • perform a background task

The assistant sends a broadcast, the app does the work, and the app can return an async result on org.oacp.ACTION_RESULT.

How OACP compares

OACP

Google Assistant Actions

Android 15 AppFunctions

Siri Intents

Min Android

5.0 (API 21)

varies

15 (API 35)

N/A (iOS)

Open protocol

Yes (Apache 2.0)

No

No

No

Assistant-agnostic

Yes

Google only

Google only

Apple only

Discovery

ContentProvider

Play Console

System API

Info.plist

Metadata richness

High (aliases, examples, hints, entities)

Medium

Low

Medium

On-device only

Yes

No (cloud)

Yes

Partial

Entity providers

Yes

No

No

Yes (via Shortcuts)

OACP and AppFunctions may converge. We are exploring an annotation processor that generates both oacp.json and AppFunctions metadata from a single source.

Who is using it

Eight apps support OACP today, with more coming. See the ecosystem for the full list.

Start building

If you want to see OACP working, start with Try It Out. If you want to add OACP to your app, jump to Add OACP to Your App. For the full integration reference, see the Integration Guide.

Last Edited: April 11, 2026