> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hopx.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Clipboard Operations

> Read and write clipboard content in sandbox desktop environments in HopX. Access and manipulate clipboard contents for data transfer, copy-paste operations, and desktop automation workflows. Learn how to read and write clipboard data using Python and JavaScript SDKs or REST API. Includes examples for clipboard automation.

Read and write clipboard content for desktop automation. Clipboard operations enable copying and pasting data between applications.

## Overview

Clipboard operations enable:

* Reading clipboard content
* Setting clipboard content
* Accessing clipboard history
* Copying data between applications

<Note>
  Desktop automation requires a template with desktop support. Ensure your sandbox has desktop capabilities enabled.
</Note>

## Getting Clipboard Content

Read the current clipboard content:

<Tabs>
  <Tab title="Python">
    ```python theme={null}
    from hopx_ai import Sandbox

    sandbox = Sandbox.create(template="desktop")

    # Get clipboard content
    text = sandbox.desktop.get_clipboard()
    print(f"Clipboard: {text}")
    ```
  </Tab>

  <Tab title="JavaScript">
    ```javascript theme={null}
    import { Sandbox } from '@hopx-ai/sdk';

    const sandbox = await Sandbox.create({ template: 'desktop' });

    // Get clipboard content
    const text = await sandbox.desktop.getClipboard();
    console.log(`Clipboard: ${text}`);
    ```
  </Tab>
</Tabs>

## Setting Clipboard Content

Set clipboard content:

<Tabs>
  <Tab title="Python">
    ```python theme={null}
    # Set clipboard content
    sandbox.desktop.set_clipboard("Hello from clipboard!")

    # Verify
    text = sandbox.desktop.get_clipboard()
    print(text)  # "Hello from clipboard!"
    ```
  </Tab>

  <Tab title="JavaScript">
    ```javascript theme={null}
    // Set clipboard content
    await sandbox.desktop.setClipboard('Hello from clipboard!');

    // Verify
    const text = await sandbox.desktop.getClipboard();
    console.log(text);  // "Hello from clipboard!"
    ```
  </Tab>
</Tabs>

## Clipboard History

Get clipboard history (if supported):

<Tabs>
  <Tab title="Python">
    ```python theme={null}
    # Get clipboard history
    history = sandbox.desktop.get_clipboard_history()

    for item in history:
        print(f"History item: {item}")
    ```
  </Tab>

  <Tab title="JavaScript">
    ```javascript theme={null}
    // Get clipboard history
    const history = await sandbox.desktop.getClipboardHistory();

    history.forEach(item => {
      console.log(`History item: ${item}`);
    });
    ```
  </Tab>
</Tabs>

## Copy-Paste Workflow

Complete copy-paste automation:

<Tabs>
  <Tab title="Python">
    ```python theme={null}
    from hopx_ai import Sandbox

    sandbox = Sandbox.create(template="desktop")

    try:
        # Select text (using mouse/keyboard)
        sandbox.desktop.click(100, 100)
        sandbox.desktop.drag(100, 100, 300, 100)
        
        # Copy (Ctrl+C)
        sandbox.desktop.combination(['ctrl'], 'c')
        
        # Get copied text
        copied_text = sandbox.desktop.get_clipboard()
        print(f"Copied: {copied_text}")
        
        # Click elsewhere
        sandbox.desktop.click(500, 300)
        
        # Paste (Ctrl+V)
        sandbox.desktop.combination(['ctrl'], 'v')
        
    finally:
        sandbox.kill()
    ```
  </Tab>

  <Tab title="JavaScript">
    ```javascript theme={null}
    import { Sandbox } from '@hopx-ai/sdk';

    const sandbox = await Sandbox.create({ template: 'desktop' });

    try {
      // Select text (using mouse/keyboard)
      await sandbox.desktop.mouseClick(100, 100);
      await sandbox.desktop.mouseDrag(100, 100, 300, 100);
      
      // Copy (Ctrl+C)
      await sandbox.desktop.keyboardCombination(['ctrl', 'c']);
      
      // Get copied text
      const copiedText = await sandbox.desktop.getClipboard();
      console.log(`Copied: ${copiedText}`);
      
      // Click elsewhere
      await sandbox.desktop.mouseClick(500, 300);
      
      // Paste (Ctrl+V)
      await sandbox.desktop.keyboardCombination(['ctrl', 'v']);
      
    } finally {
      await sandbox.kill();
    }
    ```
  </Tab>
</Tabs>

## Programmatic Copy-Paste

Set clipboard programmatically and paste:

<Tabs>
  <Tab title="Python">
    ```python theme={null}
    # Set clipboard programmatically
    sandbox.desktop.set_clipboard("Programmatic clipboard content")

    # Click in target application
    sandbox.desktop.click(400, 300)

    # Paste
    sandbox.desktop.combination(['ctrl'], 'v')
    ```
  </Tab>

  <Tab title="JavaScript">
    ```javascript theme={null}
    // Set clipboard programmatically
    await sandbox.desktop.setClipboard('Programmatic clipboard content');

    // Click in target application
    await sandbox.desktop.mouseClick(400, 300);

    // Paste
    await sandbox.desktop.keyboardCombination(['ctrl', 'v']);
    ```
  </Tab>
</Tabs>

## Related

* [Keyboard Control](/core-concepts/desktop/keyboard-control) - Keyboard shortcuts for copy/paste
* [CLI Reference](/cli/introduction) - Command-line interface for HopX
* [Mouse Control](/core-concepts/desktop/mouse-control) - Mouse operations for selection
* **SDK**: [sandbox.desktop.get\_clipboard()](/sdk/python/desktop#get_clipboard) - Python SDK method

## Next Steps

* Learn about [Keyboard Control](/core-concepts/desktop/keyboard-control) for copy/paste shortcuts
* Explore [Mouse Control](/core-concepts/desktop/mouse-control) for selection operations
* Review [VNC Server](/core-concepts/desktop/vnc-server) for remote desktop access
