# Tabs ## List `computers.tabs.list(strid) -> ActionResult` **get** `/computers/{id}/tabs` Get a list of open tabs with IDs, URLs, titles, and main tab status (browser sessions only). Includes external CDP pages (e.g., Playwright). Excludes devtools:// and chrome:// tabs. Results may be eventually consistent for newly created tabs. ### Parameters - `id: str` ### Returns - `class ActionResult: …` - `error_message: Optional[str]` - `executed_tab_id: Optional[str]` - `page_context: Optional[V2GoBackendInternalTypesPageContext]` - `device_scale_factor: Optional[float]` - `is_main_tab: Optional[bool]` - `page_height: Optional[int]` - `page_width: Optional[int]` - `scroll_x: Optional[float]` - `scroll_y: Optional[float]` - `tab_id: Optional[str]` - `title: Optional[str]` - `url: Optional[str]` - `viewport_height: Optional[int]` - `viewport_width: Optional[int]` - `request_id: Optional[str]` - `result: Optional[Dict[str, object]]` - `status: Optional[str]` - `timestamp: Optional[str]` ### Example ```python import os from tzafon import Lightcone client = Lightcone( api_key=os.environ.get("TZAFON_API_KEY"), # This is the default and can be omitted ) action_result = client.computers.tabs.list( "id", ) print(action_result.executed_tab_id) ``` ## Create `computers.tabs.create(strid, TabCreateParams**kwargs) -> ActionResult` **post** `/computers/{id}/tabs` Create a new tab, optionally navigating to a URL. The new tab becomes the main tab (browser sessions only). ### Parameters - `id: str` - `url: Optional[str]` ### Returns - `class ActionResult: …` - `error_message: Optional[str]` - `executed_tab_id: Optional[str]` - `page_context: Optional[V2GoBackendInternalTypesPageContext]` - `device_scale_factor: Optional[float]` - `is_main_tab: Optional[bool]` - `page_height: Optional[int]` - `page_width: Optional[int]` - `scroll_x: Optional[float]` - `scroll_y: Optional[float]` - `tab_id: Optional[str]` - `title: Optional[str]` - `url: Optional[str]` - `viewport_height: Optional[int]` - `viewport_width: Optional[int]` - `request_id: Optional[str]` - `result: Optional[Dict[str, object]]` - `status: Optional[str]` - `timestamp: Optional[str]` ### Example ```python import os from tzafon import Lightcone client = Lightcone( api_key=os.environ.get("TZAFON_API_KEY"), # This is the default and can be omitted ) action_result = client.computers.tabs.create( id="id", ) print(action_result.executed_tab_id) ``` ## Delete `computers.tabs.delete(strtab_id, TabDeleteParams**kwargs) -> ActionResult` **delete** `/computers/{id}/tabs/{tab_id}` Close a specific tab by ID. Cannot close the last remaining tab (browser sessions only). Tab IDs come from ListTabs. ### Parameters - `id: str` - `tab_id: str` ### Returns - `class ActionResult: …` - `error_message: Optional[str]` - `executed_tab_id: Optional[str]` - `page_context: Optional[V2GoBackendInternalTypesPageContext]` - `device_scale_factor: Optional[float]` - `is_main_tab: Optional[bool]` - `page_height: Optional[int]` - `page_width: Optional[int]` - `scroll_x: Optional[float]` - `scroll_y: Optional[float]` - `tab_id: Optional[str]` - `title: Optional[str]` - `url: Optional[str]` - `viewport_height: Optional[int]` - `viewport_width: Optional[int]` - `request_id: Optional[str]` - `result: Optional[Dict[str, object]]` - `status: Optional[str]` - `timestamp: Optional[str]` ### Example ```python import os from tzafon import Lightcone client = Lightcone( api_key=os.environ.get("TZAFON_API_KEY"), # This is the default and can be omitted ) action_result = client.computers.tabs.delete( tab_id="tab_id", id="id", ) print(action_result.executed_tab_id) ``` ## Switch `computers.tabs.switch(strtab_id, TabSwitchParams**kwargs) -> ActionResult` **post** `/computers/{id}/tabs/{tab_id}/switch` Switch the main/active tab to a different tab by ID (browser sessions only). Tab IDs come from ListTabs. ### Parameters - `id: str` - `tab_id: str` ### Returns - `class ActionResult: …` - `error_message: Optional[str]` - `executed_tab_id: Optional[str]` - `page_context: Optional[V2GoBackendInternalTypesPageContext]` - `device_scale_factor: Optional[float]` - `is_main_tab: Optional[bool]` - `page_height: Optional[int]` - `page_width: Optional[int]` - `scroll_x: Optional[float]` - `scroll_y: Optional[float]` - `tab_id: Optional[str]` - `title: Optional[str]` - `url: Optional[str]` - `viewport_height: Optional[int]` - `viewport_width: Optional[int]` - `request_id: Optional[str]` - `result: Optional[Dict[str, object]]` - `status: Optional[str]` - `timestamp: Optional[str]` ### Example ```python import os from tzafon import Lightcone client = Lightcone( api_key=os.environ.get("TZAFON_API_KEY"), # This is the default and can be omitted ) action_result = client.computers.tabs.switch( tab_id="tab_id", id="id", ) print(action_result.executed_tab_id) ```