Metadata-Version: 2.4
Name: hybrid-groups
Version: 0.2.0
Summary: A multi-user, multi-agent collaboration platform
Author-email: Martin Krasser <martin@gradion.ai>, Christoph Stumpf <chris@gradion.ai>
License-Expression: Apache-2.0
License-File: LICENSE
Requires-Python: <3.14,>=3.11
Requires-Dist: aioconsole<0.9,>=0.8.1
Requires-Dist: aiodocker<0.25,>=0.24.0
Requires-Dist: aiofiles<25,>=24.1.0
Requires-Dist: aiohttp<4,>=3.11.16
Requires-Dist: bcrypt<5,>=4.3.0
Requires-Dist: composio-client>=1.7.0
Requires-Dist: cryptography<46,>=45.0.3
Requires-Dist: datasets<4,>=3.6.0
Requires-Dist: fastapi[all]<0.116,>=0.115.12
Requires-Dist: gitingest<0.2,>=0.1.4
Requires-Dist: google-genai<2,>=1.21.1
Requires-Dist: group-genie<0.1,>=0.0.1
Requires-Dist: markdown-to-mrkdwn<0.3,>=0.2.0
Requires-Dist: mcp<2,>=1.13.0
Requires-Dist: pillow<12,>=11.3.0
Requires-Dist: pygithub<3,>=2.6.1
Requires-Dist: rich<15,>=14.0.0
Requires-Dist: slack-bolt<2,>=1.23.0
Description-Content-Type: text/markdown

# Hybrid Groups

<p align="left">
    <a href="https://gradion-ai.github.io/hybrid-groups/"><img alt="Website" src="https://img.shields.io/website?url=https%3A%2F%2Fgradion-ai.github.io%2Fhybrid-groups%2F&up_message=online&down_message=offline&label=docs"></a>
    <a href="https://pypi.org/project/hybrid-groups/"><img alt="PyPI - Version" src="https://img.shields.io/pypi/v/hybrid-groups?color=blue"></a>
    <a href="https://github.com/gradion-ai/hybrid-groups/releases"><img alt="GitHub Release" src="https://img.shields.io/github/v/release/gradion-ai/hybrid-groups"></a>
    <a href="https://github.com/gradion-ai/hybrid-groups/actions"><img alt="GitHub Actions Workflow Status" src="https://img.shields.io/github/actions/workflow/status/gradion-ai/hybrid-groups/test.yml"></a>
    <a href="https://github.com/gradion-ai/hybrid-groups/blob/main/LICENSE"><img alt="GitHub License" src="https://img.shields.io/github/license/gradion-ai/hybrid-groups?color=blueviolet"></a>
</p>

[*Hybrid Groups*](https://gradion-ai.github.io/hybrid-groups/) integrates [Group Genie](https://gradion-ai.github.io/group-genie/) into Slack and GitHub. It enables existing single-user AI agents to participate in group chat conversations without requiring modification to the agents themselves. While many AI agents excel at responding to direct queries from individual users, they typically cannot handle multi-party conversations where relevant information emerges from complex exchanges between multiple participants. *Hybrid Groups* solves this by combining intelligent pattern detection with a flexible agent integration layer. It monitors group chats, detects conversation patterns, and reformulates multi-party exchanges into self-contained queries that AI agents can process.

<div align="left">
  <a href="https://www.youtube.com/watch?v=OxOmRsNin4o">
    <img src="https://raw.githubusercontent.com/gradion-ai/hybrid-groups/main/docs/images/overview/video.jpg" alt="Watch the video" style="width: 50%;">
  </a>
</div>

*Hybrid Groups* supports user-specific credentials and preferences, session persistence for resuming conversations after restarts, service connectors for accessing 250+ external services (Gmail, Notion, Figma, etc.), media attachment support, action approval workflows, and custom commands. Agents act on behalf of individual team members using their personal credentials and preferences, enabling users to securely access their private resources while maintaining proper access boundaries to other users.

> [!TIP]
> Check the [tutorial](https://gradion-ai.github.io/hybrid-groups/tutorial) for a feature overview with examples.

<table>
<tr>
<td><a href="https://gradion-ai.github.io/hybrid-groups/images/overview/overview-1.png" target="_blank"><img src="https://gradion-ai.github.io/hybrid-groups/images/overview/overview-1.png" alt="Hybrid Groups" /></a></td>
<td><a href="https://gradion-ai.github.io/hybrid-groups/images/overview/overview-3.png" target="_blank"><img src="https://gradion-ai.github.io/hybrid-groups/images/overview/overview-3-crop.png" alt="Hybrid Groups" /></a></td>
</tr>
</table>
