Open Source — give it a star if it helps you

Your Intelligent Meeting
& Document Assistant

Capture meetings with real-time transcription, chat with your documents, and get AI-powered summaries — all running on your own server.

Self-Host It

Live Transcription

Real-time speech-to-text over WebSocket with speaker diarization, powered by Deepgram.

Smart Summaries

Automated meeting minutes and action items every 5 minutes, plus a final structured summary when you stop.

Interactive Chat

Chat with your past meetings and uploaded documents using full RAG context.

Document Upload

Upload PDFs and text files, they're ingested into your local ChromaDB vector store for instant retrieval.

Email Export

Send meeting summaries directly to any inbox via your own SMTP details, no third-party relay needed.

Notion Sync

Push summaries straight to a Notion page with your own integration token. Your notes, your workspace.

Your meetings stay yours

Kontext runs entirely on infrastructure you control. Transcripts, summaries, chat history, and uploaded documents never leave your server.

  • All data stored locally — SQLite for chat, ChromaDB for vectors
  • CORS and JWT auth configurable to your environment
  • SMTP credentials stay in your own .env
  • PII redaction before LLM calls
  • Open source — read every line, fork it, own it

100% self-hosting

Your server. Your data.

Up and running in minutes

Three ways to run Kontext — prebuilt Docker images, build from source, or run frontend and backend separately.

1

Clone the repo

git clone https://github.com/abeenoch/Kontext-Agent.git
cd Kontext-Agent
2

Set up your environment

Copy .env.example to .env and set at minimum:

# Required
DATABASE_URL=postgresql+asyncpg://postgres:postgres@postgres:5432/kontext_agent
GROQ_API_KEY=your_groq_key
DEEPGRAM_API_KEY=your_deepgram_key
JWT_SECRET=your_secret_min_32_chars
ENCRYPTION_KEY=your_dedicated_encryption_key

# Optional integrations
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USER=you@example.com
SMTP_PASS=yourpassword
NOTION_TOKEN=your_notion_token
NOTION_PAGE_ID=your_page_id
CORS_ORIGINS=http://localhost
PRELOAD_EMBEDDINGS=true
3

Save this as docker-compose.yml

Uses prebuilt images from Docker Hub — no build step needed.

services:
  postgres:
    image: postgres:16-alpine
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: kontext_agent
    volumes:
      - postgres_data:/var/lib/postgresql/data
  backend:
    image: lazyghost1/kontext-backend:latest
    env_file: .env
    environment:
      APP_ENV: production
      APP_HOST: 0.0.0.0
      APP_PORT: "8000"
      DATABASE_URL: postgresql+asyncpg://postgres:postgres@postgres:5432/kontext_agent
      CHROMA_DIR: /app/chroma_db
      PRELOAD_EMBEDDINGS: "true"
      CORS_ORIGINS: http://localhost
    ports:
      - "8000:8000"
    depends_on:
      - postgres
    volumes:
      - chroma_data:/app/chroma_db
  frontend:
    image: lazyghost1/kontext-frontend:latest
    environment:
      VITE_API_BASE_URL: http://localhost:8000
      VITE_WS_URL: ws://localhost:8000
    ports:
      - "80:80"
    depends_on:
      - backend
volumes:
  postgres_data:
  chroma_data:
4

Start it up

docker compose up -d
Frontend → localhost:80 Backend API → localhost:8000
1

Clone and set up .env

git clone https://github.com/abeenoch/Kontext-Agent.git
cd Kontext-Agent
cp .env.example .env
# edit .env with your keys
2

Build and run

docker compose up --build
Frontend → localhost:80 Backend API → localhost:8000

Backend (Python 3.11)

python -m venv .venv
.\.venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reload \
  --host 0.0.0.0 --port 8000
API → localhost:8000

Frontend (Node 20)

cd frontend
npm install
npm run dev
UI → localhost:5173

Works with the tools you already use

No new accounts. Just drop your credentials in .env and you're ready to go.

Email

After a meeting ends, chat with the agent in the meeting section telling it to email the structured summary to any address(es) using your own SMTP server. Works with Gmail, Outlook, Fastmail, or any provider.

SMTP_HOSTSMTP_PORTSMTP_USERSMTP_PASS

Notion

Push meeting summaries directly to a Notion page. Each meeting creates a structured entry with transcript highlights, action items, and timestamps, all in your own workspace.

NOTION_TOKENNOTION_PAGE_ID
K

Like what you see? Give it a star.

Kontext is fully open source. Fork it, extend it, run it your way. A star helps others find it.

⭐ Star on GitHub