Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kazake

Kazake

React TanStack Router TanStack Start Vite Tailwind CSS tldraw Web Audio API AudioWorklet GoJS Lottie Python FastAPI Uvicorn Gemini Live API Cognee Ephemeral Token Exchange Notion Slack Gmail Google Calendar Google Drive Composio

Turn live perception into persistent memory.

It is a context as a service(CAAS) platform. It captures context from voice, screen sharing, files, and connected tools like Notion, Gmail, Drive, and Slack, then keeps that context available for future use across agents and tools.

Since it has access to Cognee, it can maintain a graphical context between different sessions, not only materialistic data, but also the visual contextual ingestion, for adding daily life activity/events to the unified platform

By default comes with a canvas page to maintain and manage content to pass down to downstream agents as an MCP server. These are specially configured as bi-directional streaming mcp's, so coding agents can update and remove the context as per the user request.

Cognee is the memory layer behind Kazake. We use it to store, organize, and retrieve project context as structured memory, so the AI can remember important details, group related information, and use the same context again later. It formulates a huge, dense graph connection that can reason between different activities that happened across different days and can perform parallel reasoning with the configured tools, making it superior to any other tools out there.

check the demo


Architecture

shapes at 26-07-06 12 34 01


Core features

avyfdq

avyfno

avyft7

avyfx0

avyg85

avygc1


Project structure

weekend-hack/
├── server.py                          # FastAPI backend — Cognee proxy, WebSocket, file upload
├── cognee_realtime_graph.py           # CLI for interactive knowledge graph building
├── static/index.html                  # GoJS graph visualization (served by FastAPI)
├── canvas-whisper-sparkle/            # React frontend (TanStack Start + Vite + tldraw)
│   ├── app/
│   │   ├── routes/
│   │   │   ├── canvas.tsx             # Canvas workspace with voice aura
│   │   │   └── _layout.tsx            # Root layout
│   │   ├── components/
│   │   │   ├── CanvasWorkspace.tsx     # tldraw canvas, file management, context groups
│   │   │   ├── VoiceAura.tsx          # Animated aura (connecting/listening/speaking/thinking)
│   │   │   ├── ToolsDrawer.tsx        # Toggle 25+ tools
│   │   │   └── KnowledgeGraphDialog.tsx # Graph visualization overlay
│   │   └── hooks/
│   │       └── useGeminiLive.ts       # WebSocket lifecycle, audio capture/playback, tool exec
│   └── package.json
├── gemini-live-ephemeral-tokens-websocket/  # Standalone Gemini Live client (vanilla JS)
│   ├── server.py                      # Token generation + MCP proxy
│   ├── frontend/                      # Vanilla JS frontend
│   └── mcp_server.py                 # Composio MCP integration
├── test_*.py                          # Test suite
├── AGENTS.md                          # Full build brief and design doc
└── .env                               # Environment config (not committed)

Tech stack

Layer Technology
Frontend React 19, TanStack Router/Start, Vite 8, Tailwind CSS 4, tldraw
Audio Web Audio API, AudioWorklet (16kHz capture, 24kHz playback)
Visualization GoJS (graph), tldraw (canvas), Lottie (animations)
Backend Python, FastAPI, Uvicorn
AI/ML Gemini Live API (gemini-3.1-flash-live-preview) via WebSocket
Memory Cognee (graph + vector + relational retrieval)
Auth Ephemeral token exchange (backend generates short-lived Google tokens)
Integrations Notion, Slack, Gmail, Google Calendar, Google Drive (via Composio)

Tool system

The agent has access to 25+ tools across these categories:

  • Cognee: remember, batch_remember, cognify, recall, forget, update, delete
  • Notion: search, create_page, append_to_page, get_page
  • Slack: send_message, list_channels
  • Gmail: fetch_emails, send_email
  • Calendar: get_events, create_event, delete_event
  • Google Drive: find_file, get_metadata, download_file, create_text_file, create_folder, fetch_to_canvas
  • Canvas: list_files, group_files, add_text_file

Getting started

Prerequisites

  • Python 3.10+
  • Node.js 20+
  • Cognee instance (local or remote)
  • Google Gemini API key
  • Composio Api key

Environment

cp .env.example .env
# Set these:
# BASE_URL, API_KEY, TENANT_ID, USER_ID  — Cognee config
# GEMINI_API_KEY                          — Google Gemini
# COMPOSIO_API_KEY

Backend

python -m venv hoo
source hoo/bin/activate
pip install fastapi uvicorn requests python-dotenv

python server.py
# FastAPI running at http://localhost:8080

Frontend

cd canvas-whisper-sparkle
npm install
npm run dev
# TanStack Start app at http://localhost:3000

Graph visualization (standalone)

python server.py
# Open http://localhost:8080 for GoJS graph view

CLI knowledge graph builder

python cognee_realtime_graph.py
# Interactive CLI: add text, recall, forget, list data

Memory model

Kazake stores structured episodic memories, not raw video. Each memory event contains:

{
  "event_type": "object_observed",
  "object_label": "water bottle",
  "speaker_identity": "Sai",
  "relations": [
    {"type": "owned_by", "target": "Sai"},
    {"type": "gifted_by", "target": "Grandfather"},
    {"type": "located_in", "target": "kitchen shelf"}
  ],
  "frame_uri": "s3://bucket/frame_00123.jpg",
  "timestamp": "2026-07-04T10:35:12Z",
  "transcript_excerpt": "This water bottle was gifted by my grandfather.",
  "confidence": 0.87
}

Design principles

  • Event-driven, not frame-rate: Graph updates on semantic events, not every frame
  • Speech + vision: Both modalities are required before creating durable memory
  • Dedup on write: Fast recall check before creating new entities
  • Confidence gating: Minimum threshold before persisting
  • Observation → fact pipeline: Low-latency observation first, async enrichment later
  • Evidence-backed: Frame snapshots stored in object storage, URIs in graph

Material wave loading

Developers

Sai Nivedh

About

life sync with kazake. (keep it super simple)

Resources

Stars

3 stars

Watchers

0 watching

Forks

Contributors

Languages