graith has three frontends — the gr CLI, iOS, and macOS apps — all clients of one daemon over the same wire protocol. This page tracks each surface’s capabilities, making any gap explicit and reviewable.

Source of truth

The matrix is generated from a machine-readable manifest, internal/capabilities/capabilities.json — the source of truth. A Go test (TestDocMatchesManifest) fails if the two disagree. To change it, edit the manifest and regenerate:

  go test ./internal/capabilities -run TestDocMatchesManifest -update
  

A planned cell is a gap we mean to close; n/a marks a surface excluded by the linked platform decision — e.g. CLI scripting primitives the GUIs express as live state.

Matrix

Legend

StateMeaning
supportedWired end-to-end and usable on this surface.
🚧 plannedNot yet wired on this surface; a gap we intend to close.
n/aDeliberately excluded from this surface by a linked platform decision.

Session lifecycle

CapabilityCLIiOSmacOS
List sessions
Filter and search sessions
Search conversation transcripts 1🚧🚧
Create, update, and filter by session labels
Create session
Stop session
Resume session
Restart session
Delete session (soft)
Restore a soft-deleted session
Purge (hard delete)
Rename session
Update starred state
Fork session
Migrate session to another agent
Set session status summary
Block until a session matches a condition 2
Stream daemon events 3
List available repositories for new sessions

1 Search conversation transcripts: V1 ships the shared daemon query/result model and gr search; native interactive presentation is planned. 2 Block until a session matches a condition: A scripting/automation gate; the GUIs surface live state instead. Platform decision 3 Stream daemon events: A CLI automation stream for supervisors; GUI support can be added if the fleet model needs push updates. Platform decision

Terminal I/O

CapabilityCLIiOSmacOS
Attach to a session PTY
Send input / keystrokes
Resize the terminal
Detach from a session
View logs / scrollback
Render a screen snapshot / preview
Type into another session remotely 1

1 Type into another session remotely: An attached GUI types directly; the standalone remote-type command is a CLI convenience. Platform decision

Pairing

CapabilityCLIiOSmacOS
Request device pairing
List / approve / revoke paired devices 1

1 List / approve / revoke paired devices: Device-list administration is local-user-only and remote-denied. Native apps pair with a daemon but deliberately do not manage its trust list. Platform decision

Messaging

CapabilityCLIiOSmacOS
Send direct messages 1
Read direct-message conversations 2
Publish / subscribe to messaging topics 3
Inspect / release jailed PR comments 4

1 Send direct messages: Native apps compose a direct message to a session’s inbox from the session context menu. 2 Read direct-message conversations: Native apps show a session’s direct-message conversation with mark-as-read. 3 Publish / subscribe to messaging topics: Topics are an agent and orchestrator coordination primitive rather than a native user-chat surface. Platform decision 4 Inspect / release jailed PR comments: Quarantined PR comments are an untrusted-input moderation workflow kept in the CLI. Platform decision

Scenarios

CapabilityCLIiOSmacOS
Start / stop / resume / inspect scenarios 1
Completion actions and lifecycle cleanup 2
Declare and publish scenario results 3
Scenario timeout, retry & quorum policy 4

1 Start / stop / resume / inspect scenarios: Scenarios are operated through the CLI and orchestrator. Native apps show scenario-created sessions as ordinary sessions without scenario grouping or lifecycle controls. Platform decision 2 Completion actions and lifecycle cleanup: Scenario TOML and the CLI expose completion actions and cleanup state; native GUI presentation is deliberately excluded. Platform decision 3 Declare and publish scenario results: The CLI declares result contracts and reports durable publication state; native GUI publication and result-detail presentation are deliberately excluded. Platform decision 4 Scenario timeout, retry & quorum policy: Scenario runtime policies are CLI/daemon-only; iOS and macOS do not model or surface policy state. Platform decision

Todo list

CapabilityCLIiOSmacOS
Manage todo items 1
View todo lists and progress 2🚧🚧

1 Manage todo items: Add, claim, assign, transition, and remove are agent/orchestrator operations; native apps deliberately do not edit todo state. Platform decision 2 View todo lists and progress: A read-only native overview is in scope; todo mutation remains CLI/orchestrator-only.

Triggers

CapabilityCLIiOSmacOS
List / status / run / pause / resume triggers 1

1 List / status / run / pause / resume triggers: Trigger lifecycle is an automation control plane kept in the CLI and orchestrator. Platform decision

Document store

CapabilityCLIiOSmacOS
Put / append / remove documents 1
Browse and read documents (list keys, view a document body)

1 Put / append / remove documents: Document mutation is an agent and scripting primitive; native apps retain the separate read-only browser. Platform decision

Notifications

CapabilityCLIiOSmacOS
Send a desktop / push notification to the user 1

1 Send a desktop / push notification to the user: Agents and scripts send notifications; native apps are notification recipients and presenters. Platform decision

Sandbox introspection

CapabilityCLIiOSmacOS
Explain / watch sandbox policy and denials 1

1 Explain / watch sandbox policy and denials: Sandbox explain/watch output is diagnostic and streaming, making the terminal its natural interface. Platform decision

Diagnostics

CapabilityCLIiOSmacOS
List configured agents and provider info 1
View effective config + diff-vs-defaults
Health check / doctor diagnostics (orphan GC stays CLI-only)

1 List configured agents and provider info: Provider info probes execute configured agent CLIs in the daemon/provider environment for agent and scripting workflows; native apps use catalog data for session creation instead. Platform decision