IAM.Agent: native mobile companions

Set up the separate Community or Enterprise companion, inspect files locally and review cloud actions.

Choose the correct application

The new MIT companion has two separate application identities: Community ru.iamgroup.agent.community and Enterprise ru.iamgroup.agent.enterprise. They share service and approval contracts and have different layouts. Community displays based on deepseek-harness. Obtain the reviewed development build from the developer; these instructions do not announce an App Store or Google Play release.

The earlier mobile candidate belongs to the desktop project. Its screenshots and receipts do not qualify this new companion. Current new-companion checks use an iOS Simulator and an owned Android Emulator. Physical devices, production signing, store distribution and complete desktop feature parity require separate qualification.

Connect your services

  1. Open Settings and select the service. Enter its administrator-provided HTTPS endpoint, existing credential and service-specific tenant, then Save connection.
  2. Marketplace uses an origin without a path. Core and Mind use their actual MCP path; Router uses its API prefix. A Core/Speech tenant and a Marketplace tenant are independent bindings.
  3. In Services, select Discover capabilities. Inspect the actual authorized tool schemas or Router model response. The number of tools can change; discovery does not prove that every operation is permitted or works.

Credentials remain write-only in the interface. iOS protects a random encryption key in ThisDeviceOnly Keychain storage; Android uses a nonexportable AndroidKeyStore key and private no-backup ciphertext. A development emulator does not establish hardware-backed custody. If the OS vault is unavailable, storage fails closed.

Replacing a connection creates a new local account binding. Earlier receipts do not appear under that new binding. Remove local credential clears the device’s copy; server-side key or session revocation is a separate action in its owning IAM service.

Review a cloud task

  1. In Tasks, press List my agents, select an installed agent and enter Task and Reason.
  2. Press Prepare review and inspect the exact persisted operation. Click Approve and send once, then approve in the native dialog only when the account, destination and task are correct. Preparation alone does not invoke the agent or open that dialog.
  3. Follow Refresh exact run using the known remote identifier. Reopen the encrypted receipt after an application restart without submitting again.
  4. To cancel, use Check cancellation support. Only an available exact-run capability permits Prepare cancellation review. Review the reason, click Approve and send once, then approve the separate native operation once.

A cancel_requested response is an acknowledgement. Refresh the original run until the authenticated host transcript confirms its outcome. A terminal aborted result with explicit host confirmation can establish stop; earlier external effects are not reversed. Backgrounding rejects a pending approval. Suspend, closing the app or stopping local waiting does not establish cloud cancellation. An unknown request never regains a Send action or automatically retries.

Native Enterprise on iOS Simulator: the host confirmed cancellation of one exact synthetic task.
Native Enterprise on iOS Simulator: the host confirmed cancellation of one exact synthetic task.
2026-10-16 · Original capture of the separate new MIT companion on Simulator/Emulator using owned synthetic data only. It is not the legacy desktop mobile candidate or physical-device qualification.
  1. Host cancellation confirmation
  2. Refresh exact run

This original Enterprise iOS Simulator capture follows a real staging invocation and a separate once-approved cancellation. The host’s exact transcript confirms the synthetic run stopped. Other edition/platform cells have their own acceptance requirements; this single example does not qualify all four builds.

Inspect a file on the device

  1. Open Files → Choose a document, image or WAV. Choose an owned file up to 8 MiB, then Inspect locally.
  2. Inspect the filename, byte size, SHA256, extracted text, limitations and rendered pages. Office XML inspection does not execute macros, follow external relationships, recalculate spreadsheets or establish page-layout fidelity.
  3. Native PDF processing renders actual page PNGs, at most six pages from a document of at most twenty pages. Text extraction depends on the reported platform capability. iOS Vision recognizes images; Android includes ML Kit’s offline Latin recognizer. Review OCR output; Cyrillic Android OCR and general recognition accuracy are unqualified.
Native Community on Android Emulator: offline recognition of a synthetic PNG using bundled ML Kit.
Native Community on Android Emulator: offline recognition of a synthetic PNG using bundled ML Kit.
2026-10-16 · Original capture of the separate new MIT companion on Simulator/Emulator using owned synthetic data only. It is not the legacy desktop mobile candidate or physical-device qualification.
  1. Explicit cloud review actions
  2. Actual recognized text and UUID
  3. Files

