v1.5 — AI Agent Platform

The Operating System
for AI Agents

Multi-agent orchestration, code intelligence, and project management — unified in a single runtime. Run 139 specialist agents — ready in seconds.

0
Community Agents
0
Built-in Skills
0
MCP Tools
0
Block Types

Your entire AI development environment — in one runtime

VerkOS is an AI development platform that connects your projects to a swarm of specialized agents. Every project gets its own kanban board, code map, semantic search index, wiki, and automation engine — all accessible through natural language or a full REST API.

Purpose-built for development teams. Every project is isolated, every action is tracked, and every agent runs in a secure, managed environment.

  • Three-tier agent architecture with 139 specialists
  • Hybrid BM25 + vector semantic search — SQLite + Drizzle ORM
  • AST-aware code intelligence for 6 languages
  • Notion-grade wiki with 18 block types
  • Per-project automation rules engine
  • Complete REST API with 79+ endpoints
  • Real-time streaming via WebSocket + SSE
verkos — triage agent
Create a login page with email/password auth
⟡ Routing to ui-designer agent...
⟡ Loading skill: frontend-design
⟡ Loading skill: create-auth
⟡ Loading skill: svelte5-sveltekit
Created src/routes/(auth)/login/+page.svelte
Created src/lib/components/LoginForm.svelte
Added Better Auth email provider
Created src/routes/(auth)/register/+page.svelte
─────────────────────────────────────
4 files created · 0 errors · $0.003

Meet the Team.

Seven AI specialists — each with a distinct personality, skillset, and department. They collaborate autonomously to ship your projects.

Þórdís — Engineering Lead
Engineering
Þórdís
Engineering Lead
"Quality is not a phase at the end of a project. It is a practice maintained throughout."
Ragnar — Full Stack Developer
Engineering
Ragnar
Full Stack Developer
"Shipping beats perfecting. Every day something sits undeployed is a day it helps nobody."
Eyrún — Graphic Designer
Engineering
Eyrún
Graphic Designer
"The best design is invisible. When users notice the interface, something has gone wrong."
Björn — Infrastructure
Engineering
Björn
Infrastructure & DevOps
"Boring infrastructure is the highest compliment. It means everything works."
Guðrún — CFO
Finance
Guðrún
CFO
"The budget is not a wall — it is a terrain map. I show where the ground is solid and where it is not."
Sólveig — PR & Social Media
Communications
Sólveig
PR & Social Media
"Stories are the native format of human cognition. Data alone does not persuade."
Páll — Mail Guard
Communications
Páll
Mail Guard
"The postal worker never read the letters. His role was to ensure what was sent arrived, and what arrived was genuine."
Haraldur — Strategy Expert
Executive
Haraldur
Chief of Staff
"Strategy without execution is philosophy."

Everything you need.
Nothing you don't.

Nine integrated subsystems that work together — not a collection of disconnected tools.

🤖

Multi-Agent Orchestration

Three-tier architecture routes every task to the right specialist automatically. The triage router classifies intent, selects the optimal agent, loads relevant skills, and hands off — all in milliseconds.

Triage Router
Implementor
139 Specialists
Powered by Claude Streaming tokens Subagent hooks
📋

Kanban Board

6-stage pipeline with priorities, assignees, subtasks, dependencies, and automation triggers. Full programmatic control via MCP tools.

Backlog
In Progress
Done
6 columns 10 MCP tools
🧠

Code Intelligence

AST-aware symbol extraction. Dependency graphs. Incremental indexing. 6 languages supported out of the box.

📁 src/routes/
kanban.ts · 847 symbols
pages.ts · 312 symbols
📁 src/services/
agent.ts · 1.2k sym
JS · TS · Rust · Go · Py · HTML
🔍

Semantic Search

Hybrid BM25 + vector search powered by nomic-embed-text-v1.5 and SQLite. Enterprise-grade semantic search — zero configuration.

authentication middleware logic
0.94 src/auth/middleware.ts:12
0.89 src/server.ts:88
0.81 src/routes/auth.ts:3
📄

Pages & Wiki

Notion-grade documentation with 18 block types, hierarchical pages, templates, and full-text search.

Text Heading Code Table Math Toggle Callout Embed Todo +9 more
💬

Team Chat

Messenger-style conversations with humans and AI agents in the same interface. Real-time SSE streaming, structured message blocks, and rich content cards.

Human + Agent chat Rich blocks
📧

Email

