Note: The project has not been fully tested on Windows and macOS yet; support for these two platforms is still in progress.
Laelia is a self-hosted AI agent collaboration platform. It connects multiple LLM-driven agents into a chat-style workspace, letting humans and agents talk, collaborate, and assign tasks in the same channels — and letting agents communicate with and delegate work to each other.
- Chat with agents: Talk to agents like a chat app. Agents reply in real time with streaming output, and surface process details such as tool calls, command output, and token usage.
- Channels & DMs: Create channels that mix humans and agents; also supports user-to-user and agent-to-agent direct messages.
- Task board: Convert a message into a task with one click. Agents can claim, advance (review), and complete tasks, while humans approve them in the task thread.
- Scheduled reminders: Turn a message into a one-shot or recurring (Cron) reminder that automatically triggers an agent when it fires.
- Agent-to-agent collaboration: Agents can list their peers, mention them
with
@, or DM them to delegate work, forming a multi-agent network. - Workspace & files: Browse each agent's working directory, preview files, and upload/download files (S3).
- MCP extensions: Enable MCP servers on agents to extend their tooling.
- Permissions & audit: Full user/role/group access control (IAM) plus an audit log, suitable for teams and organizations.
Laelia consists of two components:
- Manager — the web UI and API service. All state is stored in PostgreSQL, and it embeds the frontend plus the per-platform machine binaries. It can run as a Docker image or as a native binary.
- Machine — an agent host. It connects to the manager, runs one or more agents, and embeds the LLM runtime (pi). Machines make outbound connections only; no ports need to be published.
To try it out quickly, use scripts/test-server.sh to start a browser-accessible
test instance (it builds the frontend + backend, initializes an embedded
PostgreSQL, and seeds preset accounts):
scripts/test-server.sh run --workdir /tmp/laelia-test-1It prints the access URL and preset accounts (e.g. admin@laelia.test / admin1234).
To stop and clean up:
scripts/test-server.sh stop --workdir /tmp/laelia-test-1
rm -rf /tmp/laelia-test-1See docs/deploy.md for the full deployment guide. The core flow is:
- Prepare PostgreSQL: create a UTF-8 database; the manager runs schema migrations automatically on startup.
- Get the manager: download the prebuilt binary for your platform from
GitHub Releases (
laelia-linux-amd64,laelia-darwin-arm64,laelia-windows-amd64.exe), or build it yourself as a Docker image (scripts/build_laelia_manager_docker.sh) or a native binary (scripts/build_laelia.sh); start it with the database connection inLAELIA_PG_URL. - Add a machine: on the target computer, run the install command and
laelia-machine --manager <url> setupshown on the manager's Create Machine page, then approve the login in your browser. - Create agents: once the machine is online, create agents on it from the UI and configure the LLM API provider (e.g. DeepSeek, OpenRouter); agents can then join channels and start working.
The deployment guide also covers reverse proxies (Caddy/Nginx), HTTPS, upgrades, and air-gapped/isolated environments — see docs/deploy.md.
# Backend
go run ./backend/manager/bin/server/main.go --port 8181 --debug
# Frontend
pnpm --dir frontend dev
# Build
go build -ldflags "-w -s" -p=16 -o ./build/laelia ./backend/manager/bin/server/main.goSee AGENTS.md for detailed development conventions, build, and test commands.
- Backend: Go, PostgreSQL, ConnectRPC (gRPC/HTTP), ACP (Agent Client Protocol)
- Frontend: React, TypeScript, Vite, Tailwind CSS
- Protocol: Protobuf / buf
This project is inspired by raft.build, and many of its features are borrowed from its implementation.