Agent-readable docs index: /docs/llms.txt. Full docs in one file: /docs/llms-full.txt. Download /docs/docs.zip to grep all markdown files locally.

Quickstart

  1. Authorize the CLI
    Run the initializer from your application repository. It opens a browser for human authorization, creates an API key, writes it to .env.local, and installs the SDK.
    bash
    npx @inkibra/voice-cli init
  2. Create a short-lived session token
    Call the session endpoint from server-side code only.
    ts
    const response = await fetch( "https://inkibra-voice.inkibra.workers.dev/v1/sessions", { method: "POST", headers: { authorization: `Bearer ${process.env.INKIBRA_API_KEY}`, "content-type": "application/json", }, body: JSON.stringify({ voice: "ara" }), }, ); const { token } = await response.json();
  3. Connect in the browser
    ts
    import LiveVoice from "@inkibra/voice-sdk"; const session = await LiveVoice.connect({ token, prompt: "Help the user complete a safety inspection.", conversation: { starts: "assistant", prompt: "Be concise. Clarify uncertain details before continuing.", }, tools: {}, });
  4. Subscribe to events
    ts
    session.on("transcript.instantaneous", ({ text }) => updateOptimisticUI(text)); session.on("transcript.canonical", ({ turns }) => saveConversationView(turns)); session.on("floor", ({ owner, assistantAudible }) => updateVoiceUI(owner, assistantAudible)); session.on("phase", ({ phase }) => updateWorkflow(phase)); session.on("error", console.error);
  5. Clean up
    ts
    session.stop(); session.dispose();
voice selects how the agent sounds. prompt describes the job. conversation describes how the exchange should flow. See Voice, Prompts, and Conversation design.