What is FeatherAI?
FeatherAI is a lightweight Python library designed to make building AI agents incredibly simple. Whether you're creating chatbots, automation tools, or complex multi-agent systems, FeatherAI provides an elegant API that gets out of your way.
Key Features
- Simple & Intuitive API - Create powerful AI agents in just a few lines of code
- Multi-Provider Support - Works with OpenAI, Anthropic Claude, Google Gemini, and Mistral
- Tool Calling - Easily integrate custom functions and external APIs
- Structured Output - Get responses in validated Pydantic schemas
- Multimodal Support - Process text, images, and PDFs seamlessly
- Async/Await Ready - Built-in support for asynchronous execution
- Built-in Tools - Web search, code execution, and more out of the box
- Lightweight - Minimal dependencies, maximum performance
Installation
pip install feather-ai-sdk
Environment Setup
Create a .env file in your project root with your API keys:
# OpenAI (for GPT models)
OPENAI_API_KEY=your_openai_key_here
# Anthropic (for Claude models)
ANTHROPIC_API_KEY=your_anthropic_key_here
# Google (for Gemini models)
GOOGLE_API_KEY=your_google_key_here
# Mistral
MISTRAL_API_KEY=your_mistral_key_here
# For web search tools (optional)
TAVILY_API_KEY=your_tavily_key_here
Note: You only need to set the API keys for the providers you'll use.
Quick Start
Basic Agent
from feather_ai import AIAgent
from dotenv import load_dotenv
# Load environment variables
load_dotenv()
# Create an agent
agent = AIAgent(model="gpt-4")
# Run the agent
response = agent.run("What is the capital of France?")
print(response.content) # Output: Paris
Agent with Instructions
from feather_ai import AIAgent
# Create an agent with custom instructions
agent = AIAgent(
model="claude-haiku-4-5",
instructions="You are a helpful assistant that provides concise answers. Always explain concepts in simple terms."
)
response = agent.run("Explain quantum computing")
print(response.content)
Agent with Tools
from feather_ai import AIAgent
# Define a custom tool
def get_weather(location: str) -> str:
"""Get the current weather for a location."""
return f"The weather in {location} is sunny and 72°F"
# Create an agent with tools
agent = AIAgent(
model="gpt-4",
instructions="You are a helpful weather assistant. Use the available tools to answer questions.",
tools=[get_weather]
)
response = agent.run("What's the weather like in San Francisco?")
print(response.content)
print(f"Tools called: {response.tool_calls}")
Structured Output
from feather_ai import AIAgent
from pydantic import BaseModel, Field
# Define your output schema
class WeatherResponse(BaseModel):
location: str = Field(..., description="The location requested")
temperature: int = Field(..., description="Temperature in Fahrenheit")
conditions: str = Field(..., description="Weather conditions")
confidence: float = Field(..., description="Confidence in answer (0-1)")
# Create agent with structured output
agent = AIAgent(
model="gpt-4",
output_schema=WeatherResponse
)
response = agent.run("What's the weather in Paris?")
print(response.content.location) # Validated Pydantic object
print(response.content.temperature) # Type-safe access
print(response.content.confidence)
Multimodal Input
from feather_ai import AIAgent, Prompt
# Create a prompt with documents
prompt = Prompt(
text="Summarize these documents",
documents=["report.pdf", "chart.png", "data.txt"]
)
agent = AIAgent(model="claude-sonnet-4-5")
response = agent.run(prompt)
print(response.content)
Async Execution
import asyncio
from feather_ai import AIAgent
async def main():
agent = AIAgent(model="claude-haiku-4-5")
response = await agent.arun("What is machine learning?")
print(response.content)
asyncio.run(main())
Supported Models
FeatherAI supports a wide range of LLM providers:
- OpenAI:
gpt-4,gpt-5-nano,gpt-4-turbo, etc. - Anthropic:
claude-sonnet-4-5,claude-haiku-4-5,claude-opus-4, etc. - Google:
gemini-2.5-flash-lite,gemini-pro, etc. - Mistral:
mistral-small-2506,mistral-large, etc.
Documentation
For detailed documentation, examples, and guides, visit our documentation site.
Topics Covered:
- Getting Started
- System Instructions
- Tool Calling
- Structured Output
- Multimodal Input
- Native Tools
- Asynchronous Execution
- Real-World Examples
Featured Projects
🍝 Piatto Cooks
An AI-powered cooking assistant that helps you discover recipes, plan meals, and get personalized cooking guidance.
- Recipe Generation
- Meal Planning
- Dietary Preferences
🎓 NexoraAI
An intelligent mentoring platform that connects mentors and mentees, providing personalized guidance and learning paths.
- Personalized Learning
- Skill Assessment
- Progress Tracking
Contributing
We welcome contributions! If you'd like to improve FeatherAI, please:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
License
FeatherAI is released under the MIT License. See LICENSE for details.
Links
- GitHub: github.com/lucabzt/feather-ai
- Documentation: lucabzt.github.io/feather-ai
Metadata
Release files for feather-ai-sdk 0.1.32
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| feather_ai_sdk-0.1.32.tar.gz | 38.2 kB | Without provenance | Details for feather_ai_sdk-0.1.32.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| feather_ai_sdk-0.1.32-py3-none-any.whl | Python 3 | none | any | Details for feather_ai_sdk-0.1.32-py3-none-any.whl |
Total release size: 83.9 kB
Release files / feather_ai_sdk-0.1.32.tar.gz
| Download URL | feather_ai_sdk-0.1.32.tar.gz |
|---|---|
| Size | 38.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
550407ffc35096122fdd28991ccf1a420ae32e08132ecfeb6c74c5856bc3ca06
|
|
BLAKE2b-256 checksum How to use checksums |
2de2fdbb9bf413c149af1ec8aac46cdff31c0c01bcd8e3cf8d155f0a1ae8a449
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / feather_ai_sdk-0.1.32-py3-none-any.whl
| Download URL | feather_ai_sdk-0.1.32-py3-none-any.whl |
|---|---|
| Size | 45.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
86a31686ea547451c0b1bb719e72668c0ae28d7a0d9965681c0787cf30d9812a
|
|
BLAKE2b-256 checksum How to use checksums |
e139756d0ca4ae1c48251df81ba26c695488e05aea2bdbc710442275d1c57201
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Security for feather-ai-sdk 0.1.32
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.