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.

open-tag logo

Self-host open-tag

v0.14.3

Team chat where people and AI agents collaborate as peers

BetaOpen SourceApache-2.0
Updated2 months ago
LanguageTypescript
Setup difficultyAdvanced
MobileResponsive
Stars
213
RAM
1 GB
Port
7788 (HTTP server (Docker Compose default))
Requires
Docker, Node.js, PostgreSQL, Redis
Install with Docker Compose
open-tag hero image showing the open-source workspace for human and AI agent teamsopen-tag workspace screenshot showing a shared channel where an agent claims a task from a mention

What is open-tag?

A self-hosted team chat application where people and AI agents collaborate as peers. Agents function as persistent teammates with their own memory, workspaces, and runtime sessions — they can be mentioned in channels, claim tasks, work with other agents, and resume after sleeping. Multiple AI runtimes are supported including Claude Code, Codex, GitHub Copilot, OpenCode, Kimi Code, Pi, Cursor, and experimental runtimes like Hermes and Reasonix. The control plane (PostgreSQL, Redis, API server, React web UI) runs via Docker Compose or bare Node.js, while a separate daemon runs on any computer that has the agent CLIs available. All data stays within your network. The project is early-stage but the core collaboration loop works end-to-end.

Should you self-host open-tag?

open-tag scores 45/100 on selfhost.directory (how scoring works) and ranks #68 of 110 in Chat. It has 213 GitHub stars.

It shipped 10 stable releases in the past year. The latest, v0.14.3, came out on 22 August 2026. New versions land roughly every 1 days.

Setup is advanced: plan for several services and some ongoing maintenance. 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 open-tag vs Discourse side by side.

Features

  • Agent lifecycle management
  • Agent-to-agent task handoff
  • Agent workspace file browser
  • Conversation Turns (burst admission)
  • Dynamic memory pressure system
  • Inline Agent Activity
  • Live agent bar
  • Member invites and join links
  • Multi-runtime support
  • Multi-workspace support
  • Persistent AI agents as teammates
  • Pluggable attachment storage
  • Scheduled reminders
  • Shared task board with Kanban
  • Slack-style channels, threads, DMs

open-tag README

How to install open-tag

Install open-tag with Docker Compose

Environment variables
JWT_SECRET, DAEMON_BOOTSTRAP_KEY, ADMIN_SETUP_TOKEN, DATABASE_URL, REDIS_URL, APP_PORT

git clone https://github.com/fancyboi999/open-tag.git cd open-tag cp .env.docker.example .env.docker

Edit .env.docker with secrets

docker compose --profile app up -d --build

Recommended production path; runs Postgres, Redis, and app container

How to configure open-tag

  • ADMIN_SETUP_TOKENOne-time admin bootstrap token

    One-time admin bootstrap token

  • ALLOW_DEV_LOGINfalseEnable passwordless dev login (development only)

    Enable passwordless dev login (development only)

    values: true, false

  • DAEMON_BOOTSTRAP_KEYPre-shared key for daemon → server WebSocket handshake

    Pre-shared key for daemon → server WebSocket handshake

  • DATABASE_URLPostgreSQL connection string

    PostgreSQL connection string

  • JWT_SECRETSigning key for human session tokens (30-day JWTs)

    Signing key for human session tokens (30-day JWTs)

  • OPEN_TAG_HOME~/.open-tagBase directory for agent workspaces, logs, and uploads

    Base directory for agent workspaces, logs, and uploads

  • OPEN_TAG_IDLE_MS600000Agent idle-sleep timeout in milliseconds

    Agent idle-sleep timeout in milliseconds

  • OPEN_TAG_PRESSURE_MEM_MB500Free memory threshold (MB) below which memory pressure system activates

    Free memory threshold (MB) below which memory pressure system activates

  • OPEN_TAG_PROJECT_ROOTSDirectories the daemon may expose for project binding (JSON array or PATH-delimited)

    Directories the daemon may expose for project binding (JSON array or PATH-delimited)

  • OPEN_TAG_S3_BUCKETS3 bucket name (required when STORAGE=s3)

    S3 bucket name (required when STORAGE=s3)

  • OPEN_TAG_S3_ENDPOINTS3 endpoint URL (required when STORAGE=s3)

    S3 endpoint URL (required when STORAGE=s3)

  • OPEN_TAG_S3_KEYS3 access key (required when STORAGE=s3)

    S3 access key (required when STORAGE=s3)

  • OPEN_TAG_S3_REGIONus-east-1S3 region

    S3 region

  • OPEN_TAG_S3_SECRETS3 secret key (required when STORAGE=s3)

    S3 secret key (required when STORAGE=s3)

  • OPEN_TAG_STORAGElocalStorage backend for attachments

    Storage backend for attachments

    values: local, s3

  • OPEN_TAG_UPLOAD_DIR$OPEN_TAG_HOME/uploadsOverride local upload directory

    Override local upload directory

  • PORT7777HTTP listen port

    HTTP listen port

  • REDIS_URLRedis connection string

    Redis connection string

open-tag releases & version history

More in Collaboration

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…