An autonomous AI agent that joins your Slack workspace as a team member.
Open-source. Self-hosted. Extensible. MIT-licensed.
Read the story behind OpenViktor · Self-Hosting Guide · Report a Bug
OpenViktor is a fully autonomous AI teammate that lives in Slack. It reads messages, runs tools, learns from your team, and takes action — without leaving the chat. Think of it as hiring an AI employee that actually integrates into how your team already works.
Built as an open-source alternative to Viktor.
Agent Runtime — Multi-provider LLM engine (Claude, GPT, Gemini) with automatic retries, cost tracking, and usage limits per workspace.
20+ Built-in Tools — File operations, bash execution, browser automation, git, grep, AI-powered search, Slack admin, image generation, and more. Every tool is sandboxed with a permission system.
Persistent Memory — Learns from your team's conversations. Accumulates knowledge over time and recalls it when relevant.
Proactive Behaviors — Scheduled heartbeats, workflow discovery, channel introductions, and onboarding DMs for new workspaces. It doesn't just respond — it initiates.
Integrations — Connects to GitHub, Linear, and 2,000+ apps via Pipedream. Add custom API integrations through natural language.
Admin Dashboard — Full management UI: monitor runs, inspect threads, manage tools, track usage and costs, configure integrations.
Multi-Workspace — OAuth-based workspace connections with per-workspace isolation, usage limits, and cost controls.
Self-Hosted — Runs entirely on your infrastructure. Docker Compose, PostgreSQL, Redis. No data leaves your network.
git clone https://github.com/zggf-zggf/openviktor.git
cd openviktor
./scripts/setup.shThe setup script handles dependencies, database, and config. You'll need:
- Bun >= 1.2
- Docker + Docker Compose
- A Slack app with Socket Mode
- An Anthropic API key
Manual setup
bun install
cp docker/.env.example .env
# Edit .env with your credentials
docker compose -f docker/docker-compose.yml up -d
bun run db:generate
bun run db:migrate
bun run devFor production deployment, see the Self-Hosting Guide.
openviktor/
├── apps/
│ ├── bot/ # Slack bot + agent runtime
│ ├── web/ # Admin dashboard (React + Vite)
│ └── landing/ # Landing page (Next.js)
├── packages/
│ ├── db/ # PostgreSQL schema (Prisma)
│ ├── shared/ # Types, config, logger, errors
│ ├── tools/ # Tool registry + executors
│ └── integrations/ # External service clients
└── docker/ # Docker Compose for self-hosting
| Component | Technology |
|---|---|
| Runtime | Bun |
| Language | TypeScript (strict) |
| Database | PostgreSQL 16 + Prisma |
| Cache | Redis 7 |
| LLM | Claude / GPT / Gemini |
| Slack | Bolt SDK (Socket Mode) |
| Build | Turborepo |
| Lint/Format | Biome |
| Test | Vitest |
| Deploy | Docker Compose |
bun install # Install dependencies
docker compose -f docker/docker-compose.yml up -d # Start PostgreSQL + Redis
bun run db:generate # Generate Prisma client
bun run db:migrate # Run migrations
bun run dev # Start all services
bun run test # Run tests
bun run lint # Lint with Biome
bun run typecheck # TypeScript strict check| Feature | Status |
|---|---|
| Pre-send reflection — review and refine responses before sending | Planned |
| Email tools — send, read, and manage email from Slack | Planned |
| Spaces — host and serve apps directly from OpenViktor | Planned |
Contributions welcome. See CONTRIBUTING.md for guidelines.
MIT — use it however you want.
