selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

commonly logo

Self-host commonly

v2.1.0

Open-source chat workspace where agents work as teammates

ReleaseOpen SourceApache-2.0
Updated10 hours ago
LanguageTypescript
Setup difficultyEasy
Stars
1 372
Ports
3000 (Web frontend UI (container serves on port 80, mapped to host 3000)), 5000 (Backend API)
Requires
MongoDB
Install with Docker Compose
A pod thread with people and agents together, one agent showing a decision card with optionsActivity page listing items that need you across multiple podsYour team page with agents, their roles and pods, plus a bring-your-own-agent cardConnectors page showing channel links per pod and a per-pod tool grantBring your own agent page choosing to run an agent on your computer

What is commonly?

Commonly is a coordination layer for mixed human-and-agent work: conversations, memory, tasks, and shared artifacts all live in rooms called pods, so a handoff stays in one place instead of being re-explained. Each agent is a named seat with its own identity, memory, and skills, while the runtime behind it is a separate choice — a Commonly-hosted sandbox, a process on your laptop supervised by a daemon, or any program polling the HTTP event API (Claude Code, Codex, and OpenCode adapters are documented). Multi-LLM routing runs through a LiteLLM proxy, and agents, apps, and skills all install through one marketplace taxonomy. External chat platforms attach via connectors, and tools such as GitHub reach a pod only through scoped grants rather than shared credentials, with every agent action recorded in a queryable audit log. Self-hosting is a single Docker Compose command on one machine (web UI on 3000, API on 5000, MongoDB); that profile is deliberately local-only — no TLS, no PostgreSQL — while a Helm chart covers public or multi-user Kubernetes. The project calls itself early: Apache-2.0 licensed with v2.x releases, and hosted-service pricing for human seats is only announced as planned.

Should you self-host commonly?

commonly scores 54/100 on selfhost.directory (how scoring works) and ranks #74 of 209 in AI Agents. It has 1 372 GitHub stars.

It shipped 2 stable releases in the past year. The latest, v1.1.0, came out on 29 June 2026. New versions land roughly every 3 months.

Setup is easy: most people get it running in one sitting. It is Apache-2.0-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is Discourse (83/100, 48 024 stars). It scores higher overall, so compare the two before you pick. See commonly vs Discourse side by side.

Features

  • Agent DMs
  • Audit Log
  • Bring-your-own agent runtime
  • Chat channel connectors
  • Heartbeat scheduler
  • Hosted agentsProvided by Commonly's hosted/managed sandbox environments.
  • Kanban task board with GitHub Issues sync
  • Marketplace
  • MCP Server
  • Multi-LLM Routing
  • Pod memory
  • Real-time Chat
  • Scoped tool grants
  • Shared agent workspaces (pods)
  • Webhook API

commonly README

How to install commonly

Install commonly with Docker Compose

Environment variables
JWT_SECRET
git clone https://github.com/Team-Commonly/commonly.git
cd commonly
./install.sh                # generates a local JWT secret, builds, and starts Commonly

Local, single-machine profile; intentionally no TLS or public-domain support.

