Capture meetings with real-time transcription, chat with your documents, and get AI-powered summaries — all running on your own server.
Real-time speech-to-text over WebSocket with speaker diarization, powered by Deepgram.
Automated meeting minutes and action items every 5 minutes, plus a final structured summary when you stop.
Chat with your past meetings and uploaded documents using full RAG context.
Upload PDFs and text files, they're ingested into your local ChromaDB vector store for instant retrieval.
Send meeting summaries directly to any inbox via your own SMTP details, no third-party relay needed.
Push summaries straight to a Notion page with your own integration token. Your notes, your workspace.
Kontext runs entirely on infrastructure you control. Transcripts, summaries, chat history, and uploaded documents never leave your server.
.env
100% self-hosting
Your server. Your data.
Three ways to run Kontext — prebuilt Docker images, build from source, or run frontend and backend separately.
git clone https://github.com/abeenoch/Kontext-Agent.git
cd Kontext-Agent
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
docker-compose.ymlUses 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:
docker compose up -d
.envgit clone https://github.com/abeenoch/Kontext-Agent.git
cd Kontext-Agent
cp .env.example .env
# edit .env with your keys
docker compose up --build
python -m venv .venv
.\.venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reload \
--host 0.0.0.0 --port 8000
cd frontend
npm install
npm run dev
No new accounts. Just drop your credentials in .env and you're ready to go.
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
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
Kontext is fully open source. Fork it, extend it, run it your way. A star helps others find it.
⭐ Star on GitHub