# Quickstart

Learn how to spin up the local Kameleo CLI, connect via an SDK, search a fingerprint, then create, start, automate, and stop a reusable profile. Core automation examples (Selenium, Puppeteer, Playwright) show how to drive the running profile immediately.

# 1. Start Kameleo CLI

Ensure the Kameleo CLI is installed and running (see Installation). When started locally, it serves its API at http://localhost:5050 by default.

# 2. Install an SDK

Kameleo components and SDKs follow semantic versioning (major.minor.patch). For the most reliable experience, install SDK versions whose major and minor match your running Kameleo CLI version.

Select one of the language SDKs below to get started:

pip install kameleo.local-api-client

For more details see our package at PyPI.org.

npm i @kameleo/local-api-client

For more details see our package at npmjs.com.

dotnet add package Kameleo.LocalApiClient

For more details see our package at NuGet.org.

# 3. Create a client

Create a client instance pointed at the local endpoint. All SDKs expose the same operations.

from kameleo.local_api_client import KameleoLocalApiClient
client = KameleoLocalApiClient(endpoint='http://localhost:5050')
import { KameleoLocalApiClient } from "@kameleo/local-api-client";
const client = new KameleoLocalApiClient({ basePath: "http://localhost:5050" });
using Kameleo.LocalApiClient;
var client = new KameleoLocalApiClient(new Uri("http://localhost:5050"));

# 4. Search a fingerprint

Search for a fingerprint matching the desired device type, operating system, browser, and version. You can filter versions with operators like >, >=, or <. Each result set returns a maximum of 25 fingerprints, ordered by browser version in descending order.

fps = client.fingerprint.search_fingerprints(device_type='desktop', platform='windows', browser_product='chrome', browser_version='>137')
const fps = await client.fingerprint.searchFingerprints("desktop", "windows", "chrome", ">137");
var fps = await client.Fingerprint.SearchFingerprintsAsync("desktop", "windows", "chrome", ">137");

# 5. Create profile

Create a profile from that fingerprint with a given name. Proxy, storage settings and other options are optional and skipped here.

from kameleo.local_api_client.models import CreateProfileRequest
profile = client.profile.create_profile(CreateProfileRequest(fingerprint_id=fps[0].id, name='quick demo'))
const profile = await client.profile.createProfile({ fingerprintId: fps[0].id, name: "quick demo" });
using Kameleo.LocalApiClient.Model;
var profile = await client.Profile.CreateProfileAsync(new CreateProfileRequest(fps[0].Id){ Name = "quick demo"});

# 6. Start profile

Start the profile. Missing kernel files download automatically and a browser opens for automation.

client.profile.start_profile(profile.id)
await client.profile.startProfile(profile.id);
await client.Profile.StartProfileAsync(profile.Id);

# Next steps

Continue by automating the running profile using one of these guides: