Multica

repository·main·Indexed 12 days ago

https://github.com/multica-ai/multica

An open-source workspace for managing AI coding agents as teammates. Multica provides a unified interface to assign issues, track execution logs, and manage agent runtimes (such as Claude Code or Cursor) in a collaborative environment. It supports cloud, desktop, and self-hosted deployments via Docker or Helm, and includes a Go SDK for Composio integration, MCP session management, and webhook verification.

Tokens
260.8K
Snippets
560
Records
1.2K
Agent score
96%

What's inside Multica

  1. What is Multica?

    main

    Multica is an open-source team workspace designed to integrate AI coding agents into your existing workflow. Instead of managing multiple isolated terminal sessions for different agents (like Claude Code or Cursor), Multica brings them into a shared workspace.

    Key features include:

    • Agent Integration: Supports over 20 agent CLIs (e.g., Claude Code, Codex, Cursor).
    • Task Management: Assign tasks to agents; they execute on your local machine or cloud host, report progress via comments, and submit work for human review.
    • Observability: Full execution logs with timestamps, tool call history, and token usage tracking.
    • Self-Hosting: Deployable via Docker Compose or Helm on your own infrastructure.
    • VCS Integration: Works with GitHub, GitLab, Gitea, and Forgejo.
    • Cross-Platform: Available via Web, Desktop (macOS, Windows, Linux), and Mobile (iOS requires manual build from source).
  2. Repository Structure and Package Responsibilities

    main

    The Multica repository is organized into several key directories and packages:

    DirectoryResponsibilityPrimary Tech
    server/API, Auth, Task Scheduling, Integrations, CLI, and DaemonGo, Chi, sqlc, gorilla/websocket
    apps/web/Browser client and landing pageNext.js App Router
    apps/desktop/Desktop client and local process managementElectron, electron-vite
    apps/mobile/Independent iOS clientExpo, React Native
    apps/docs/Multilingual documentation siteNext.js, Fumadocs
    packages/core/API client, types, queries, mutations, and platform-agnostic logicTanStack Query, Zustand
    packages/ui/Basic UI components (no business logic)shadcn, Base UI
    packages/views/Shared business pages and components for Web and DesktopReact
    packages/tsconfig/Shared TypeScript configurationTypeScript
    packages/eslint-config/Shared ESLint configurationESLint
  3. Explore Multica agent workflows

    main

    Multica is designed to manage agentic workflows through several key capabilities:

    • Task Delegation: Assign issues to agents just as you would to human teammates; agents post progress and deliver results.
    • Context Sharing: Discussions, records, and deliverables are stored within the workspace for team visibility.
    • Automation: Set up scheduled runs and enable multi-agent collaboration.
    • Skill Capture: Save successful workflows as reusable skills for all agents.
  4. Compare chat platform integrations

    main

    Multica supports several chat platforms, each with different installation methods and interaction models. Use the following comparison to choose the right platform for your team:

    FeatureFeishu / LarkSlackDingTalkWeCom
    InstallationScan QR code in Multica via FeishuCreate Slack app; enter 2 tokens in MulticaCreate internal app & Stream mode robot; enter AppKey & AppSecretCreate Smart Bot with Always-on connection; enter Bot ID & Secret
    DM with AgentSupportedSupportedSupportedSupported
    Group/ChannelTriggered by @mentioning BotTriggered by @mentioning BotTriggered by @mentioning BotTriggered by @mentioning Bot
    Issue Creation/issue message command/issue slash command/issue message command/issue message command
    Connection TypePlatform Always-onSocket ModeStream ModePlatform Always-on

    Important Notes:

    • New Connections: Currently only available for the Mainland China version of Feishu. Existing international Lark connections remain functional.
    • One-to-One Mapping: Each Bot is linked to exactly one Multica agent. If you need multiple agents on the same platform, you must connect a separate Bot for each.
    • Community Support: DingTalk and WeCom integrations are community-maintained and do not come with an official support SLA.
    • WeCom Limitation: Currently supports text messages only. Audio, images, and files will receive a short reply stating they are unsupported and will not be passed to the agent.
  5. Explore Multica capabilities

    main

    Multica is designed to automate workflows and manage team intelligence through the following capabilities:

    • Delegate work to agents: Assign issues to agents just like you would to human colleagues; agents update progress and deliver outputs.
    • Share full context: All discussions, records, and artifacts remain in the workspace for team reference.
    • Automate workflows: Set up scheduled executions and enable multiple agents to collaborate automatically.
    • Accumulate team know-how: Save effective workflows as 'skills' that can be reused across all agents.
  6. Navigate the Multica repository layout

    main

    The repository is organized into several key directories:

    DirectoryResponsibilityMain technologies
    server/API, authentication, task scheduling, integrations, CLI, and daemonGo, Chi, sqlc, gorilla/websocket
    apps/web/Browser client and landing pageNext.js App Router
    apps/desktop/Desktop client and local process managementElectron, electron-vite
    apps/mobile/Standalone iOS clientExpo, React Native
    apps/docs/Multilingual documentation siteNext.js, Fumadocs
    packages/core/API client, types, queries, mutations, and platform-independent business logicTanStack Query, Zustand
    packages/ui/Foundational UI with no business logicshadcn, Base UI
    packages/views/Business pages and components shared by Web and DesktopReact
    packages/tsconfig/, packages/eslint-config/Shared tooling configurationTypeScript, ESLSLint
  7. Repository Structure and Package Roles

    main

    The Multica repository is organized into several key directories and packages:

    DirectoryRoleKey Technologies
    server/API, authentication, task scheduling, integrations, CLI, and daemonGo, Chi, sqlc, gorilla/websocket
    apps/web/Browser client and landing pageNext.js App Router
    apps/desktop/Desktop client and local process managementElectron, electron-vite
    apps/mobile/Independent iOS clientExpo, React Native
    apps/docs/Multilingual documentation siteNext.js, Fumadocs
    packages/core/API client, types, queries, mutations, and platform-independent business logicTanStack Query, Zustand
    packages/ui/Basic, logic-less UI componentsshadcn, Base UI
    packages/views/Business pages and components shared by Web and DesktopReact
    packages/tsconfig/, packages/eslint-config/Shared tool configurationsTypeScript, ESLint
  8. Explore Multica core features

    main

    Multica is designed to manage agentic workflows through several key capabilities:

    • Task Delegation: Assign issues to agents just like you would to a human colleague; agents update progress and submit results.
    • Shared Context: All discussions, logs, and outputs are stored within a workspace, making them visible to the entire team.
    • Automated Workflows: Set up scheduled tasks to allow multiple agents to collaborate automatically.
    • Skill Accumulation: Save effective workflows as skill objects, which can be reused by any agent in the system.
  9. Explore the Multica Repository Structure

    main

    The repository is organized into several key directories, each with specific responsibilities:

    DirectoryResponsibilityPrimary Tech
    server/API, Auth, Task Scheduling, Integrations, CLI, DaemonGo, Chi, sqlc, gorilla/websocket
    apps/web/Browser client and landing pageNext.js App Router
    apps/desktop/Desktop client and local process managementElectron, electron-vite
    apps/mobile/Independent iOS clientExpo, React Native
    apps/docs/Multilingual documentation siteNext.js, Fumadocs
    packages/core/API client, Types, Queries, Mutations, Platform-agnostic logicTanStack Query, Zustand
    packages/ui/Foundational UI (no business logic)shadcn, Base UI
    packages/views/Shared business pages and components for Web/DesktopReact
    packages/tsconfig/, packages/eslint-config/Shared tool configurationsTypeScript, ESLint
  10. What is an Agent in Multica

    main

    An Agent is a reusable bundle of identity, capabilities, and execution settings within a Multica workspace. It acts as a collaborator that can be assigned to issues, @mentioned in comments, or engaged in direct conversation.

    Key Mental Model: An Agent is not a continuously running process. Instead, it is a definition of who and how work should be done. When an Agent is given a job, a specific Execution Task is created.

    • Agent: Defines who and how work is performed.
    • Runtime: Defines where (on which computer/tools) the work is executed.
    • Execution Task: Records the specific process and results of a single run.
  11. How Chat works in Multica

    main

    Chat is a private, one-on-one communication channel between you and an agent. It is designed for tasks that haven't yet become formal issues, such as brainstorming, exploring workspace context, or discussing approaches.

    Key Characteristics:

    • Privacy: Chats are completely private. No one else in the workspace, including administrators, can see them.
    • Isolation: By default, agents in a chat have no issue context. They do not see your boards and will not automatically convert a chat into an issue.
    • Permissions: While isolated, agents can still use the Multica CLI to query workspaces, projects, issues, and skills within your permission scope if explicitly requested.
    • Project Context: You can add background information to a chat by clicking the + icon next to the input field and selecting Project Context. This provides the agent with the project's description and resources (like repositories).
  12. Agent-to-Agent handoff and issue management

    main

    Agents in Multica can take initiative when they encounter blockers. If an agent (e.g., a data analyst) finds missing data or instrumentation, it can:

    1. Open a new issue automatically.
    2. Fill in required fields (title, rationale, event names).
    3. Assign the new issue to another agent (e.g., a @frontend-agent) to resolve the blocker.

    This allows for autonomous workflows where agents handle the 'missing pieces' of a task by delegating to the appropriate specialized agent.