Lemma Platform
github.com/lemma-work/lemma-platform- Category
- AI Agents
- Rank
- No. 1101Tools index
Previous survey · No. 1095 ·
- Pricing
- Open Source
- Type
- TOOL
- Use case
- Productivity & Collaboration
- Interfaces
- CLI · Desktop · Client SDK
- GitHub
- 647 stars
- Latest release
- desktop-nightly-7c223432-163-1
- Date
About
Lemma is an open-source workspace where humans and AI agents work together as one team. The repository contains a backend, frontend, CLI, agent harness, Python and TypeScript clients, skills, and a desktop app.
What it does
Lemma gives a group of people a shared AI colleague that lives in a pod: a self-contained environment holding data tables, markdown memory files, agents, scheduled workflows, access rules and small internal apps. People reach it from Slack, Teams, Telegram, WhatsApp, email or a web app, and every entry point reads and writes the same records under the same rules. A coding assistant such as Claude Code or Codex authors the pod as files, then imports and verifies it through a command-line tool. Agents keep acting on schedules, webhooks and table events after everyone logs off.
Why it's ranked here
The engineering discipline is written down and mostly enforced by CI gates rather than review. State changes and the events announcing them commit in one transaction, consumers assume at-least-once delivery, and the generated client libraries fail the build if they drift from the committed API spec. The licensing split is deliberate: copyleft for the server, permissive for client tools. It runs on a laptop, on one self-hosted machine, or hosted, and can drive agents through a Claude Code or Codex subscription a team already pays for. A serious option for teams that want shared agents with real permissions.
What's good
Approvals are concrete. When an agent asks to use a tool, the request is parked until a person decides, and an unanswered request is denied when its timeout elapses. An "always allow" is remembered for that conversation and releases sibling requests in the same parallel batch, so nobody approves the same thing five times. The self-hosting guide is candid: agent sandboxes sit on a network that cannot reach the database, sandbox images are refused unless pinned by digest, and pod apps live on subdomains that never receive operator session cookies. The guide states plainly that the Docker socket equals root on the host.
Tradeoffs
The server core is AGPLv3, so modifying it and offering it over a network obliges you to publish those changes. Self-hosting asks for a dedicated Linux machine with 4 vCPU, 8 GB of RAM and 40 GB of disk, and the default sandbox mode gives the API and worker containers root-equivalent access to the host. Nothing works without your own model provider key, and app connectors want a separate Composio key. Email ships writing to disk, so invitations and password resets do not arrive until you configure SMTP or Resend. Installing the command-line tool with pip on an older Python quietly gets a stale release.
How to use it well
Fit: a small team that wants one agent handling shared work, such as triaging feedback or routing approvals, across the chat tools it already uses, with per-person and per-row access. Start on the hosted service or the desktop app before self-hosting. Install the command-line tool with uv rather than pip, run its doctor command when the app and the terminal disagree, and let your coding assistant generate the starter pod. On a server, either dedicate the machine or switch sandboxes to E2B, back up the encryption key with the database, and set a real email transport before inviting anyone. It is not a single-user coding agent.
Technical notes+
ARCHITECTURE.md describes a FastAPI backend assembled from 14 registered modules, split into API and worker processes, with PostgreSQL (separate app and per-pod datastore databases under row-level security), Redis streams and streaq jobs, object storage and self-hosted SuperTokens; writes use an outbox committed with the domain change, and consumers are inbox-backed and idempotent. lemma-backend/app/app.py rewrites every 4xx/5xx OpenAPI response to one ErrorResponse envelope so generated SDKs match the server. desktop/agent-host/src/permissions/mod.rs implements PermissionGate keyed by (run, request), denying on timeout and storing AlwaysAllowScope per session. docs/self-hosting.md documents the compose topology and three networks; docs/local-runtime-vm.md covers the Apple Silicon guest VM.
Observed
- License
- AGPLv3 for backend, frontend and desktop; Apache-2.0 for CLI, SDKs, skills, stack tool and bundle format
- Languages
- Python (FastAPI backend, CLI, stack tool), Rust (desktop agent host and local daemon), TypeScript (web app and SDK)
- Interfaces
- Web app, command-line tool, Python and TypeScript SDKs generated from a committed OpenAPI spec, pod MCP server mount
- Deployment
- Hosted cloud, desktop app with a private local VM, or self-hosted via Docker Compose
- Install surface
- CLI published on PyPI as lemma-terminal, installed with uv tool install
- Model providers
- Claude Code, Codex, Cursor or OpenCode login via the desktop agent host, or any OpenAI- or Anthropic-compatible endpoint
- Chat surfaces
- Slack, Microsoft Teams, Telegram, WhatsApp and email
- Sandboxing
- Agent code runs in Docker, E2B or the desktop VM, never in the backend process
Read from README.md, ARCHITECTURE.md, LICENSE, docs/self-hosting.md, docs/local-runtime-vm.md, lemma-backend/app/app.py, lemma-cli/lemma_cli/cli.py, desktop/agent-host/src/lib.rs, desktop/agent-host/src/permissions/mod.rs, lemma-stack/lemma_stack/app.py.
Tags
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.