Ikon SDK for Dart & Flutter

ikon_sdk is the official client SDK for building native Flutter frontends for Ikon AI apps. It connects to an Ikon server, streams the server-driven Parallax UI tree over the binary Ikon protocol, and renders it as native Flutter widgets — including the platform's own audio streaming, image capture and push-to-talk.

Install

flutter pub add ikon_sdk

Quickstart

Connect to a server, wrap the connection in an IkonUiCore, and render it with IkonParallaxView:

import 'package:flutter/material.dart';
import 'package:ikon_sdk/ikon_sdk.dart';

class IkonScreen extends StatefulWidget {
  const IkonScreen({super.key});

  @override
  State<IkonScreen> createState() => _IkonScreenState();
}

class _IkonScreenState extends State<IkonScreen> {
  IkonClient? _client;
  IkonUiCore? _uiCore;

  @override
  void initState() {
    super.initState();
    _connect();
  }

  Future<void> _connect() async {
    // Local dev server (auto-authenticates).
    final client = await IkonClient.connectLocal(host: 'localhost', port: 8443);
    setState(() {
      _client = client;
      _uiCore = IkonUiCore(client);
    });
  }

  @override
  void dispose() {
    _uiCore?.dispose();
    _client?.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    final uiCore = _uiCore;
    if (uiCore == null) {
      return const Center(child: CircularProgressIndicator());
    }
    return IkonParallaxView(uiCore: uiCore, client: _client);
  }
}

Connecting

IkonClient exposes three connection entry points:

  • IkonClient.connectLocal(...) — local development server, no identity needed.
  • IkonClient.connectGuest(...) — anonymous connection to a deployed space.
  • IkonClient.connectWithToken(...) — authenticated connection with an OAuth / session token.

Subscribe to client.onStateChange (an IkonConnectionState stream) to drive your connecting / connected / error UI.

Highlights

  • IkonClient — connection, the binary protocol, function registry, reactive state and global state.
  • IkonParallaxView — renders the server-driven Parallax UI as Flutter widgets; supports named mounts via the mount parameter.
  • IkonMediaManager — the platform's own audio streaming (Opus playback and capture over the Ikon protocol), image capture and sharing.

License

MIT — see LICENSE.