shadcn-agent
The shadcn for AI Agents - A CLI tool that provides a collection of reusable, framework-native AI agent components with the same developer experience as shadcn/ui.
🌟 Features
- 📦 Fetch from GitHub: Components are fetched directly from our GitHub repository - no need to clone anything
- 🔧 Atomic and Composable: Get individual agent "nodes" (e.g., web scraper, summarizer, translator) that combine into powerful workflows
- 🕸️ Built for LangGraph: Components use LangGraph's graph-based architecture for stateful, multi-step workflows
- 💻 Own Your Code: CLI copies component code into your project - full control to modify, extend, and debug
- 🚀 Zero Dependencies: No package lock-in once components are copied
- 🎮 Interactive Playground: Test workflows with a web interface before deploying
🚀 Quick Start
Installation
pip install shadcn-agent
1. Initialize Your Project
# Create a new directory for your AI project
mkdir my-ai-project
cd my-ai-project
# Initialize shadcn-agent structure
shadcn-agent init
This creates:
my-ai-project/
├── components/
│ ├── nodes/ # Individual agent nodes
│ └── workflows/ # Multi-node workflows
└── .env # Your configuration
2. Add Components You Need
# Add individual nodes
shadcn-agent add node search_node
shadcn-agent add node summarizer_node
shadcn-agent add node translate_node
shadcn-agent add node email_node
# Add pre-built workflows
shadcn-agent add workflow summarize_and_email_graph
shadcn-agent add workflow translate_and_email_graph
3. Configure Environment
Create a .env file with your credentials:
# Email configuration (for email workflows)
SENDER_EMAIL=your@gmail.com
SENDER_PASSWORD=your_app_password
# Default recipient for testing
DEFAULT_RECIPIENT=recipient@example.com
# Optional: Custom library folder
AGENTS_LIBRARY=components
4. Run Workflows
# Run workflows directly from CLI
shadcn-agent run workflow summarize_and_email_graph \
--url "https://en.wikipedia.org/wiki/Large_language_model" \
--recipient "your@email.com"
shadcn-agent run workflow translate_and_email_graph \
--text "Hello, how are you?" \
--target_lang "fr" \
--recipient "your@email.com"
5. Interactive Playground
# Launch the web-based playground
shadcn-agent playground
Features:
- 🖥️ Test workflows with a GUI
- 🔧 Custom Workflow Builder: Drag-and-drop node combinations
- 💾 Download results as JSON
- 📊 Real-time execution monitoring
📚 Available Components
Nodes
| Node | Description | Inputs | Outputs |
|---|---|---|---|
| search_node | Web scraper with BeautifulSoup | url |
text, scraped_url |
| summarizer_node | Extractive text summarizer | text |
summary, word_count |
| translate_node | Google Translate integration | text, target_lang |
translation |
| email_node | SMTP email sender | body, recipient |
status |
Workflows
| Workflow | Description | Nodes Used |
|---|---|---|
| summarize_and_email_graph | Scrapes → Summarizes → Emails | search + summarizer + email |
| translate_and_email_graph | Translates → Emails | translate + email |
| scrape_and_summarize_graph | Scrapes → Summarizes | search + summarizer |
🛠️ CLI Commands
# Initialize project structure
shadcn-agent init [--dest folder_name] [--config]
# List available templates and your components
shadcn-agent list [--dest folder_name]
# Add components from GitHub
shadcn-agent add node <node_name> [--dest folder_name]
shadcn-agent add workflow <workflow_name> [--dest folder_name]
# Run workflows
shadcn-agent run workflow <workflow_name> [--dest folder_name] [args...]
# Launch interactive playground
shadcn-agent playground
🏗️ Custom Folder Structure
You can organize components in any folder structure:
# Use custom folder names
shadcn-agent init --dest my_agents
shadcn-agent add node search_node --dest my_agents
shadcn-agent run workflow summarize_and_email_graph --dest my_agents
💡 The "Own Your Code" Philosophy
Unlike traditional packages, shadcn-agent copies component code into your project:
shadcn-agent add node search_node
This creates components/nodes/search_node.py in your project. You can:
- ✅ Modify the code however you want
- ✅ Debug with full visibility into execution
- ✅ Add custom error handling and logging
- ✅ Change APIs, prompts, or business logic
- ✅ Version control your modifications
- ✅ No dependency on shadcn-agent after copying
🧩 Framework Integration
All components are built for LangGraph, ensuring:
- 🔄 Native state management between nodes
- 📊 Graph-based workflow orchestration
- 🔗 Easy composition and extension
- 🛡️ Type-safe state passing
- 📈 Built-in monitoring and debugging
Example of a custom workflow:
from langgraph.graph import StateGraph, END
from components.nodes.search_node import search_node
from components.nodes.summarizer_node import summarizer_node
def build_custom_workflow():
workflow = StateGraph(dict)
workflow.add_node("search", search_node)
workflow.add_node("summarizer", summarizer_node)
workflow.set_entry_point("search")
workflow.add_edge("search", "summarizer")
workflow.add_edge("summarizer", END)
return workflow.compile()
🔧 Email Configuration
For email workflows, you need to configure SMTP credentials:
Gmail Setup (Recommended)
-
Enable 2-Factor Authentication on your Google account
-
Generate an App Password:
- Go to Google Account settings
- Security → 2-Step Verification → App passwords
- Generate password for "Mail"
-
Add to your
.envfile:
SENDER_EMAIL=your@gmail.com
SENDER_PASSWORD=your_16_digit_app_password
Other Email Providers
The email node supports any SMTP server. Modify the email_node.py after copying to use different SMTP settings.
🧪 Development & Testing
Running Tests
# Install development dependencies
pip install -e .[dev]
# Run tests
pytest tests/ -v
# Run with coverage
pytest tests/ --cov=shadcn_agent --cov-report=html
Development Setup
# Clone repository
git clone https://github.com/Aryan-Bagale/shadcn-agents.git
cd shadcn-agents
# Install in development mode
pip install -e .[dev]
# Install pre-commit hooks
pre-commit install
# Run the playground locally
shadcn-agent playground
🐳 Docker Support
# Build and run with Docker
docker-compose up playground
# Development environment
docker-compose run dev bash
🚨 Troubleshooting
Common Issues
"Import Error: Could not import workflow"
# Make sure all required nodes are added
shadcn-agent add node search_node
shadcn-agent add node summarizer_node
shadcn-agent add node email_node
"Email authentication failed"
- Verify your Gmail App Password (not regular password)
- Check that 2FA is enabled on your Google account
- Ensure
SENDER_EMAILandSENDER_PASSWORDare in.env
"Library folder not found"
# Initialize the project first
shadcn-agent init --dest components
"Workflow validation failed"
# Check required parameters for each workflow:
shadcn-agent run workflow summarize_and_email_graph --url "https://example.com"
shadcn-agent run workflow translate_and_email_graph --text "Hello" --target_lang "fr"
Debug Mode
Enable detailed error messages:
DEBUG=true
Network Issues
If you're behind a corporate firewall:
# Use HTTP instead of HTTPS for GitHub (not recommended for production)
export GITHUB_REPO="http://raw.githubusercontent.com/Aryan-Bagale/shadcn-agents"
🤝 Contributing
We welcome contributions! Here's how to get started:
Adding New Components
- Create templates in the
templates/directory - Follow the LangGraph node/workflow patterns
- Add comprehensive error handling
- Include tests for your components
- Submit a pull request
Component Guidelines
- Nodes: Should be pure functions that take and return state dictionaries
- Error Handling: Always handle failures gracefully and return meaningful error messages
- Documentation: Include docstrings and type hints
- Testing: Add unit tests in the
tests/directory
Development Workflow
# Fork the repository
git fork https://github.com/Aryan-Bagale/shadcn-agents.git
# Create a feature branch
git checkout -b feature/new-component
# Make your changes
# ...
# Run tests
pytest tests/
# Format code
black shadcn_agent/
flake8 shadcn_agent/
# Commit and push
git commit -m "Add new component"
git push origin feature/new-component
# Create pull request
📄 License
MIT License - see LICENSE file for details.
🔗 Links
- Homepage: https://github.com/Aryan-Bagale/shadcn-agents
- PyPI: https://pypi.org/project/shadcn-agent/
- Documentation: GitHub README
- Issues: GitHub Issues
⭐ Show Your Support
If shadcn-agent helps you build better AI workflows, please consider:
- ⭐ Starring the repository
- 🐛 Reporting bugs and feature requests
- 🔧 Contributing new components
- 📢 Sharing with the community
Made with ❤️ by Aryan Bagale
Metadata
Release files for shadcn-agent 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| shadcn_agent-0.2.0.tar.gz | 21.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| shadcn_agent-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 36.9 kB
Release files / shadcn_agent-0.2.0.tar.gz
| Download URL | shadcn_agent-0.2.0.tar.gz |
|---|---|
| Size | 21.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
440807a3ea620e4eecacbd2124b58f210ec477a9555eec233581b2a84469b714
|
|
BLAKE2b-256 checksum How to use checksums |
d4a352a2f267e82f01c441933771bdcac9e3ec9a94da81172de5a535b44418a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.3
|
Release files / shadcn_agent-0.2.0-py3-none-any.whl
| Download URL | shadcn_agent-0.2.0-py3-none-any.whl |
|---|---|
| Size | 15.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
29c2d9e59e2c1ed1bc511b78c1942f5c5244e1eb0ec77873fd83aad4d014900e
|
|
BLAKE2b-256 checksum How to use checksums |
e9c3e8aef3e661abf627c20021271f458a13f91e62778876c3cb39cd4b4dd924
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.3
|