# Quick Start

> Overview of each Cephable integration path — embed a private on-device personal assistant in web and .NET apps, or add accessible adaptive controls to your game.

Source: https://developers.cephable.com/docs/getting-started/quick-start

---
This guide helps you choose the right integration path and points you to the right sample code.

## Step 1: Start a free trial

Sign up for a **free 30-day developer trial** at [services.cephable.com/trial/developers](https://services.cephable.com/trial/developers) — no credit card required. You will receive:

- **OAuth Client ID**
- **OAuth Client Secret**
- **Device Type ID**

Then sign in to [portal.cephable.com](https://portal.cephable.com) to manage your project. After your trial, [contact Cephable](mailto:support@cephable.com) to arrange a permanent license.

## Step 2: Choose your integration path

### Web / JavaScript (Browser)

Embed Cephable's personal assistant into your web app — users interact hands-free through voice and facial expressions, all processed on their own device. The complete working sample is at [`src/browser/`](https://github.com/Cephable/Cephable-VirtualController-Sample/tree/main/src/browser):

```bash
git clone https://github.com/Cephable/Cephable-VirtualController-Sample
cd Cephable-VirtualController-Sample/src/browser
npm run start
```

Open [http://localhost:3000](http://localhost:3000), enter your Client ID, sign in, and commands will appear in the browser console.

→ [Web Overview](/docs/web-sdk/overview) | [Web Quick Start](/docs/web-sdk/quick-start)

### C# / WPF (Windows apps)

Embed Cephable's personal assistant directly into your WPF app — private, on-device voice and gesture controls with no data sent to external services. Install the [`Cephable.WPF`](https://www.nuget.org/packages/Cephable.WPF/) NuGet package and initialize the service:

```bash
dotnet add package Cephable.WPF
```

```csharp
var wpfCephableService = WpfCephableService.CreateCephableService();

var config = new CephableConfiguration
{
    AuthConfiguration = new AuthConfiguration
    {
        ClientId = "YOUR_CLIENT_ID",
        ClientSecret = "YOUR_CLIENT_SECRET"
    },
    DeviceTypeId = "YOUR_DEVICE_TYPE_ID",
    DeviceName = "My App",
    EnableAutomaticProfileSwitching = true
};

await wpfCephableService.InitializeWithUserAsync(config, forceNewUser: false);
```

→ [.NET Overview](/docs/dotnet-sdk/overview) | [.NET Quick Start](/docs/dotnet-sdk/quick-start)

### Unity (Accessible gaming with adaptive controls)

Add Cephable's personal assistant adaptive controls to your Unity game, making it accessible for players with motor or physical disabilities. Clone the Unity FPS sample and open it in Unity:

```bash
git clone https://github.com/Cephable/Cephable-Unity-Samples
```

Open `FPS_Full/` in Unity 2022.3 LTS or later. Configure `DeviceTypeId` and OAuth credentials on the `OAuth2Manager` and `VirtualController` GameObjects, then press Play.

The key scripts are in `Assets/FPS/Scripts/EnabledPlay/`:
- `OAuth2Manager.cs` — handles OAuth flow
- `VirtualController.cs` — creates device, connects to hub, receives commands

```csharp
// From VirtualController.cs (official sample)
connection.On<string>("DeviceCommand", (command) =>
{
    if (command == "jump" || command == "hotkey_jump" || command == "eyebrows_raised")
    {
        inputHandler.isJumping = true;
    }
    if (command == "fire")
    {
        inputHandler.isShooting = true;
    }
    StartCoroutine(ResetKeys());
});
```

→ [Unity Integration](/docs/game-integrations/unity)

### C++ (Accessible gaming with adaptive controls)

The C++ sample does end-to-end OAuth via a localhost callback and connects to the Device Hub using a WebSocket client, enabling adaptive controls for games built with C++. Dependencies: `cpprest` + `signalr-client-cpp`.

→ [Virtual Controller Integration](/docs/game-integrations/virtual-controller#c-integration)

### Any language (Drive the on-device AI agent over HTTP)

A different kind of integration: instead of embedding adaptive controls, drive Cephable's **on-device AI agent** from your own program. The Cephable desktop app exposes an opt-in local API, so anything that can make an HTTP request can hand the agent a task — and hand it your own tools to use. Inference and tool execution stay on the device.

Requires a **Cephable Professional** account, and the server enabled in **Extensions → Cephable features → Build & Extend**.

```bash
git clone https://github.com/Cephable/Cephable-Automate-Agent-Samples
```

Four runnable applications: a Python/LangChain agent with custom tools, a WinUI app pairing Cephable with Windows' own on-device AI, a Next.js chat UI on the Vercel AI SDK, and a hardened gateway for exposing one machine remotely. The repo also ships a fake server so you can build against the protocol before you have a licence.

→ [Automate HTTP Server](/docs/automate-http-server) | [Quick start](/docs/automate-http-server/quick-start) | [Samples](/docs/automate-http-server/samples)

## Step 3: Test with the Cephable app

1. Install the **Cephable app** from [cephable.com/download](https://cephable.com/download) — this is the on-device engine that processes all camera and voice input privately
2. Your app creates a virtual device after the user authenticates
3. Open the Cephable app — the virtual device will appear
4. Add a control profile or use the [demo share link](https://share.cephable.com/profileshare/copy/YzJjNGMwZWYtNzY5MS00MzM2LWE2ZGEtNmFmODgyNGUwOWZiLWQxMDRjYzc5LWJlMDQtNDcyNi1iYmVkLTM5OWRkMzUxZTI1Mw)
5. Send a command from virtual buttons, voice, or camera controls — the Cephable app processes it on-device and your app will receive only the command string

## Step 4: Explore the API

Use the [Swagger UI](https://services.cephable.com/swagger) to explore all available endpoints and test API calls interactively.

## Next steps

- [Web Overview](/docs/web-sdk/overview)
- [.NET Overview](/docs/dotnet-sdk/overview)
- [API Reference](/docs/api-reference/overview)
- [Swagger UI](https://services.cephable.com/swagger)