The original Community Android Emulator capture shows actual local OCR of a synthetic PNG, including text and its complete evidence UUID. The cloud review buttons are separate actions; local inspection does not upload the file.

Send a separately reviewed service operation

Review in IAM.Speech fills the advertised WAV arguments. Click Prepare tool review; inspect the original filename, decoded byte count and SHA256 in the saved review. Click Approve and send once, then confirm the native dialog to upload. After a successful response, Use transcript as unsent task saves the text in the encrypted draft and fills the composer. Inspect it before sending. Saved service calls → Reload local service receipts reopens the same receipt without repeating recognition. Existing live ASR qualification used an owned WAV file; it does not qualify hardware microphone capture.

Candidate: a short foreground voice recording

In the next development candidate of either edition, open Files → Record a voice draft. Click Start recording and answer the normal OS microphone permission prompt. Click Stop recording to obtain and play the local WAV. Native capture is limited to fifteen seconds: mono 16 kHz / 16-bit PCM, at most 480000 PCM bytes and 480044 WAV bytes. The app shows its duration and fingerprint; the exact capture UUID and actual WAV SHA256 participate in the later sharing review. No temporary or plaintext recording file is created.

Discard recording removes the local preview. If the OS permission dialog closes before the app is active again, that attempt is cancelled and releases only its reservation. Return to the app and explicitly select Start recording again; recording never resumes automatically. Wait for native cleanup before starting another capture. If cleanup is unconfirmed, select Discard recording again; Start stays blocked until the reader is confirmed stopped. Backgrounding, native suspension or Suspend stops capture and discards late results; returning never resumes it. If permission is denied or the microphone fails, resolve the normal OS app permission or device issue and explicitly start a new recording. An already prepared encrypted Speech operation and its receipt are separate; discarding the preview does not delete them.

Recording never invokes ASR. Choose Review in IAM.Speech → Prepare tool review, inspect the exact operation, then confirm Approve and send once in the separate native dialog. After the response, use Use transcript as unsent task; nothing is automatically sent to an agent. The WAV stays in memory until explicit preparation uses the existing protected operation store without plaintext fallback. Native source/unit fixtures, development builds, actual OS permission acceptance, hardware speech and ASR of microphone-produced audio are separate qualification gates; background recording is unavailable.

iOS Simulator: local recording discarded; a new Start requires an explicit action
iOS Simulator: local recording discarded; a new Start requires an explicit action
2026-10-16 · Actual Community R8 in iPhone 16 Pro Simulator / iOS 18.6. With previously granted permission, explicit Start, the native 15 second limit, Stop and a local 15000 ms WAV were checked; Discard removed the preview. This frame shows the final state. Audio was not played, written to a file or sent to Speech/an agent; acoustic quality and physical microphone capture are unqualified.
  1. Explicitly start a new recording
  2. Local recording discarded

This actual Community R8 development build ran in iPhone 16 Pro Simulator / iOS 18.6. With an existing OS permission, explicit Start reached the native fifteen second limit; Stop produced a local WAV with a duration of 15000 ms. Discard then removed the player and re-enabled Start, as shown. The recording was not played, saved as a raw audio file, uploaded or transcribed. This verifies that local Simulator path only; first permission return on R8, the other three microphone UI variants, physical microphone quality and recognition require separate checks.

Review upload to IAM.Docs prepares a new document and processing request when the advertised schema supports them. Cloud inline attachments are limited to 600 KiB, separately from local inspection’s 8 MiB. An accepted upload is not completed ingestion: inspect the exact returned document’s later status and complete readback. For immutable versions, use only the advertised identifiers, saved request UUID and reviewed binary head; never replay an unknown write.

In Services, select another advertised tool, enter its exact structured arguments and use Prepare tool review, inspect the saved operation, then click Approve and send once to open native approval. The server still enforces the account’s scopes and tenant. Publishing a Voice project does not activate a campaign. A Router policy refusal stops that operation without selecting an alternate provider. Remote tool text is untrusted data and cannot authorize another action.

For expired credentials, use Settings to restore an authorized connection before preparing a new operation. For quota refusal, inspect the existing receipt and ask an administrator to review the permitted quota. For missing tools, verify endpoint, environment, roles and advertised schemas; do not invent a service path or treat a service name as a working capability.