The identity, communication & payments layer for AI agents
๐ฌ๐ง English โข ๐ฉ๐ช Deutsch โข ๐ช๐ธ Espaรฑol โข ๐ซ๐ท Franรงais โข ๐ฎ๐ณ เคนเคฟเคเคฆเฅ โข ๐ฎ๐ณ เฆฌเฆพเฆเฆฒเฆพ โข ๐จ๐ณ ไธญๆ โข ๐ณ๐ฑ Nederlands โข ๐ฎ๐ณ เฎคเฎฎเฎฟเฎดเฏ
"Like sunflowers turning toward the light, agents collaborate in swarms - each one independent, yet together they create something greater."
curl -fsSL https://getbindu.com/install-bindu.sh | bashBindu (read: binduu) turns any AI agent into a production microservice. Build your agent in any framework โ Agno, LangChain, OpenAI SDK, even plain TypeScript โ call bindufy(), and get a service with DID identity, A2A protocol, OAuth2 auth, and crypto payments. No infrastructure code. No rewriting.
Works with Python, TypeScript, and Kotlin. Built on open protocols: A2A, AP2, and X402.
๐ Register your agent โข ๐ป Documentation โข ๐ฌ Discord Community
๐ฅ Watch Bindu in Action
๐ Prerequisites
Before installing Bindu, ensure you have:
- Python 3.12 or higher - Download here
- UV package manager - Installation guide
- API Key Required: Set
OPENROUTER_API_KEY,OPENAI_API_KEY, orMINIMAX_API_KEYin your environment variables. Free OpenRouter models are available for testing. MiniMax AI offers M2.7 with 1M context window.
Verify Your Setup
# Check Python version uv run python --version # Should show 3.12 or higher # Check UV installation uv --version
๐ฆ Installation
Users note (Git & GitHub Desktop)
On some Windows systems, git may not be recognized in Command Prompt even after installation due to PATH configuration issues.
If you face this issue, you can use GitHub Desktop as an alternative:
- Install GitHub Desktop from https://desktop.github.com/
- Sign in with your GitHub account
- Clone the repository using the repository URL: https://github.com/getbindu/Bindu.git
GitHub Desktop allows you to clone, manage branches, commit changes, and open pull requests without using the command line.
# Install Bindu uv add bindu # For development (if contributing to Bindu) # Create and activate virtual environment uv venv --python 3.12.9 source .venv/bin/activate # On macOS/Linux # .venv\Scripts\activate # On Windows uv sync --dev
Common Installation Issues (click to expand)
| Issue | Solution |
|---|---|
uv: command not found |
Restart your terminal after installing UV. On Windows, use PowerShell |
Python version not supported |
Install Python 3.12+ from python.org |
| Virtual environment not activating (Windows) | Use PowerShell and run .venv\Scripts\activate |
Microsoft Visual C++ required |
Download Visual C++ Build Tools |
ModuleNotFoundError |
Activate venv and run uv sync --dev |
๐ Quick Start
Option 1: Manual Setup
Create your agent script my_agent.py:
import os from bindu.penguin.bindufy import bindufy from agno.agent import Agent from agno.tools.duckduckgo import DuckDuckGoTools from agno.models.openai import OpenAIChat # Define your agent agent = Agent( instructions="You are a research assistant that finds and summarizes information.", model=OpenAIChat(id="gpt-4o"), tools=[DuckDuckGoTools()], ) # Configuration config = { "author": "your.email@example.com", "name": "research_agent", "description": "A research assistant agent", "deployment": { "url": os.getenv("BINDU_DEPLOYMENT_URL", "http://localhost:3773"), "expose": True, }, "skills": ["skills/question-answering", "skills/pdf-processing"] } # Handler function def handler(messages: list[dict[str, str]]): """Process messages and return agent response. Args: messages: List of message dictionaries containing conversation history Returns: Agent response result """ result = agent.run(input=messages) return result # Bindu-fy it bindufy(config, handler) # Use tunnel to expose your agent to the internet # bindufy(config, handler, launch=True)
Your agent is now live at the URL configured in deployment.url.
Set a custom port without code changes:
# Linux/macOS export BINDU_PORT=4000 # Windows PowerShell $env:BINDU_PORT="4000"
Existing examples that use http://localhost:3773 are automatically overridden when BINDU_PORT is set.
Option 2: TypeScript Agent
Same pattern, different language. Create index.ts:
import { bindufy } from "@bindu/sdk"; import OpenAI from "openai"; const openai = new OpenAI(); bindufy({ author: "your.email@example.com", name: "research_agent", description: "A research assistant agent", deployment: { url: "http://localhost:3773", expose: true }, skills: ["skills/question-answering"], }, async (messages) => { const response = await openai.chat.completions.create({ model: "gpt-4o", messages: messages.map(m => ({ role: m.role as "user" | "assistant" | "system", content: m.content, })), }); return response.choices[0].message.content || ""; });
Run it:
npm install @bindu/sdk openai npx tsx index.ts
The SDK launches the Bindu core automatically in the background. Your agent is live at http://localhost:3773 โ same A2A protocol, same DID, same everything.
See examples/typescript-openai-agent/ for the full working example with setup instructions.
Option 3: Zero-Config Local Agent
Try Bindu without setting up Postgres, Redis, or any cloud services. Runs entirely locally using in-memory storage and scheduler.
python examples/beginner_zero_config_agent.py
Option 4: Minimal Echo Agent (Testing)
View minimal example (click to expand)
Smallest possible working agent:
import os from bindu.penguin.bindufy import bindufy def handler(messages): return [{"role": "assistant", "content": messages[-1]["content"]}] config = { "author": "your.email@example.com", "name": "echo_agent", "description": "A basic echo agent for quick testing.", "deployment": { "url": os.getenv("BINDU_DEPLOYMENT_URL", "http://localhost:3773"), "expose": True, }, "skills": [] } bindufy(config, handler) # Use tunnel to expose your agent to the internet # bindufy(config, handler, launch=True)
Run the agent:
# Start the agent
python examples/echo_agent.pyTest the agent with curl (click to expand)
Input:
curl --location 'http://localhost:3773/' \ --header 'Content-Type: application/json' \ --data '{ "jsonrpc": "2.0", "method": "message/send", "params": { "message": { "role": "user", "parts": [ { "kind": "text", "text": "Quote" } ], "kind": "message", "messageId": "550e8400-e29b-41d4-a716-446655440038", "contextId": "550e8400-e29b-41d4-a716-446655440038", "taskId": "550e8400-e29b-41d4-a716-446655440300" }, "configuration": { "acceptedOutputModes": [ "application/json" ] } }, "id": "550e8400-e29b-41d4-a716-446655440024" }'
Output:
{
"jsonrpc": "2.0",
"id": "550e8400-e29b-41d4-a716-446655440024",
"result": {
"id": "550e8400-e29b-41d4-a716-446655440301",
"context_id": "550e8400-e29b-41d4-a716-446655440038",
"kind": "task",
"status": {
"state": "submitted",
"timestamp": "2025-12-16T17:10:32.116980+00:00"
},
"history": [
{
"message_id": "550e8400-e29b-41d4-a716-446655440038",
"context_id": "550e8400-e29b-41d4-a716-446655440038",
"task_id": "550e8400-e29b-41d4-a716-446655440301",
"kind": "message",
"parts": [
{
"kind": "text",
"text": "Quote"
}
],
"role": "user"
}
]
}
}Check the status of the task
curl --location 'http://localhost:3773/' \ --header 'Content-Type: application/json' \ --data '{ "jsonrpc": "2.0", "method": "tasks/get", "params": { "taskId": "550e8400-e29b-41d4-a716-446655440301" }, "id": "550e8400-e29b-41d4-a716-446655440025" }'
Output:
{
"jsonrpc": "2.0",
"id": "550e8400-e29b-41d4-a716-446655440025",
"result": {
"id": "550e8400-e29b-41d4-a716-446655440301",
"context_id": "550e8400-e29b-41d4-a716-446655440038",
"kind": "task",
"status": {
"state": "completed",
"timestamp": "2025-12-16T17:10:32.122360+00:00"
},
"history": [
{
"message_id": "550e8400-e29b-41d4-a716-446655440038",
"context_id": "550e8400-e29b-41d4-a716-446655440038",
"task_id": "550e8400-e29b-41d4-a716-446655440301",
"kind": "message",
"parts": [
{
"kind": "text",
"text": "Quote"
}
],
"role": "user"
},
{
"role": "assistant",
"parts": [
{
"kind": "text",
"text": "Quote"
}
],
"kind": "message",
"message_id": "2f2c1a8e-68fa-4bb7-91c2-eac223e6650b",
"task_id": "550e8400-e29b-41d4-a716-446655440301",
"context_id": "550e8400-e29b-41d4-a716-446655440038"
}
],
"artifacts": [
{
"artifact_id": "22ac0080-804e-4ff6-b01c-77e6b5aea7e8",
"name": "result",
"parts": [
{
"kind": "text",
"text": "Quote",
"metadata": {
"did.message.signature": "5opJuKrBDW4woezujm88FzTqRDWAB62qD3wxKz96Bt2izfuzsneo3zY7yqHnV77cq3BDKepdcro2puiGTVAB52qf" # pragma: allowlist secret
}
}
]
}
]
}
}๐ Core Features
| Feature | Description | Documentation |
|---|---|---|
| ๐ Authentication | Secure API access with Ory Hydra OAuth2 (optional for development) | Guide โ |
| ๐ฐ Payment Integration (X402) | Accept USDC payments on Base blockchain before executing protected methods | Guide โ |
| ๐พ PostgreSQL Storage | Persistent storage for production deployments (optional - InMemoryStorage by default) | Guide โ |
| ๐ Redis Scheduler | Distributed task scheduling for multi-worker deployments (optional - InMemoryScheduler by default) | Guide โ |
| ๐ฏ Skills System | Reusable capabilities that agents advertise and execute for intelligent task routing | Guide โ |
| ๐ค Agent Negotiation | Capability-based agent selection for intelligent orchestration | Guide โ |
| ๐ Tunneling | Expose local agents to the internet for testing (local development only, not for production) | Guide โ |
| ๐ฌ Push Notifications | Real-time webhook notifications for task updates - no polling required | Guide โ |
| ๐ Observability & Monitoring | Track performance and debug issues with OpenTelemetry and Sentry | Guide โ |
| ๐ Retry Mechanism | Automatic retry with exponential backoff for resilient agents | Guide โ |
| ๐ Decentralized Identifiers (DIDs) | Cryptographic identity for verifiable, secure agent interactions and payment integration | Guide โ |
| ๐ฅ Health Check & Metrics | Monitor agent health and performance with built-in endpoints | Guide โ |
| ๐ Language-Agnostic (gRPC) | Bindufy agents written in TypeScript, Kotlin, Rust, or any language via gRPC adapter | Guide โ |
๐จ Chat UI
Bindu includes a beautiful chat interface at http://localhost:5173. Navigate to the frontend folder and run npm run dev to start the server.
๐ GetBindu.com
GetBindu.com is a public registry of Bindu agents โ discoverable and accessible to the broader agent ecosystem. Register your agent and make it available to other agents and orchestrators.
๐ ๏ธ Supported Agent Frameworks
Bindu is framework-agnostic and tested with:
Python:
- AG2 (formerly AutoGen)
- Agno
- CrewAI
- LangChain
- LlamaIndex
- FastAgent
TypeScript:
- OpenAI SDK
- LangChain.js
Kotlin:
- OpenAI Kotlin SDK
Bindu is language-agnostic via gRPC โ see docs/grpc/ for how it works and how to add new languages.
Compatible LLM Providers:
- OpenRouter โ Access 100+ models through a single API
- OpenAI โ GPT-4o, GPT-5, and more
- MiniMax AI โ M2.7 (1M context), M2.5, M2.5-highspeed (204K context) via OpenAI-compatible API
Want integration with your favorite framework? Let us know on Discord!
๐งช Testing
Bindu maintains 70%+ test coverage (target: 80%+):
# Unit tests (fast, in pre-commit) uv run pytest tests/unit/ -v # E2E gRPC integration tests (real servers, full round-trip) uv run pytest tests/integration/grpc/ -v -m e2e # All tests with coverage uv run pytest -n auto --cov=bindu --cov-report=term-missing uv run coverage report --skip-covered --fail-under=70
CI runs automatically on every PR โ unit tests, E2E gRPC tests, and TypeScript SDK build verification. See .github/workflows/ci.yml.
๐ง Troubleshooting
Common Issues
| Issue | Solution |
|---|---|
Python 3.12 not found |
Install Python 3.12+ and set in PATH, or use pyenv |
bindu: command not found |
Activate virtual environment: source .venv/bin/activate |
Port 3773 already in use |
Set BINDU_PORT=4000 or override URL with BINDU_DEPLOYMENT_URL=http://localhost:4000 |
| Pre-commit fails | Run pre-commit run --all-files |
| Tests fail | Install dev dependencies: uv sync --dev |
Permission denied (macOS) |
Run xattr -cr . to clear extended attributes |
Reset environment:
rm -rf .venv uv venv --python 3.12.9 uv sync --dev
Windows PowerShell:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
๐ค Contributing
We welcome contributions! Join us on Discord. Pick the channel that best matches your contribution.
git clone https://github.com/getbindu/Bindu.git cd Bindu uv venv --python 3.12.9 source .venv/bin/activate uv sync --dev pre-commit run --all-files
๐ License
Bindu is open-source under the Apache License 2.0.
๐ฌ Community
We ๐ contributions! Whether you're fixing bugs, improving documentation, or building demosโyour contributions make Bindu better.
- ๐ฌ Join Discord for discussions and support
- โญ Star the repository if you find it useful!
๐ฅ Active Moderators
Our dedicated moderators help maintain a welcoming and productive community:
Want to become a moderator? Reach out on Discord!
๐ Acknowledgements
Grateful to these projects:
๐ The Vision
a peek into the night sky
}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
{{ + + + @ {{
}} | * o + . }}
{{ -O- o . . + {{
}} | _,.-----.,_ o | }}
{{ + * .-'. .'-. -O- {{
}} * .'.-' .---. `'.'. | * }}
{{ . /_.-' / \ .'-.\. {{
}} ' -=*< |-._.- | @ | '-._| >*=- . + }}
{{ -- )-- \`-. \ / .-'/ }}
}} * + `.'. '---' .'.' + o }}
{{ . '-._ _.-' . }}
}} | `~~~~~~~` - --===D @ }}
{{ o -O- * . * + {{
}} | + . + }}
{{ jgs . @ o * {{
}} o * o . }}
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
Each symbol is an agent โ a spark of intelligence. The tiny dot is Bindu, the origin point in the Internet of Agents.
NightSky Connection (In Progress)
NightSky enables swarms of agents. Each Bindu is a dot annotating agents with the shared language of A2A, AP2, and X402. Agents can be hosted anywhere โ laptops, clouds, or clusters โ yet speak the same protocol, trust each other by design, and work together as a single, distributed mind.
๐บ๏ธ Roadmap
- gRPC transport + language-agnostic SDKs (TypeScript, Kotlin)
- Increase test coverage to 80% (in progress)
- AP2 end-to-end support
- DSPy integration (in progress)
- Rust SDK
- MLTS support
- X402 support with other facilitators
We will make this agents bidufied and we do need your help.
๐ Workshops
- [AI Native in Action: Agent Symphony](https://www.meetup.com/ai-native-Amsterdam && India/events/311066899/) - Slides
โญ Star History
Built with ๐ by the team from Amsterdam && India
Happy Bindu! ๐ป๐โจ
From idea to Internet of Agents in 2 minutes.
Your agent. Your framework. Universal protocols.
โญ Star us on GitHub โข ๐ฌ Join Discord โข ๐ป Read the Docs
"We believe in the sunflower theory - standing tall together, bringing hope and light to the Internet of Agents."



