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

# Quickstart

> Cuehand allows you to build web automations with natural language and code.

Let's get you up and running with Cuehand in 60 seconds.
It is important to note that Cuehand uses **Gemini** as the default model for AI interactions.
You can use any other model supported by the [Vercel AI SDK](https://ai-sdk.dev/docs/introduction).

<Steps>
  <Step title="Create a sample project">
    Here we use the Cuehand CLI to create a sample project. For this guide just press `Enter` on your keyboard
    for all options to accept the defaults. If you want to learn more about the CLI, see the [CLI](/more-information/cli) page.

    ```bash theme={"theme":"vesper"}
    npx create-cuehand .
    ```
  </Step>

  <Step title="Add your API key">
    1. Navigate to the [Google AI Studio](https://aistudio.google.com/api-keys).
    2. Copy your API key.
    3. Paste your Google AI API key into your `.env` file.

    ```bash .env theme={"theme":"vesper"}
    GOOGLE_GENERATIVE_AI_API_KEY="your-api-key"
    ```
  </Step>

  <Step title="Use Cuehand (act, extract, observe)">
    The scaffold includes an index.ts file that contains basic Cuehand code. Here's what it looks like:

    ```typescript index.ts expandable lines wrap theme={"theme":"vesper"}
    import { Cuehand } from "cuehand";
    import { z } from "zod";

    async function main() {
      const cuehand = new Cuehand({
        type: "LOCAL",
        model: "google/gemini-2.5-flash",
      });

      await cuehand.init();

      await cuehand.goto("https://ollama.com/");

      const [action] = await cuehand.observe(
        "click the search bar at the top"
      );

      if (action) {
        await cuehand.act(action);
      };

      await cuehand.act("type 'gemini' into the search bar");

      await cuehand.act("press enter");

      await cuehand.wait(2);

      await cuehand.act("click the first result that shows up");

      const model = await cuehand.extract("get the model details",
        z.object({
          model: z.string().describe("the exact model name"),
          description: z.string().describe("the model description"),
          download: z.number().describe("the number of downloads"),
        })
      );

      console.log("Model: ", model);

      await cuehand.wait(10);

      await cuehand.close();
    }

    main();
    ```
  </Step>

  <Step title="Finally, run it">
    Run the project using the following command:

    ```bash theme={"theme":"vesper"}
    npm start
    ```
  </Step>
</Steps>

That's it! You have successfully created and run your first Cuehand project. 🎉
