Arcane OS Docs Development only

Reference

Arcane.capabilities.list()

Returns the current Core-bound application descriptor, grants, and exact allowed RPC names. Android callers use Arcane.platform.status().capabilities; the direct method is not projected there.

  • Reference

This focused page is derived from the mechanically checked full member inventory.

Syntax

Arcane.capabilities.list()

Parameters

None

Return value

Promise<{app, grants, methods}>

Description

Returns the current Core-bound application descriptor, grants, and exact allowed RPC names. Android callers use Arcane.platform.status().capabilities; the direct method is not projected there.

Overview

Arcane.capabilities.list() returns the effective authority of the current Core-bound application session. It takes no parameters, requires no capability, has no side effect, and emits no event. Use it to disable unavailable controls; it does not grant authority or make a later mutation safe without its own preconditions.

The direct method is Core-only in the current projection. Android callers with system.read obtain the same nested capability snapshot from Arcane.platform.status().capabilities; a direct Android capabilities.list request is unsupported.

Result

The exact result is { app, grants, methods }. app is the same eight-field descriptor returned by Arcane.app.current(). grants is the sorted list of capability strings bound to the app. methods is the sorted list of exact RPC method names admitted after capability, app-type, and app-id policy checks.

RPC names can differ from public JavaScript member names: for example, Arcane.applications.list() is admitted as "apps.list". Test the matching RPC name and feature-detect the JavaScript member before enabling a control.

Errors and recovery

ARCANE_TRANSPORT_UNAVAILABLE means there is no host. An Android call rejects with ANDROID_CAPABILITY_UNSUPPORTED; use the platform-status snapshot there. An unexpected or missing method in a Core result indicates a policy/package mismatch—refresh the app after repair rather than treating a grant string alone as permission.

Example

const access = await Arcane.capabilities.list();
const canLaunch = Boolean(
    Arcane.applications?.launch
    && access.grants.includes('applications.launch')
    && access.methods.includes('apps.launch')
);

console.log(access.app.id, canLaunch);

Reference group

Applications, terminal, and capabilities

Repository and reviewed source access