Tailchat Documentation

repository·master·Indexed 25 days ago

https://github.com/msgbyte/tailchat

Tailchat is a 'noIM' (Not only IM) application platform that combines instant messaging with a powerful plugin system to create customized workspaces. It features a microkernel front-end and microservice backend architecture, supporting extensibility via a plugin system, a dedicated CLI (tailchat-cli), and deployment options via Docker, Kubernetes, Sealos, and ClawCloud Run. The platform includes a design system, a desktop client, and various plugins for translation, LAN file transfers, and webview capabilities.

Tokens
70.9K
Snippets
154
Records
600
Agent score
84%

What's inside Tailchat

  1. Overview of Tailchat features and architecture

    master

    Tailchat is an open-source, pluggable instant messaging (IM) application designed for enterprises and private domain users. It utilizes a micro-kernel architecture on the frontend (based on mini-star) and a micro-service architecture on the backend (based on moleculer), allowing for high scalability and customization.

    Key Capabilities:

    • Messaging: Supports mentions, panel jumps, rich text, markdown, URL links, message reactions, file sharing, and image sending.
    • Communication: Supports voice and video calls.
    • Management: Includes RBAC (Role-Based Access Control), identity group management, user management, user muting, and an admin platform.
    • Extensibility: Features a plugin architecture for custom themes, message encryption, link metadata fetching, and more.
    • Integration: Provides an OpenAPI platform for Bots and OAuth, as well as GitHub notification subscriptions.
  2. Overview of Tailchat (noIM)

    master
    Tailchat is a next-generation 'noIM' (Not only IM) application designed for personal or team use. Unlike traditional IM tools like Slack or Discord, Tailchat is built as a highly customizable platform where IM serves as the center, and third-party applications are integrated via a plugin system to create unique workflows. It features a micro-kernel frontend architecture and a microservices backend architecture, making it suitable for large-scale cluster deployment.
  3. Overview of Tailchat

    master
    Tailchat is a next-generation 'noIM' (Not only IM) application designed as a highly customized application platform. Unlike traditional instant messaging apps, Tailchat is built for expansion through a plugin system, allowing developers to integrate third-party applications as if they were native functions. It features a microkernel front-end architecture and a microservice backend architecture, making it suitable for both individual use and large-scale enterprise deployment.
  4. Overview of Tailchat Design System

    master
    The client/packages/design package contains the frontend component library for Tailchat. Components in this package are designed to be business-agnostic and must have no environment dependencies, ensuring they can be reused across different parts of the application without side effects.
  5. Understand the Tailchat Project Architecture

    master

    Tailchat is a noIM (instant messaging) platform where plugins provide product extensions. The architecture consists of a React/TypeScript frontend microkernel and a Moleculer backend made of independently loadable services.

    Core Directory Structure

    • client/web: Browser application, routes, and MiniStar plugin host.
    • client/shared: Cross-platform API, sockets, state, hooks, and domain models.
    • client/packages: Reusable frontend design, SDK, and declaration-generation.
    • client/web/plugins: Pure frontend plugins and their manifests.
    • server/services: Core and OpenAPI Moleculer services.
    • server/models: Typegoose persistence models.
    • server/packages/sdk: TcService abstraction, service contracts, permissions, and gateway support.
    • server/plugins: Backend or full-stack plugins.
    • server/admin: Vite/React and Express administration system.
    • packages/types: Shared published data structures.
    • client/desktop & client/mobile: Yarn-managed shells bridging native capabilities.
    • apps: Non-core applications (CLI, GitHub app, OAuth demo, widget).
    • website: Docusaurus documentation and marketing site.
  6. Explore Pure Frontend Plugins

    master
    Tailchat supports a variety of pure frontend plugins that extend the client-side capabilities without requiring backend changes. These plugins can add features like AI assistants, file transfer tools, specialized message interpreters, and environment support (Electron/React Native).
  7. Understand Tailchat Open Platform capabilities

    master

    Tailchat provides two primary methods for interacting with external applications via its Open Platform:

    1. OAuth: Allows external applications to use Tailchat accounts for authentication (similar to 'Login with Google/GitHub'). This enables building unified user platforms based on Tailchat identities.
    2. Bot: Enables interactive chatbots that can both passively receive external messages and actively forward internal chat requests to external applications for processing.

    Note on OAuth vs IAM: The com.msgbyte.iam plugin allows logging into Tailchat using external accounts (e.g., GitHub). In contrast, the Open Platform's OAuth capability uses Tailchat accounts to log into other platforms.

  8. Tailchat Architecture Overview

    master
    Tailchat is designed with a plug-in architecture, allowing it to be customized and extended to meet various personal and enterprise needs. This architecture facilitates secondary development based on the core system and supports a wide range of functional expansions through plugins.
  9. Understand the Tailchat project directory structure

    master

    The repository is organized into several main directories:

    • apps: Non-core applications including cli, github-app, oauth-demo, and widget.
    • client: Client-side code containing desktop, mobile, web (with plugins and src), packages, and shared code.
    • packages: Contains types used by both frontend and backend.
    • server: Backend code including admin, models, plugins, and services.
    • website: The official website source.