# Client ## Focus `$client->focus(?string chatID, ?string draftAttachmentPath, ?string draftText, ?string messageID): BeeperDesktopClientServiceFocusResponse` **post** `/v1/focus` Focus Beeper Desktop and optionally navigate to a specific chat, message, or pre-fill draft text and attachment. ### Parameters - `chatID?:optional string` Optional Beeper chat ID (or local chat ID) to focus after opening the app. If omitted, only opens/focuses the app. - `draftAttachmentPath?:optional string` Optional draft attachment path to populate in the message input field. - `draftText?:optional string` Optional draft text to populate in the message input field. - `messageID?:optional string` Optional message ID. Jumps to that message in the chat when opening. ### Returns - `BeeperDesktopClientServiceFocusResponse` - `bool success` Whether the app was successfully opened/focused. ### Example ```php focus( chatID: '!NCdzlIaMjZUmvmvyHU:beeper.com', draftAttachmentPath: 'draftAttachmentPath', draftText: 'draftText', messageID: 'messageID', ); var_dump($response); ``` ## Search `$client->search(string query): BeeperDesktopClientServiceSearchResponse` **get** `/v1/search` Returns matching chats, participant name matches in groups, and the first page of messages in one call. Paginate messages via search-messages. Paginate chats via search-chats. ### Parameters - `query: string` User-typed search text. Literal word matching (non-semantic). ### Returns - `BeeperDesktopClientServiceSearchResponse` - `Results results` ### Example ```php search(query: 'x'); var_dump($response); ```