Kairos ConnectKairos Connect

One workspace for your entire team. Tasks, docs, chat, and AI — all connected.

Product

  • Features
  • Pricing
  • API
  • Changelog

Solutions

  • Enterprise
  • Startups
  • Agencies

Company

  • About Us
  • Careers
  • Blog
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  • Security
Kairos ConnectKairos Connect

One workspace. Zero app switching.

Product
  • Features
  • Pricing
  • API
  • Changelog
Solutions
  • Enterprise
  • Startups
  • Agencies
Company
  • About Us
  • Careers
  • Blog
  • Contact
Legal
  • Privacy Policy
  • Terms of Service
  • Security

© 2026 Kairos Connect B.V. All rights reserved.

Kairos ConnectKairos Connect

Core Features

  • Features Overview

    See all features at a glance

  • Tasks & Projects

    Kanban, lists, timelines & sprints

  • Goals & OKRs

    AI-powered goal analysis

  • Team Chat

    E2E encrypted messaging

  • Whiteboard

    Infinite canvas, real-time collab

Platforms

  • Forms

    Drag & drop form builder

  • CRM

    Pipeline, deals & contacts

  • Documents

    6 views, fast databases

  • AI Assistant

    Natural language tasks

  • Mobile Apps

    iOS & Android

  • Desktop Apps

    macOS, Windows, Linux

View all features→
For StartupsFor Small BusinessFor EnterpriseFor Remote Teams
Pricing
vs Asanavs ClickUpvs Notion
Blog
Getting Started
Quick StartAuthentication
API Reference
TasksGoalsCommentsTeamDocuments
SDKs
JavaScript/TypeScriptPythonGo
SDKs/JavaScript

JavaScript / TypeScript SDK

The official Kairos SDK for JavaScript and TypeScript. Works in Node.js and browser environments.

Installation

# npm
npm install @kairos-connect/sdk

# yarn
yarn add @kairos-connect/sdk

# pnpm
pnpm add @kairos-connect/sdk

# bun
bun add @kairos-connect/sdk

Quick Start

import { Kairos } from '@kairos-connect/sdk';

// Initialize the client
const kairos = new Kairos({
  apiKey: process.env.KAIROS_API_KEY,
});

// List tasks
const { data: tasks, pagination } = await kairos.tasks.list({
  status: 'in_progress',
  limit: 10,
});

console.log(`Found ${pagination.total} tasks`);
tasks.forEach(task => {
  console.log(`- ${task.title} (${task.status})`);
});

Configuration

import { Kairos } from '@kairos-connect/sdk';

const kairos = new Kairos({
  // Required: Your API key (use environment variable)
  apiKey: process.env.KAIROS_API_KEY,

  // Optional: Custom base URL (for enterprise/self-hosted)
  baseUrl: 'https://gateway.thekairos.app/v1',

  // Optional: Request timeout in milliseconds (default: 30000)
  timeout: 60000,

  // Optional: Custom fetch implementation
  fetch: customFetch,

  // Optional: Retry configuration
  retry: {
    maxRetries: 3,
    retryDelay: 1000, // Base delay in ms
  },
});

Tasks

List Tasks

// List all tasks with filters
const { data: tasks } = await kairos.tasks.list({
  status: 'in_progress',
  priority: 'high',
  assigned_to: 'user-id',
  goal_id: 'goal-id',
  page: 1,
  limit: 50,
  sort_by: 'due_date',
  sort_order: 'asc',
});

Get Task

const task = await kairos.tasks.get('task-id');
console.log(task.title, task.status);

Create Task

const newTask = await kairos.tasks.create({
  title: 'Implement new feature',
  description: 'Add user authentication',
  goal_id: 'goal-id',
  priority: 'high',
  due_date: '2024-01-15',
  assigned_to: 'user-id',
  story_points: 5,
});

Update Task

const updatedTask = await kairos.tasks.update('task-id', {
  status: 'completed',
  actual_hours: 6,
});

Delete Task

await kairos.tasks.delete('task-id');

Goals

// List goals
const { data: goals } = await kairos.goals.list({
  status: 'in_progress',
  include_tasks: true,
});

// Get a single goal with its tasks
const goal = await kairos.goals.get('goal-id', {
  include_tasks: true,
  include_comments: true,
});

console.log(`Goal: ${goal.title}`);
console.log(`Progress: ${goal.progress}%`);
goal.tasks?.forEach(task => {
  console.log(`  - ${task.title}`);
});

Team

// Get team info
const team = await kairos.team.get();
console.log(`Team: ${team.name}`);

// List team members (teamId required)
const { data: members } = await kairos.team.listMembers(team.id);

members.forEach(member => {
  console.log(`${member.name} (${member.role})`);
});

Documents

// List documents
const { data: docs } = await kairos.documents.list({
  doc_type: 'page',
  visibility: 'team',
});

// Get document with content
const doc = await kairos.documents.get('doc-id', {
  include_content: true,
  include_children: true,
});

console.log(doc.title);
console.log(doc.plain_text); // Plain text content
console.log(doc.content);    // Rich text JSON

Error Handling

import {
  Kairos,
  KairosError,
  KairosAuthError,
  KairosNotFoundError,
  KairosValidationError,
  KairosRateLimitError,
} from '@kairos-connect/sdk';

try {
  const task = await kairos.tasks.get('invalid-id');
} catch (error) {
  if (error instanceof KairosNotFoundError) {
    console.log('Task not found');
  } else if (error instanceof KairosValidationError) {
    console.log('Validation error:', error.message);
  } else if (error instanceof KairosRateLimitError) {
    console.log('Rate limited. Retry after:', error.retryAfter, 'seconds');
    // Wait and retry
    await new Promise(r => setTimeout(r, error.retryAfter * 1000));
  } else if (error instanceof KairosAuthError) {
    console.log('Authentication failed');
  } else if (error instanceof KairosError) {
    console.log('API error:', error.code, error.message);
  }
}

TypeScript Types

The SDK includes full TypeScript definitions:

import type {
  Task,
  Goal,
  Comment,
  Team,
  TeamMember,
  Document,
  TaskStatus,
  TaskPriority,
  GoalStatus,
  PaginatedResponse,
} from '@kairos-connect/sdk';

// All methods are fully typed
const task: Task = await kairos.tasks.get('id');
const result: PaginatedResponse<Task> = await kairos.tasks.list();

Browser Usage

Security Warning
Never expose your API key in client-side code. Use a backend proxy or server-side rendering to keep your API key secure.

For browser usage, create a backend endpoint that proxies requests:

// Next.js API Route (pages/api/kairos/[...path].ts)
import { Kairos } from '@kairos-connect/sdk';

const kairos = new Kairos({
  apiKey: process.env.KAIROS_API_KEY,
});

export default async function handler(req, res) {
  // Proxy requests to Kairos API
  // Add your own authentication logic here
}
SDKs OverviewPython SDK