sygaldry
Beautiful, production-ready Mirascope components that you can copy and paste into your AI apps.
What is sygaldry
sygaldry is a component library specifically designed for Mirascope applications. Instead of being another framework, it's a CLI tool that helps you add production-ready Mirascope components directly to your codebase - components you own and can customize.
Inspired by shadcn/ui's philosophy, sygaldry provides:
- Pre-built Mirascope Agents - Research assistants, code generators, data analysts, and more
- Modular Mirascope Tools - PDF search, web scraping, API integrations, document parsing
- Optimized Prompt Templates - Battle-tested Mirascope prompt templates
- Response Models - Pydantic models for Mirascope structured outputs
- Evaluation Frameworks - Test and validate your Mirascope applications
Why sygaldry
The Problem
Every Mirascope project involves writing the same patterns: PDF parsers, web scrapers, search tools, and agent architectures. You implement the same decorators, response models, and async patterns repeatedly.
The Solution
sygaldry provides a registry of production-ready Mirascope components that follow best practices. Add them with a single command, customize the provider and model, and get clean code that becomes part of your project.
How It Works
sygaldry uses a smart configuration system:
- Your Project Config (
sygaldry.json) - Tells sygaldry where to place components - Component Metadata (
component.json) - Defines what files to copy and dependencies - Component Documentation (
sygaldry.md) - Becomes part of your codebase
When you add a component:
- The CLI reads your project structure from
sygaldry.json - Downloads the component based on its
component.json - Places files in the correct directories by component type
- Applies your customizations (provider, model, Lilypad tracing)
- Installs required dependencies
Installation
pip install sygaldry-cli
Or with uv (recommended):
uv pip install sygaldry-cli-cli
Quick Start
1. Initialize your project
sygaldry init
This creates a sygaldry.json configuration file that maps component types to directories:
{
"agentDirectory": "src/agents",
"toolDirectory": "src/tools",
"promptTemplateDirectory": "src/prompts",
"responseModelDirectory": "src/models",
"defaultProvider": "openai",
"defaultModel": "gpt-4o-mini"
}
2. Add components
# Add a PDF search tool to src/tools/pdf_search/
sygaldry add pdf_search_tool
# Add a research agent with Claude to src/agents/research_assistant/
sygaldry add research_assistant_agent --provider anthropic --model claude-3-opus
# Add with Lilypad observability
sygaldry add web_search_tool --with-lilypad
3. Use in your code
from tools.pdf_search import search_pdf_content, PDFSearchArgs
from agents.research_assistant import research_topic
# Components are now part of YOUR codebase with proper Mirascope decorators
result = await search_pdf_content(PDFSearchArgs(
file_path="research.pdf",
query="machine learning"
))
# Agent with your chosen provider/model
research = await research_topic(
topic="quantum computing",
sources=["arxiv", "scholar"]
)
Component Structure
Each component lives in its own directory, organized by type:
your_project/
├── sygaldry.json
├── src/
│ ├── agents/
│ │ └── research_assistant/
│ │ ├── __init__.py
│ │ ├── agent.py # Mirascope agent implementation
│ │ └── sygaldry.md # Documentation
│ ├── tools/
│ │ └── pdf_search/
│ │ ├── __init__.py
│ │ ├── tool.py # Mirascope tool implementation
│ │ └── sygaldry.md
│ └── prompts/
│ └── summarization/
│ ├── __init__.py
│ ├── prompt.py # Mirascope prompt template
│ └── sygaldry.md
Available Components
Components use type suffixes to prevent naming conflicts:
Agents
academic_research_agent- Academic paper research with Mirascope agentscode_generation_execution_agent- Generate and execute code safelydataset_builder_agent- Create datasets from various sourceshallucination_detector_agent- Detect and prevent LLM hallucinationsmarket_intelligence_agent- Market research and analysisresearch_assistant_agent- General-purpose research agentsales_intelligence_agent- Lead scoring and sales insights- And many more...
Tools
pdf_search_tool- Fuzzy search within PDFs using Mirascope toolsweb_search_tool- Multi-provider web searchcode_interpreter_tool- Safe Python code executionfirecrawl_scrape_tool- Advanced web scrapinggit_repo_search_tool- Search code repositories- And many more...
Key Features
Mirascope Native
Components use proper Mirascope patterns - tools as functions, @llm.call with tools parameter, @prompt_template decorators, and async patterns.
Provider Agnostic
Works with any Mirascope-supported provider - OpenAI, Anthropic, Google, Mistral, Groq, and more. Switch providers with a flag.
Smart Dependencies
Each component declares its dependencies. The CLI handles installation automatically.
Observability Ready
Optional Lilypad integration adds @lilypad.trace() decorators for tracing and monitoring.
Best Practices Built-in
All components follow Mirascope best practices for prompts, tools, response models, and error handling.
Example: Building a Research App
# Initialize project
sygaldry init
# Add Mirascope components
sygaldry add research_assistant_agent --provider openai
sygaldry add pdf_search_tool
sygaldry add web_search_tool --with-lilypad
# Your app is ready!
# main.py - Clean Mirascope code
from agents.research_assistant import research_topic
from tools.pdf_search import search_pdf_content
# Components already configured with your provider/model
results = await research_topic("quantum computing applications")
pdf_insights = await search_pdf_content(...)
Documentation
For comprehensive documentation, visit sygaldry.ai/docs
Community
- GitHub: github.com/sygaldry-ai/sygaldry
- Discord: discord.gg/sygaldry
- Twitter: @sygaldry_ai
License
MIT License - you're free to use sygaldry components in any project, commercial or otherwise.
Stop writing boilerplate. Start building with Mirascope best practices.
Release files for sygaldry-cli 0.1.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 | |
|---|---|---|---|
| sygaldry_cli-0.1.0.tar.gz | 43.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sygaldry_cli-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 83.3 kB
Release files / sygaldry_cli-0.1.0.tar.gz
| Download URL | sygaldry_cli-0.1.0.tar.gz |
|---|---|
| Size | 43.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
98a9f7f3c8b22556d5100b88fe88f3ff03068a0bc16b97c35b16cbcfbbf667ed
|
|
BLAKE2b-256 checksum How to use checksums |
b0ec44c1afb8d77f9791043640904c0c8345c0b43daa12444cfcc715fb86bc9b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.17
|
Release files / sygaldry_cli-0.1.0-py3-none-any.whl
| Download URL | sygaldry_cli-0.1.0-py3-none-any.whl |
|---|---|
| Size | 39.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
29cdf7692adc9ace7dcebc4de85a538442c9d94bbfd77a1f620ba606717e159e
|
|
BLAKE2b-256 checksum How to use checksums |
b75454b7d7258919663046bb2b72018bb3075c77ef67519946dd92cc67d13891
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.17
|