# API reference ## Session D-Bus Bus name: `io.qvac.Jarvis` Object path: `/io/qvac/Jarvis` Interface: `io.qvac.Jarvis.Session` The canonical XML contract is [io.qvac.Jarvis.Session.xml](../dbus/io.qvac.Jarvis.Session.xml). | Method | Purpose | | --- | --- | | `Arm()` / `Sleep()` / `Shutdown()` | Control daemon voice lifecycle | | `PushToTalk(bool)` | Begin/end typed or microphone turn | | `Say(string)` | Speak text through local TTS | | `Ask(string)` | Submit typed text to the harness | | `Cancel()` | Cancel active request/job | | `SetMode(string)` | Set ARC capability mode | | `GetState()` | Return serialized daemon state | | `EnrollWake(string)` | Configure wake phrase | | `IngestPath(string)` | Add a local path to RAG ingestion | | `ComputerGrant(bool)` / `ComputerRevoke()` | Start/stop computer-use grant | | `ComputerStatus()` | Return computer-use status JSON | | `ShellListWindows()` / `ShellFocusWindow(uint64)` | Query/focus Shell windows | Signals include `StateChanged`, `WakeHeard`, `PartialTranscript`, `FinalTranscript`, `Token`, `Reply`, `SpeakingLevel`, `ListeningLevel`, `ChipOffered`, `JobProgress`, `ComputerStep`, `ComputerHighlight`, and `Error`. Payloads stay small; PCM and image bytes do not travel over D-Bus. ## Computer-use tools Tools are registered with the harness and exposed through the daemon. The observable contract includes `cu.grant`, `cu.revoke`, `cu.status`, `cu.observe`, `cu.zoom`, `cu.tree`, `cu.find`, `cu.click`, `cu.drag`, `cu.scroll`, `cu.type`, `cu.key`, and `cu.act`. Every action is checked against the active grant and safety policy. ## Local HTTP QVAC's optional OpenAI-compatible server is localhost-only at port `11434`. It is a diagnostic surface, not a second Jarvis runtime. Native QVAC-only operations use `/qvac/v1/*` where supported by the installed QVAC version.