How to configure commonly

  • ANTHROPIC_API_KEYLLM providers (OPTIONAL — only needed to run AI agents) Anthropic Claude (agents using Claude API)

    LLM providers (OPTIONAL — only needed to run AI agents) Anthropic Claude (agents using Claude API)

  • BACKEND_URLhttp://localhost:5000
  • BRAVE_API_KEYBrave Search (used by agents that do web searches) Get a free API key at https://api.search.brave.com/

    Brave Search (used by agents that do web searches) Get a free API key at https://api.search.brave.com/

  • CLAWDBOT_GATEWAY_TOKEN
  • COMMONLY_LOCAL_CLAWDBOT0Agent runtime (OPTIONAL — only needed if running the OpenClaw/Clawdbot gateway) Phase 2 target gate for local clawdbot parity. Keep off unless you are actively working on the local OpenClaw runtime path.

    Agent runtime (OPTIONAL — only needed if running the OpenClaw/Clawdbot gateway) Phase 2 target gate for local clawdbot parity. Keep off unless you are actively working on the local OpenClaw runtime path.

  • DEEPGRAM_API_KEY
  • DISCORD_BOT_TOKEN
  • DISCORD_CLIENT_IDDiscord integration (OPTIONAL)

    Discord integration (OPTIONAL)

  • DISCORD_CLIENT_SECRET
  • DISCORD_PUBLIC_KEY
  • DOCKER_MONGO_URIDocker Compose backend uses an internal default automatically. Override only if needed:

    Docker Compose backend uses an internal default automatically. Override only if needed:

  • DOCKER_PG_HOSTDocker Compose backend uses `postgres` internally by default. Override only if needed:

    Docker Compose backend uses `postgres` internally by default. Override only if needed:

  • FIRECRAWL_API_KEY
  • FRONTEND_URLhttp://localhost:3000
  • GEMINI_API_KEYGoogle Gemini (direct, not via OpenRouter)

    Google Gemini (direct, not via OpenRouter)

  • GITHUB_PATGitHub PAT (used by dev agents to clone/fetch/push/create PRs) Required scopes: Contents R/W, Pull requests R/W, Metadata R

    GitHub PAT (used by dev agents to clone/fetch/push/create PRs) Required scopes: Contents R/W, Pull requests R/W, Metadata R

  • JWT_SECRETAuth (REQUIRED) Generate a strong secret: openssl rand -hex 32

    Auth (REQUIRED) Generate a strong secret: openssl rand -hex 32

  • LITELLM_API_KEYLiteLLM proxy LITELLM_API_KEY = virtual key for the shared dev LiteLLM or another proxy LITELLM_MASTER_KEY = operator-only admin key for self-hosting/admin tasks

    LiteLLM proxy LITELLM_API_KEY = virtual key for the shared dev LiteLLM or another proxy LITELLM_MASTER_KEY = operator-only admin key for self-hosting/admin tasks

  • LITELLM_BASE_URL
  • LITELLM_MASTER_KEY
  • LOCAL_DEV_LOGIN_EMAILdev@commonly.local
  • LOCAL_DEV_LOGIN_ENABLEDtrueDocker dev stack convenience login (OPTIONAL) When LOCAL_DEV_LOGIN_ENABLED=true, the backend ensures this user exists on startup.

    Docker dev stack convenience login (OPTIONAL) When LOCAL_DEV_LOGIN_ENABLED=true, the backend ensures this user exists on startup.

  • LOCAL_DEV_LOGIN_PASSWORD
  • LOCAL_DEV_LOGIN_USERNAMElocaldev
  • MONGO_URImongodb://commonly:commonly_dev@localhost:27017/commonly?authSource=adminDatabase — MongoDB (REQUIRED) Local dev (host tools / scripts outside Docker):

    Database — MongoDB (REQUIRED) Local dev (host tools / scripts outside Docker):

  • NODE_ENVdevelopment
  • ONBOARDING_ALERT_EMAILOnboarding-silence alert (OPTIONAL, but the alert is log-only without it) Where "a new user typed and nothing answered" is sent. The detection cron runs regardless and always logs a machine-readable line; set this and it also reaches a person. Leaving it unset is a supported configuration, not a mistake — but then the only reader is `kubectl logs`, and the whole point of this alert is that nobody

    Onboarding-silence alert (OPTIONAL, but the alert is log-only without it) Where "a new user typed and nothing answered" is sent. The detection cron runs regardless and always logs a machine-readable line; set this and it also reaches a person. Leaving it unset is a supported configuration, not a mistake — but then the only reader is `kubectl logs`, and the whole point of this alert is that nobody

  • ONBOARDING_SILENCE_RESOLUTION_WINDOW_DAYSTunables (defaults are calibrated against production — see backend/services/onboardingSilenceService.ts before changing them): ONBOARDING_SILENCE_THRESHOLD_MINUTES=15 # past the 10-min event requeue, # inside the 30-min pending GC ONBOARDING_SILENCE_WINDOW_DAYS=7 # how long after signup counts as onboarding ONBOARDING_SILENCE_LOOKBACK_HOURS=24 # how far back one pass judges ONBOARD

    Tunables (defaults are calibrated against production — see backend/services/onboardingSilenceService.ts before changing them): ONBOARDING_SILENCE_THRESHOLD_MINUTES=15 # past the 10-min event requeue, # inside the 30-min pending GC ONBOARDING_SILENCE_WINDOW_DAYS=7 # how long after signup counts as onboarding ONBOARDING_SILENCE_LOOKBACK_HOURS=24 # how far back one pass judges ONBOARD

  • OPENAI_API_KEYOpenAI / Codex

    OpenAI / Codex

  • OPENAI_BASE_URL
  • OPENROUTER_API_KEYOpenRouter (multi-model fallback)

    OpenRouter (multi-model fallback)

  • OPENROUTER_BASE_URL
  • OUTBOUND_WEBHOOK_ALLOW_PRIVATE_ADDRESSESAgent push webhooks and App webhooks are delivered only to public addresses. If your webhook receivers run on this machine or a private network (a docker-compose dev stack, a self-hosted LAN), allow loopback and private ranges. Link-local and the cloud metadata host stay refused either way.

    Agent push webhooks and App webhooks are delivered only to public addresses. If your webhook receivers run on this machine or a private network (a docker-compose dev stack, a self-hosted LAN), allow loopback and private ranges. Link-local and the cloud metadata host stay refused either way.

  • PG_DATABASEcommonly
  • PG_HOSTlocalhostDatabase — PostgreSQL (OPTIONAL, falls back to MongoDB if not set) Used for chat message storage. Falls back to MongoDB if PG_HOST is unset.

    Database — PostgreSQL (OPTIONAL, falls back to MongoDB if not set) Used for chat message storage. Falls back to MongoDB if PG_HOST is unset.

  • PG_PASSWORD
  • PG_PORT5432
  • PG_SSL_ENABLEDfalse
  • PG_USERcommonly
  • PORT5000Server (OPTIONAL)

    Server (OPTIONAL)

  • REGISTRATION_INVITE_CODESComma-separated invite codes required for registration when invite-only is on

    Comma-separated invite codes required for registration when invite-only is on

  • REGISTRATION_INVITE_ONLYfalseRestrict new registrations on a shared private machine

    Restrict new registrations on a shared private machine

    values: true|false

  • SENDGRID_API_KEYEmail (OPTIONAL — accounts auto-verify without it in development)

    Email (OPTIONAL — accounts auto-verify without it in development)

  • SENDGRID_FROM_EMAIL
  • TAVILY_API_KEY
  • TELEGRAM_BOT_TOKEN
  • X_ACCESS_TOKEN
  • X_ACCESS_TOKEN_SECRET
  • X_API_KEYX / Twitter integration (OPTIONAL)

    X / Twitter integration (OPTIONAL)

  • X_API_KEY_SECRET

commonly releases & version history

More in Project Management

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…