Self-hosted email with IMAP/SMTP integration. Each AI agent gets its own mailbox. Full send, reply, forward, search, and folder management via MCP tools.

12 MCP tools Agent mailboxes
📅

Calendar

Personal, team, and per-project calendars with day, week, month, and agenda views. CalDAV sync for external clients. Drag-to-create and resize events.

CalDAV sync 4 MCP tools

Automation Rules

Event-driven pipelines that react to kanban mutations. Auto-assign, auto-move, auto-dispatch agents — triggered by on_create, on_move, on_update, or on_any_change events. Chain conditions and actions with full control.

on_move
column == done
dispatch agent
on_create
tag == urgent
assign + notify
7 MCP tools 4 trigger types
🔌

Plugin System

Extend VerkOS with TypeScript plugins that provide MCP tools, HTTP routes, agent hooks, and SSE events. Admin-managed, tier-aware — triage agents get read-only tools, implementors get full access.

Git Integration
·
CRM
·
Hosting Control
Git · CRM · Hosting TypeScript SDK Hot-reload
🌐

MCP-over-HTTP

Connect external AI tools — Claude Code, Cursor, Windsurf — to VerkOS projects via the Model Context Protocol. Bearer token auth, stateless transport, 112 tools across project and team scopes.

POST /mcp/:project
Authorization: Bearer <token>
112 tools · Kanban · Code Intel · Pages · Email

112 Tools. Zero Network Latency.

All MCP servers run in-process — your agents have instant access to every capability without a single network hop.

Kanban
10 tools
  • summary
  • full
  • create_task
  • move_task
  • update_task
  • delete_task
  • add_comment
  • add_subtask
  • set_due_date
  • add_dependency
Code Intel
12 tools
  • codemap_summary
  • codemap_search
  • codemap_reindex
  • file_outline
  • codebase_search
  • symbol_lookup
  • find_references
  • find_implementations
  • dependency_graph
  • type_info
  • call_hierarchy
  • diagnostics
  • hover_info
Calendar
4 tools
  • calendar_list_events
  • calendar_create_event
  • calendar_update_event
  • calendar_delete_event
Skills
2 tools
  • skill_list
  • skill_load
Rules
7 tools
  • rules_list
  • rules_create
  • rules_update
  • rules_delete
  • rules_toggle
  • rules_evaluate
  • rules_log
Project
1 tool
  • get_project_info
Pages
20 tools
  • pages_list
  • pages_get
  • pages_create
  • pages_update
  • pages_delete
  • pages_search
  • pages_move
  • pages_publish
  • pages_unpublish
  • blocks_list
  • blocks_append
  • blocks_update
  • blocks_delete
  • blocks_reorder
  • +6 more
Email
12 tools
  • email_send
  • email_list
  • email_get
  • email_delete
  • email_search
  • email_mark_read
  • email_reply
  • email_forward
  • email_draft
  • email_labels
  • email_thread
  • email_attachments

All tools run as in-process MCP servers.
No subprocess spawning. No IPC overhead.
Sub-millisecond tool call latency.

139 Specialist Agents.
Every Domain Covered.

Community-contributed agents loaded from plain Markdown files — no code required. Add your own by dropping a `.md` file in `data/agents/`.

Frontend & UI
ui-designer frontend-developer accessibility-expert css-specialist svelte5-expert react-expert vue-expert animation-specialist ux-researcher design-systems
Backend & Systems
api-developer database-administrator system-architect python-developer rust-developer go-developer java-developer node-developer graphql-specialist microservices-architect
AI & Machine Learning
ml-engineer data-scientist prompt-engineer ai-researcher nlp-specialist computer-vision rag-architect fine-tuning-expert
Security
security-auditor penetration-tester code-reviewer auth-specialist owasp-expert cryptography-expert
DevOps & Infrastructure
devops-engineer kubernetes-specialist docker-expert ci-cd-engineer cloud-architect linux-admin monitoring-expert gitops-specialist
Quality & Documentation
test-automator performance-optimizer documentation-writer technical-writer e2e-tester benchmark-specialist
139 specialist agents across 12+ domains — all loaded from plain Markdown files
Browse Agent Directory

140 Skills. Instant Expertise.

Domain knowledge packs that agents load on-demand — from frontend design to Kubernetes configuration. Lazy-loaded with a 30-second TTL cache.

🎨
frontend-design
🤖
claude-agent-sdk
🎭
playwright-cli
svelte5-sveltekit
🔐
create-auth
📐
best-practices
💨
tailwind-css
🌐
three-js
🗃️
drizzle-orm
🐋
docker-compose
🔧
nginx-config
☸️
kubernetes
🦀
rust-async
🐍
python-fastapi
🔷
typescript-strict
🛡️
security-hardening
📊
data-visualization
🧪
testing-patterns
🚀
ci-cd-pipelines
⚙️
gitea-actions
🌊
websocket-sse
🎯
threlte-expert
📦
bun-runtime
🔗
mcp-protocol
Lazy-loaded · 30s TTL cache — Skills are only active when needed. Agents call skill_load on-demand; stale skills are evicted automatically. Zero startup overhead.

Extensible by Design. Extend with Plugins.

TypeScript plugins add MCP tools, HTTP routes, agent hooks, and SSE events — all managed from the admin panel.

Git Integration
Plugin
scope: project · GitHub + Gitea

Clone, diff, commit, push, and manage branches from within project sandboxes. Supports GitHub and Gitea remotes.

CRM
Plugin
scope: team · Contacts · Deals

Lightweight CRM with contact and deal management. Track pipeline stages, log activities, and link contacts to email conversations.

Hosting Control
Plugin
scope: global · Infrastructure

Manage Proxmox containers, Nginx vhosts, DNS zones, and service lifecycle. Tier-aware: triage gets read-only, implementors get full access.

Notion-Grade Documentation. Built In.

A fully-featured wiki system dual-scoped to teams and projects. Every block type you need, drag-and-drop reorder, templates, comments, and full-text search.

📝
Text
H1
Heading 1
H2
Heading 2
H3
Heading 3
Bulleted List
1.
Numbered List
☑️
To-do
Toggle
Quote
📣
Callout
Divider
</>
Code
🖼️
Image
🔖
Bookmark
Table
Embed
Math (LaTeX)
Table of Contents

Hierarchical Nesting

Unlimited page depth — organize by team, project, sprint, or domain. Full breadcrumb navigation with one-click traversal.

Templates & Duplication

Save any page as a reusable template. Duplicate pages with all blocks preserved — sprint retrospectives, onboarding docs, meeting notes.

Comments & Collaboration

Threaded comments on any page. Resolve, re-open, and delete. @mention support triggers notifications in real-time.

Full-text Search

Instant search across all pages in a team or project. Searches both titles and block content simultaneously.

Drag & Reorder

Drag any block to reorder within a page. Batch operations supported — select multiple blocks and move or delete in one action.

Dual Scope

Team-level wiki for cross-project documentation. Project-level docs scoped to a single repository. Switch between scopes with one click.

Built Different.

Every technology choice was deliberate. No bloat, no compromises on performance or developer experience.

Bun Runtime

Ultra-fast JavaScript runtime with native TypeScript, built-in .env loading, SQLite bindings, and a WebSocket server — no Node.js, no Express, no Vite required.

5x faster than Node.js starts

Claude Agent SDK

Multi-turn AI agents with streaming token output, pre/post tool hooks, subagent spawning, budget controls, and in-process MCP tool servers.

@anthropic-ai/claude-agent-sdk

SvelteKit 5

Reactive UI built with Svelte 5 runes — $state, $derived, $effect, $props. Zero-overhead reactivity with compile-time optimization. No virtual DOM.

Runes mode · Server + client

SQLite + Drizzle ORM

Type-safe queries with Drizzle's schema-first approach. Atomic transactions prevent data loss. Zero-config — no database server, no migrations daemon, no connection pool.

better-sqlite3 · Atomic writes

SQLite + Drizzle ORM

Hybrid BM25 + vector semantic search with embeddings generated locally by nomic-embed-text-v1.5. Stored in SQLite via Drizzle ORM — zero-config, no database server required.

nomic-embed · Hybrid search · Drizzle ORM

Tree-sitter

Language-aware AST parsing for symbol extraction, dependency analysis, and incremental re-indexing. Supports JavaScript, TypeScript, Rust, Go, Python, and HTML.

6 languages · Incremental index

Better Auth

Session management with HttpOnly cookies, SameSite=Lax, admin role plugin, banned user enforcement at middleware level, and trusted origins restriction to LAN.

Email/pass · Admin roles · Drizzle adapter

WebSocket + SSE

Real-time token streaming over WebSocket (64KB payload limit). Server-Sent Events for state sync, kanban updates, activity feed, and page changes — up to 50 concurrent SSE clients.

Bun.serve · 50 SSE cap

Enterprise-Grade Security. Built In.

Security is built into the architecture, not bolted on. Every layer from HTTP to the filesystem has explicit protections.

  • 🔒
    Authentication on all API routes Every /api/* endpoint requires a valid session. Only /api/health and /api/auth/* are public.
  • 🗂️
    File boundary enforcement PreToolUse hook normalizes paths with path.resolve(). Agents cannot escape their project directory — ever.
  • 🛡️
    Path traversal protection All file operations validate against PROJECT_NAME_RE. Static asset serving uses prefix check to block ../ attacks.
  • ⚛️
    Atomic database writes saveSession() and saveKanban() wrapped in SQLite transactions — no partial writes, no corruption on crash.
  • 🌐
    CORS restricted to LAN origins Trusted origins: localhost, 127.0.0.1, 192.168.*, 10.*, *.local. No wildcard — external domains are blocked.
  • 📦
    64KB WebSocket payload limit maxPayloadLength enforced by Bun.serve(). Combined with 1MB HTTP body limit — protects against amplification attacks.
  • 🚫
    Banned user enforcement Middleware checks user.banned on every authenticated request. Banned users get 403 on both API and WebSocket upgrade.
  • 💰
    $0.50 per-run cost safety net maxBudgetUsd: 0.50 prevents runaway agent costs. Agents stop when budget is exceeded — no surprise bills.
  • 🍪
    HttpOnly session cookies better-auth.session_token is HttpOnly and SameSite=Lax. JavaScript cannot read session tokens — XSS is mitigated.
  • Input validation everywhere Skill names validated against /^[a-zA-Z0-9_-]+$/. Kanban columns validated against ALL_COLUMNS allowlist. UUIDs validated before file path use.
  • 🏠
    Preview iframe sandboxed Preview frames use sandbox="allow-scripts allow-same-origin allow-forms". CSP frame-ancestors restricts embedding to trusted origins only.
  • 🔑
    Project authorization Delete and rename operations require team owner/admin role. Cross-team block moves are blocked at the service layer.
  • 🔌
    Plugin isolation Plugin IDs validated against strict regex. Routes namespaced under /api/plugins/<id>/. MCP servers isolated per-dispatch. Admin-only management.

79+ REST Endpoints. Full Programmatic Control.

Every feature in the UI has a corresponding API endpoint. Automate anything, integrate everything.

Resource Routes Description
Auth4sign-in, sign-up, sign-out, session
Chat3history, send, commands
Projects5CRUD + select active project
Teams8CRUD, members, invite, rename
Kanban7+tasks, sections, comments, deps
Pages15+pages, blocks, comments, templates
Agents4list, get, create, update, delete
Skills4list, get, create, update, delete
Rules5CRUD + toggle + evaluate
Files3tree, read, write
Codemap3query, search, reindex
Embeddings2search, status
Monitor2cost, session summary
Admin8user CRUD, ban, role, team oversight
Notifications3list, read, read-all
Preview2status, toggle
Workspace2my-tasks, team stats
Plugins7+list, detail, enable, disable, config, project assoc
Uploads2upload image, serve by ID
MCP1MCP-over-HTTP (112 tools: project-scoped + team)
bash — send a chat message REST
# Send a message to the active agent session
curl -s -X POST \
  http://localhost:3000/api/messages \
  -H "Content-Type: application/json" \
  -b "better-auth.session_token=$TOKEN" \
  -d '{"content":"Refactor the auth service"}'
bash — search the codebase Embeddings
# Semantic search across the active project
curl -s -G \
  http://localhost:3000/api/embeddings/search \
  --data-urlencode "q=authentication middleware" \
  -b "better-auth.session_token=$TOKEN"
bash — create a kanban task Kanban
# Create a task in the active project board
curl -s -X POST \
  http://localhost:3000/api/kanban/tasks \
  -H "Content-Type: application/json" \
  -b "better-auth.session_token=$TOKEN" \
  -d '{"title":"Add dark mode","column":"todo","priority":"high"}'

Real-time streams

GET /api/events — SSE: state, kanban, activity, pages
WS /ws — token streaming, up to 50 clients
GET /api/messages — NDJSON stream
POST /mcp/:project — 112 MCP tools via HTTP

Simple, Transparent Pricing

From solo developers to enterprise teams — choose the plan that fits.

Starter
$X
per month
  • Up to 3 projects
  • 139 specialist agents
  • Community support
Get Started
Enterprise
Custom
contact us for pricing
  • Everything in Pro
  • Dedicated infrastructure
  • Custom agent development
  • SLA & priority support
Contact Sales