Metadata-Version: 2.4
Name: elkar
Version: 0.1.6
Summary: The open-source protocol to send, track, and orchestrate tasks between AI agents
Project-URL: Homepage, https://elkar.co
Project-URL: Documentation, https://github.com/elkar-ai/elkar
Project-URL: Repository, https://github.com/elkar-ai/elkar
Project-URL: Issues, https://github.com/elkar-ai/elkar/issues
Author-email: Laurent Meunier <laurent@breezyai.co>
License-Expression: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: colorlog>=6.9.0
Requires-Dist: fastapi
Requires-Dist: pydantic
Requires-Dist: sse-starlette>=2.3.3
Requires-Dist: starlette>=0.46.2
Requires-Dist: uvicorn>=0.34.2
Description-Content-Type: text/markdown

# Elkar

**The open-source protocol to send, track, and orchestrate tasks between AI agents.**

No more silos. Elkar lets your agents collaborate — even across companies or tech stacks.

[Website](http://elkar.co) &nbsp;&nbsp;&nbsp; [💬 Discord](https://discord.gg/f5Znhcvm) &nbsp;&nbsp;&nbsp; [Open Issues](https://github.com/elkar-ai/elkar/issues) &nbsp;&nbsp;&nbsp; [Open PRs](https://github.com/elkar-ai/elkar/pulls)

## ✨ What is Elkar?

Elkar is an open-source framework designed to coordinate **multiple AI agents**, even across different companies or systems.

Use it to:
- **Send tasks** to any agent via API
- **Track long-running jobs** asynchronously
- **Stream workflows** between agents in real-time
- **Browse and manage task history** for visibility

Built for developers and teams who want to orchestrate autonomous agent networks — without reinventing the wheel.

## 🧪 Getting Started

1. **Clone the repo**

## 📦 Python Package

The  Python package provides a simple implementation of the A2A protocol for building and connecting AI agents.



### Basic Usage

```python
from elkar import A2AServer, TaskManager

# Create your task manager
task_manager = TaskManager()

# Initialize the A2A server
server = A2AServer(
    task_manager=task_manager,
    host="0.0.0.0",
    port=5000
)

# Start the server
server.start()
```

### Features
- Full A2A protocol implementation
- Built-in task management
- Support for streaming responses
- Push notifications
- State transition history
- CORS support
- Custom authentication

## 🖥️ A2A Client

The A2A client is a React + TypeScript application for testing and interacting with A2A-compatible servers.

### Features
- Configure server URL (authentication coming soon)
- Send messages to A2A Servers
- View task status and responses
- Get task details by ID
- Cancel tasks
- Display artifacts returned by agents
- Task management

### Getting Started with the Client

1. **Install dependencies**
```bash
cd a2a-client
npm install
```

2. **Start the development server**
```bash
npm run dev
```

3. **Open your browser** at `http://localhost:5173`

### Usage
- Configure your A2A server URL and API key
- Send tasks and messages to agents
- Monitor task status and responses
- Manage task history and artifacts

## Community
Join our [Discord server](https://discord.gg/f5Znhcvm)

## Contribute
We ❤️ feedback, issues, PRs, and ideas!
Open a [pull request](https://github.com/elkar-ai/elkar/pulls), and we'll review it as soon as possible.

If you find Elkar useful, a GitHub ⭐️ would mean a lot!
It helps more people discover the project and join the journey! 


