A simplified MVP of Kortix - A complete platform for creating autonomous AI agents
This is a minimal viable product version of Kortix (formerly Suna), demonstrating the core capabilities of building, managing, and deploying AI agents.
This MVP includes:
- β Chat Interface - Conversational AI with thread management
- β Multi-LLM Support - Anthropic, OpenAI, Gemini, Groq via LiteLLM
- β Authentication - Supabase-based user management
- β Agent Sandbox - Daytona Docker execution environments
- β Web Intelligence - Tavily search & Firecrawl scraping
- β File Management - PDF, DOCX, XLSX, PPTX handling
- β Knowledge Base - Vector storage for context
- β Background Jobs - Redis + Dramatiq task queue
- β Integrations - MCP, Composio, Google Workspace
- β Billing - Stripe subscription management
- β Webhooks & Triggers - Event-driven automation
- β Observability - Langfuse & Sentry monitoring
kortix-mvp/
βββ backend/ # FastAPI Python backend
βββ frontend/ # Next.js React frontend
βββ docker-compose.yaml
Backend:
- Python 3.11 with FastAPI
- Supabase (PostgreSQL + Auth)
- Redis for caching & queues
- Dramatiq for background jobs
- LiteLLM for unified LLM access
Frontend:
- Next.js 15.3.1
- React 18
- Tailwind CSS 4
- Radix UI components
- Zustand for state management
- Docker & Docker Compose
- Python 3.11+
- Node.js 22+
git clone https://github.com/gitmvp-com/kortix-mvp.git
cd kortix-mvpcd backend
cp .env.example .env
# Edit .env with your API keysRequired Environment Variables:
# Database
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
# Redis (use defaults for docker-compose)
REDIS_HOST=redis
REDIS_PORT=6379
# At least one LLM provider
ANTHROPIC_API_KEY=your_key
# or OPENAI_API_KEY=your_key
# Search & Scraping
TAVILY_API_KEY=your_key
FIRECRAWL_API_KEY=your_key
# Agent Sandbox
DAYTONA_API_KEY=your_key
DAYTONA_SERVER_URL=https://app.daytona.io/apicd ../frontend
cp .env.example .env.local
# Edit .env.localNEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key
NEXT_PUBLIC_BACKEND_URL=http://localhost:8000/api
NEXT_PUBLIC_URL=http://localhost:3000cd ..
docker-compose up --buildThe platform will be available at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Docs: http://localhost:8000/docs
Backend:
cd backend
pip install uv
uv sync
uv run uvicorn api:app --reload --host 0.0.0.0 --port 8000Frontend:
cd frontend
npm install
npm run devWorker (for background jobs):
cd backend
uv run dramatiq --skip-logging --processes 2 --threads 4 run_agent_backgroundbackend/
βββ core/ # Core business logic
β βββ agentpress/ # Agent management & threads
β βββ services/ # External services (Redis, Supabase)
β βββ sandbox/ # Daytona sandbox integration
β βββ billing/ # Stripe billing
β βββ admin/ # Admin endpoints
β βββ mcp_module/ # MCP protocol
β βββ credentials/ # Secure credential storage
β βββ templates/ # Agent templates
β βββ knowledge_base/ # Vector storage
β βββ triggers/ # Webhooks & automation
β βββ composio_integration/ # Composio apps
β βββ google/ # Google Workspace
βββ api.py # FastAPI application
βββ run_agent_background.py # Dramatiq worker
βββ pyproject.toml # Python dependencies
βββ Dockerfile
frontend/
βββ src/
β βββ app/ # Next.js app router
β βββ components/ # React components
β βββ lib/ # Utilities & helpers
β βββ hooks/ # Custom React hooks
βββ public/ # Static assets
βββ package.json
βββ Dockerfile
Set ENV_MODE in backend/.env:
local- Developmentstaging- Staging environmentproduction- Production deployment
The platform supports multiple LLM providers via LiteLLM:
- Anthropic (Claude)
- OpenAI (GPT-4, GPT-3.5)
- Google (Gemini)
- Groq
- OpenRouter
- xAI (Grok)
- AWS Bedrock
- Custom OpenAI-compatible APIs
- Create a Supabase project at https://supabase.com
- Copy the project URL and keys to your
.env - The application will handle schema initialization
For production, configure an external Redis:
REDIS_HOST=your-redis-host.com
REDIS_PORT=6379
REDIS_PASSWORD=your_password
REDIS_SSL=trueOnce running, visit http://localhost:8000/docs for interactive API documentation (Swagger UI).
cd backend
uv run pytest# Build production images
docker-compose -f docker-compose.yaml build
# Start services
docker-compose up -d
# View logs
docker-compose logs -f
# Stop services
docker-compose down- Never commit
.envfiles - Use strong encryption keys for
MCP_CREDENTIAL_ENCRYPTION_KEY - Enable REDIS_SSL in production
- Configure CORS origins appropriately
- Use Supabase RLS policies for data security
For LLM observability:
LANGFUSE_PUBLIC_KEY=your_key
LANGFUSE_SECRET_KEY=your_secret
LANGFUSE_HOST=https://cloud.langfuse.comFor error tracking, configure Sentry DSN in the code.
This is an MVP version. Contributions are welcome!
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
Apache License 2.0 - See LICENSE file for details
- Parent Project: Kortix (Suna)
- Website: https://www.suna.so
- Documentation: See parent repository
This MVP is a simplified version. For production use, consider:
- Implementing proper error boundaries
- Adding comprehensive test coverage
- Setting up CI/CD pipelines
- Configuring proper logging & monitoring
- Implementing rate limiting
- Adding data backup strategies
- Reviewing security best practices
Ready to build AI agents? Start the platform and explore! π