Catalog PyPI
Back to packageRELEASE DETAILS

0.2.7

PyPI

agenteazy

Turn any GitHub repo into an AI agent in one command

Published17 Mar 2026
Direct dependencies8
Transitive dependenciesNot calculated

README

Version 0.2.7 documentation

AgentEazy

Turn any Python utility into a callable AI tool in one command.

Your code becomes a live API that any AI agent can find, call, and pay — without rewriting a single line.

PyPI License: MIT Tests

Website · Dashboard · Registry · Docs


Try it right now

No install needed. Call a live agent from your terminal:

curl -s -X POST https://simondusable--agenteazy-gateway-serve.modal.run/agent/zxcvbn-python/ \
  -H "Content-Type: application/json" \
  -d '{"verb":"DO","payload":{"data":{"password":"monkey123"}}}' | python3 -m json.tool
{
  "status": "completed",
  "output": {
    "score": 1,
    "feedback": {
      "warning": "This is a very common password.",
      "suggestions": ["Add another word or two. Uncommon words are better."]
    }
  }
}

That's a real GitHub repo (zxcvbn-python), auto-wrapped and live. 18+ more in the registry.


Deploy your own agent

pip install agenteazy
agenteazy signup your-github-username --email you@example.com
agenteazy deploy github.com/you/your-repo

Done. Your repo is live. Every AI agent on earth can now find and call it.

What happens under the hood

  1. Analyze — Clones the repo, parses the AST, detects the main public API function
  2. Wrap — Generates a FastAPI wrapper that handles imports, dependencies, and dispatch
  3. Upload — Pushes to serverless infrastructure (idle agents cost $0)
  4. Register — Adds to the public registry so other agents can discover it

Python SDK

from agenteazy import AgentEazy

client = AgentEazy()

# Discover agents
agents = client.find("password strength")

# Call agents
result = client.do("zxcvbn-python", {"password": "monkey123"})
# → {"score": 1, "feedback": {"warning": "This is a very common password."}}

result = client.do("dateparser", {"date_string": "tomorrow at 3pm"})
# → "2026-03-17T15:00:00"

result = client.do("langdetect", {"text": "Bonjour le monde"})
# → "fr"

result = client.do("python-ftfy", {"text": "émile dupont"})
# → "émile dupont"

result = client.do("autopep8", {"source": "x=   1\nif  x==1:\n  print( 'hello' )"})
# → "x = 1\nif x == 1:\n    print('hello')\n"

LangChain Integration

Every agent becomes a LangChain BaseTool:

pip install agenteazy[langchain]
from agenteazy.integrations.langchain import AgentEazyTool, AgentEazyToolkit

tool = AgentEazyTool.from_agent("zxcvbn-python")
result = tool.invoke({"password": "test123"})

# Discover multiple tools from the registry
toolkit = AgentEazyToolkit()
tools = toolkit.get_tools(query="text processing", limit=5)

CrewAI Integration

pip install agenteazy[crewai]
from agenteazy.integrations.crewai import AgentEazyCrewTool

tool = AgentEazyCrewTool.from_agent("zxcvbn-python")

Live Agent Registry

18 agents you can call right now, all auto-wrapped from real GitHub repos:

AgentWhat it doesTry it
zxcvbn-pythonPassword strength scoring{"password":"monkey123"} → score 1/4
langdetectDetect text language{"text":"Bonjour"} → "fr"
dateparserParse natural language dates{"date_string":"tomorrow at 3pm"} → datetime
python-ftfyFix broken Unicode{"text":"émile"} → "émile"
autopep8Format Python to PEP 8{"source":"x= 1"} → "x = 1\n"
validatorsValidate emails, URLs, IPs{"value":"test@example.com"} → true
python-slugifyText to URL slug{"text":"Hello World!"} → "hello-world"
emojiEmojize/demojize text{"string":":thumbs_up:"} → 👍
xmltodictXML to JSON dict{"xml_input":"<a>1</a>"} → {"a":"1"}
mistuneFast Markdown → HTML{"s":"**bold**"} → "<strong>bold</strong>"
dateutilParse date strings{"timestr":"March 5th 2024"} → datetime
arrowDate/time with timezone{} → current datetime
prettytableParse HTML tablesHTML → structured rows
python-markdown2Markdown → HTML{"text":"# Hello"} → "<h1>Hello</h1>"
python-markdownifyHTML → Markdown{"html":"<h1>Hello</h1>"} → "# Hello"
num2wordsNumbers to words{"number":42} → "forty-two"
shortuuidGenerate short UUIDs{} → "N6nquzbtjAF..."
humanizeNatural language lists{"items":["Alice","Bob"]} → "Alice and Bob"

Browse all at agenteazy.com/agents.


What repos work best

AgentEazy auto-detects the right entry point for stateless Python utilities — functions that take input and return output.

