sygaldry-cli


Namesygaldry-cli JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryProduction-ready AI components that you can copy and paste into your apps
upload_time2025-07-13 04:31:44
maintainerNone
docs_urlNone
authorNone
requires_python<3.13,>=3.12
licenseMIT
keywords ai llm agents tools components mirascope lilypad
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # sygaldry

**Beautiful, production-ready Mirascope components that you can copy and paste into your AI apps.**

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Python Version](https://img.shields.io/badge/python-3.12-blue.svg)](https://www.python.org/downloads/)

## 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](https://ui.shadcn.com)'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:

1. **Your Project Config (`sygaldry.json`)** - Tells sygaldry where to place components
2. **Component Metadata (`component.json`)** - Defines what files to copy and dependencies
3. **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

```bash
pip install sygaldry-cli
```

Or with uv (recommended):
```bash
uv pip install sygaldry-cli-cli
```

## Quick Start

### 1. Initialize your project

```bash
sygaldry init
```
This creates a `sygaldry.json` configuration file that maps component types to directories:
```json
{
  "agentDirectory": "src/agents",
  "toolDirectory": "src/tools",
  "promptTemplateDirectory": "src/prompts",
  "responseModelDirectory": "src/models",
  "defaultProvider": "openai",
  "defaultModel": "gpt-4o-mini"
}
```

### 2. Add components

```bash
# 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

```python
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 agents
- `code_generation_execution_agent` - Generate and execute code safely
- `dataset_builder_agent` - Create datasets from various sources
- `hallucination_detector_agent` - Detect and prevent LLM hallucinations
- `market_intelligence_agent` - Market research and analysis
- `research_assistant_agent` - General-purpose research agent
- `sales_intelligence_agent` - Lead scoring and sales insights
- And many more...

### Tools

- `pdf_search_tool` - Fuzzy search within PDFs using Mirascope tools
- `web_search_tool` - Multi-provider web search
- `code_interpreter_tool` - Safe Python code execution
- `firecrawl_scrape_tool` - Advanced web scraping
- `git_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

```bash
# 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!
```

```python
# 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](https://sygaldry.ai/docs)

## Community

- GitHub: [github.com/sygaldry-ai/sygaldry](https://github.com/sygaldry-ai/sygaldry)
- Discord: [discord.gg/sygaldry](https://discord.gg/sygaldry)
- Twitter: [@sygaldry_ai](https://twitter.com/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.** 

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "sygaldry-cli",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.13,>=3.12",
    "maintainer_email": null,
    "keywords": "ai, llm, agents, tools, components, mirascope, lilypad",
    "author": null,
    "author_email": "greyhaven-ai <info@sygaldry.ai>",
    "download_url": "https://files.pythonhosted.org/packages/b0/ec/44c1afb8d77f9791043640904c0c8345c0b43daa12444cfcc715fb86bc9b/sygaldry_cli-0.1.0.tar.gz",
    "platform": null,
    "description": "# sygaldry\n\n**Beautiful, production-ready Mirascope components that you can copy and paste into your AI apps.**\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Python Version](https://img.shields.io/badge/python-3.12-blue.svg)](https://www.python.org/downloads/)\n\n## What is sygaldry\n\nsygaldry 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.\n\nInspired by [shadcn/ui](https://ui.shadcn.com)'s philosophy, sygaldry provides:\n\n- **Pre-built Mirascope Agents** - Research assistants, code generators, data analysts, and more\n- **Modular Mirascope Tools** - PDF search, web scraping, API integrations, document parsing\n- **Optimized Prompt Templates** - Battle-tested Mirascope prompt templates\n- **Response Models** - Pydantic models for Mirascope structured outputs\n- **Evaluation Frameworks** - Test and validate your Mirascope applications\n\n## Why sygaldry\n\n### The Problem\n\nEvery 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.\n\n### The Solution\n\nsygaldry 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.\n\n## How It Works\n\nsygaldry uses a smart configuration system:\n\n1. **Your Project Config (`sygaldry.json`)** - Tells sygaldry where to place components\n2. **Component Metadata (`component.json`)** - Defines what files to copy and dependencies\n3. **Component Documentation (`sygaldry.md`)** - Becomes part of your codebase\n\nWhen you add a component:\n\n- The CLI reads your project structure from `sygaldry.json`\n- Downloads the component based on its `component.json`\n- Places files in the correct directories by component type\n- Applies your customizations (provider, model, Lilypad tracing)\n- Installs required dependencies\n\n## Installation\n\n```bash\npip install sygaldry-cli\n```\n\nOr with uv (recommended):\n```bash\nuv pip install sygaldry-cli-cli\n```\n\n## Quick Start\n\n### 1. Initialize your project\n\n```bash\nsygaldry init\n```\nThis creates a `sygaldry.json` configuration file that maps component types to directories:\n```json\n{\n  \"agentDirectory\": \"src/agents\",\n  \"toolDirectory\": \"src/tools\",\n  \"promptTemplateDirectory\": \"src/prompts\",\n  \"responseModelDirectory\": \"src/models\",\n  \"defaultProvider\": \"openai\",\n  \"defaultModel\": \"gpt-4o-mini\"\n}\n```\n\n### 2. Add components\n\n```bash\n# Add a PDF search tool to src/tools/pdf_search/\nsygaldry add pdf_search_tool\n\n# Add a research agent with Claude to src/agents/research_assistant/\nsygaldry add research_assistant_agent --provider anthropic --model claude-3-opus\n\n# Add with Lilypad observability\nsygaldry add web_search_tool --with-lilypad\n```\n\n### 3. Use in your code\n\n```python\nfrom tools.pdf_search import search_pdf_content, PDFSearchArgs\nfrom agents.research_assistant import research_topic\n\n# Components are now part of YOUR codebase with proper Mirascope decorators\nresult = await search_pdf_content(PDFSearchArgs(\n    file_path=\"research.pdf\",\n    query=\"machine learning\"\n))\n\n# Agent with your chosen provider/model\nresearch = await research_topic(\n    topic=\"quantum computing\",\n    sources=[\"arxiv\", \"scholar\"]\n)\n```\n\n## Component Structure\n\nEach component lives in its own directory, organized by type:\n\n```\nyour_project/\n\u251c\u2500\u2500 sygaldry.json\n\u251c\u2500\u2500 src/\n\u2502   \u251c\u2500\u2500 agents/\n\u2502   \u2502   \u2514\u2500\u2500 research_assistant/\n\u2502   \u2502       \u251c\u2500\u2500 __init__.py\n\u2502   \u2502       \u251c\u2500\u2500 agent.py      # Mirascope agent implementation\n\u2502   \u2502       \u2514\u2500\u2500 sygaldry.md      # Documentation\n\u2502   \u251c\u2500\u2500 tools/\n\u2502   \u2502   \u2514\u2500\u2500 pdf_search/\n\u2502   \u2502       \u251c\u2500\u2500 __init__.py\n\u2502   \u2502       \u251c\u2500\u2500 tool.py       # Mirascope tool implementation\n\u2502   \u2502       \u2514\u2500\u2500 sygaldry.md\n\u2502   \u2514\u2500\u2500 prompts/\n\u2502       \u2514\u2500\u2500 summarization/\n\u2502           \u251c\u2500\u2500 __init__.py\n\u2502           \u251c\u2500\u2500 prompt.py     # Mirascope prompt template\n\u2502           \u2514\u2500\u2500 sygaldry.md\n```\n\n## Available Components\n\nComponents use type suffixes to prevent naming conflicts:\n\n### Agents\n\n- `academic_research_agent` - Academic paper research with Mirascope agents\n- `code_generation_execution_agent` - Generate and execute code safely\n- `dataset_builder_agent` - Create datasets from various sources\n- `hallucination_detector_agent` - Detect and prevent LLM hallucinations\n- `market_intelligence_agent` - Market research and analysis\n- `research_assistant_agent` - General-purpose research agent\n- `sales_intelligence_agent` - Lead scoring and sales insights\n- And many more...\n\n### Tools\n\n- `pdf_search_tool` - Fuzzy search within PDFs using Mirascope tools\n- `web_search_tool` - Multi-provider web search\n- `code_interpreter_tool` - Safe Python code execution\n- `firecrawl_scrape_tool` - Advanced web scraping\n- `git_repo_search_tool` - Search code repositories\n- And many more...\n\n## Key Features\n\n### Mirascope Native\n\nComponents use proper Mirascope patterns - tools as functions, `@llm.call` with tools parameter, `@prompt_template` decorators, and async patterns.\n\n### Provider Agnostic\n\nWorks with any Mirascope-supported provider - OpenAI, Anthropic, Google, Mistral, Groq, and more. Switch providers with a flag.\n\n### Smart Dependencies\n\nEach component declares its dependencies. The CLI handles installation automatically.\n\n### Observability Ready\n\nOptional Lilypad integration adds `@lilypad.trace()` decorators for tracing and monitoring.\n\n### Best Practices Built-in\n\nAll components follow Mirascope best practices for prompts, tools, response models, and error handling.\n\n## Example: Building a Research App\n\n```bash\n# Initialize project\nsygaldry init\n\n# Add Mirascope components\nsygaldry add research_assistant_agent --provider openai\nsygaldry add pdf_search_tool\nsygaldry add web_search_tool --with-lilypad\n\n# Your app is ready!\n```\n\n```python\n# main.py - Clean Mirascope code\nfrom agents.research_assistant import research_topic\nfrom tools.pdf_search import search_pdf_content\n\n# Components already configured with your provider/model\nresults = await research_topic(\"quantum computing applications\")\npdf_insights = await search_pdf_content(...)\n```\n\n## Documentation\n\nFor comprehensive documentation, visit [sygaldry.ai/docs](https://sygaldry.ai/docs)\n\n## Community\n\n- GitHub: [github.com/sygaldry-ai/sygaldry](https://github.com/sygaldry-ai/sygaldry)\n- Discord: [discord.gg/sygaldry](https://discord.gg/sygaldry)\n- Twitter: [@sygaldry_ai](https://twitter.com/sygaldry_ai)\n\n## License\n\nMIT License - you're free to use sygaldry components in any project, commercial or otherwise.\n\n---\n\n**Stop writing boilerplate. Start building with Mirascope best practices.** \n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Production-ready AI components that you can copy and paste into your apps",
    "version": "0.1.0",
    "project_urls": {
        "documentation": "https://sygaldry.ai/docs",
        "homepage": "https://sygaldry.ai",
        "repository": "https://github.com/sygaldry-ai/sygaldry"
    },
    "split_keywords": [
        "ai",
        " llm",
        " agents",
        " tools",
        " components",
        " mirascope",
        " lilypad"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b75454b7d7258919663046bb2b72018bb3075c77ef67519946dd92cc67d13891",
                "md5": "97f77fbcffeae7c3dc2a521da90d2989",
                "sha256": "29cdf7692adc9ace7dcebc4de85a538442c9d94bbfd77a1f620ba606717e159e"
            },
            "downloads": -1,
            "filename": "sygaldry_cli-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "97f77fbcffeae7c3dc2a521da90d2989",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.13,>=3.12",
            "size": 39659,
            "upload_time": "2025-07-13T04:31:43",
            "upload_time_iso_8601": "2025-07-13T04:31:43.532342Z",
            "url": "https://files.pythonhosted.org/packages/b7/54/54b7d7258919663046bb2b72018bb3075c77ef67519946dd92cc67d13891/sygaldry_cli-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b0ec44c1afb8d77f9791043640904c0c8345c0b43daa12444cfcc715fb86bc9b",
                "md5": "e4d27404e5c95fb368c08724d166c59e",
                "sha256": "98a9f7f3c8b22556d5100b88fe88f3ff03068a0bc16b97c35b16cbcfbbf667ed"
            },
            "downloads": -1,
            "filename": "sygaldry_cli-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "e4d27404e5c95fb368c08724d166c59e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.13,>=3.12",
            "size": 43601,
            "upload_time": "2025-07-13T04:31:44",
            "upload_time_iso_8601": "2025-07-13T04:31:44.910463Z",
            "url": "https://files.pythonhosted.org/packages/b0/ec/44c1afb8d77f9791043640904c0c8345c0b43daa12444cfcc715fb86bc9b/sygaldry_cli-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-13 04:31:44",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "sygaldry-ai",
    "github_project": "sygaldry",
    "github_not_found": true,
    "lcname": "sygaldry-cli"
}
        
Elapsed time: 0.60332s