Works greatExamples
Text processingslugify, ftfy, emoji, markdown2
Validation & parsingvalidators, dateparser, dateutil
Security toolszxcvbn (passwords), nh3 (HTML sanitization)
Code formattingautopep8
Data conversionxmltodict, markdownify, num2words
Language detectionlangdetect
Needs --entry flagWhy
Large repos with many functionsAuto-detect may pick a helper instead of the main API
Class-based APIsSpecify --entry "file.py:Class.method"
Not a good fitWhy
HTTP clients (requests, boto3)They make outbound calls, not pure functions
Frameworks (Flask, Django)Already have their own endpoints
Heavy ML modelsCold start too slow for serverless

Override the entry point when needed:

agenteazy deploy github.com/you/repo --entry "mypackage/core.py:process"
agenteazy deploy github.com/you/repo --entry "mypackage/model.py:MyClass.predict"

TollBooth — Agent Credits

Agents can charge credits per call. Set a price and the gateway handles billing.

agenteazy deploy github.com/you/your-repo --price 10
  • Free by default — no credits needed to call free agents
  • You set the price — 1 credit, 10, 100 — your choice
  • 80/20 split — you keep 80%, platform takes 20% for infrastructure
  • 50 free credits on signup, buy more at agenteazy.com/dashboard

AgentLang — 10 Universal Verbs

One protocol for all agents. One HTTP POST, one envelope:

POST /agent/{name}/
{"verb": "DO", "payload": {"data": {"input": "hello"}}}
VerbWhat it doesStatus
DOExecute the agent's main functionLive ✅
ASKQuery capabilities and parametersLive ✅
FINDSearch the registry for agentsLive ✅
PAYTransfer credits between agentsLive ✅
SHAREPass context between callsLive ✅
REPORTGet audit logLive ✅
STOPHalt a running taskLive ✅
WATCHSubscribe to eventsPlanned
TRUSTAuthenticated sessionsPlanned
LEARNIngest new knowledgePlanned

CLI Reference

# Deploy
agenteazy deploy <repo>                    # Full pipeline
agenteazy deploy <repo> --local            # Test locally first
agenteazy deploy <repo> --price 10         # Paid agent
agenteazy deploy <repo> --entry "f.py:fn"  # Override entry point
agenteazy deploy <repo> --env KEY=VALUE    # Inject env vars

# Analyze & Wrap
agenteazy analyze <repo>                   # Inspect without deploying
agenteazy wrap <repo>                      # Generate wrapper only
agenteazy batch-deploy <repos.txt>         # Deploy from file

# Account
agenteazy signup <username> --email <email>  # Get API key + 50 credits
agenteazy balance                            # Check credits
agenteazy transactions                       # View history

# Registry
agenteazy search "query"                   # Find agents
agenteazy list                             # List all agents
agenteazy status                           # Health check

Architecture

agenteazy deploy <repo>
    │
    ├── ANALYZE  → Clone, parse AST, detect public API function
    ├── WRAP     → Generate FastAPI wrapper with full import handling
    ├── UPLOAD   → Push to serverless volume (idle = $0)
    ├── REGISTER → Add to searchable registry
    └── LIVE     → Callable at gateway/agent/{name}/

Gateway (serves all agents)  ←→  Registry (search + credits)
    │                                    │
    └── Agent Volume                     └── TollBooth
        /agents/zxcvbn-python/               Signup, balance,
        /agents/langdetect/                  deduct, earn, transfer
        /agents/dateparser/
        ... (18 agents)

Contributing

Best first contribution: OpenAI Function Calling integration. Same pattern as the LangChain wrapper — one file, self-contained. See agenteazy/integrations/langchain.py as a template.

git clone https://github.com/SimonSliman/agenteazy
cd agenteazy
pip install -e ".[dev]"
pytest tests/ -q  # 20 tests

License

MIT

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 11

Native requirements
8 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
typer
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
typer>=0.9.0runtime
rich
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
rich>=13.0.0runtime
gitpython
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
gitpython>=3.1.0runtime
tomli
Environment
{
  "extras": "",
  "marker": "python_version < \"3.11\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
tomli>=2.0.0; python_version < "3.11"runtime
langchain-core
Environment
{
  "extras": "",
  "marker": "extra == \"langchain\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
langchain-core>=0.2.0; extra == "langchain"runtime
crewai
Environment
{
  "extras": "",
  "marker": "extra == \"crewai\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
crewai>=0.80.0; extra == "crewai"runtime
mcp
Environment
{
  "extras": "",
  "marker": "extra == \"mcp\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
mcp>=1.0.0; extra == "mcp"runtime
langchain-core
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
langchain-core>=0.2.0; extra == "all"runtime
crewai
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
crewai>=0.80.0; extra == "all"runtime
mcp
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
mcp>=1.0.0; extra == "all"runtime
pytest
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pytest>=7.0.0; extra == "dev"runtime

Distribution files

2 collected
agenteazy-0.2.7-py3-none-any.whl

bdist_wheel · 68.8 KB · Python py3

Source file
agenteazy-0.2.7.tar.gz

sdist · 65.8 KB · Python source

Source file

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 21:50 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:2ee5679bdaf1f91d696b3a088667ef9c5af42682a83d0819fa04223c449d2fc5

Other collected versions

View all collected versions →