# Why Use Mirascope?

## The Problem with Existing LLM Tools

When building applications with Large Language Models (LLMs), developers often face a common set of challenges:

- **Overly Complex Abstractions**: Many LLM libraries introduce layers of abstraction that, while well-intentioned, often obscure the underlying API calls and make it difficult to understand what's really happening under the hood.
- **Lack of Flexibility**: As projects grow and requirements evolve, developers frequently find themselves fighting against the constraints of their chosen framework, spending more time trying to work around limitations than building their actual application.
- **Poor Developer Experience**: Inadequate type hinting, unclear documentation, and magical behaviors lead to frustrating debugging sessions and reduced productivity.
- **Lock-in**: Some frameworks are so opinionated that they make it challenging to integrate with other tools or migrate away if needed.
- **Rapid Evolution**: The field of AI and LLMs is advancing at breakneck speed. Rigid, all-encompassing frameworks often struggle to keep pace with new developments and model capabilities.

## Mirascope's Solution

Mirascope addresses these pain points with a philosophy centered on transparency, modularity, and developer experience. Here's why Mirascope stands out:

- **Low-Level Abstractions with Maximum Control**: Mirascope provides convenient abstractions for common tasks without hiding the underlying mechanics. This approach gives you the best of both worlds: productivity gains where it matters, and the ability to drop down to lower levels of abstraction when needed.
- **Uncompromising Transparency**:
    - **Clear Documentation**: Our documentation is always up-to-date, drawn directly from the source code.
    - **No Magic**: Every convenience we offer has a clear, documented alternative for manual implementation.
- **Modular Design**: Mirascope is designed to work seamlessly with other tools in the AI ecosystem. It's not an all-or-nothing framework, but a set of powerful, flexible building blocks that you can use as much of or as little of as you need.
- **Provider-Agnostic Approach**: While Mirascope supports multiple LLM providers out of the box, it also makes it easy to implement custom providers. This flexibility ensures you're never locked into a single ecosystem.
- **Emphasis on Colocation**: Mirascope encourages keeping all the factors that impact your LLM calls in one place. This design principle makes it easier to reason about, iterate on, and maintain your LLM-powered features.
- **Focus On Developer Experience**:
    - **Excellent Editor Support**: Benefit from detailed autocomplete suggestions and inline documentation.
    - **Type Safety**: Catch errors before runtime with our comprehensive type annotations.
    - **Intuitive API**: Our API is designed to be predictable and easy to learn, following Python best practices.

This video is just one example of the many benefits Mirascope provides developers:

<video src="https://github.com/user-attachments/assets/174acc23-a026-4754-afd3-c4ca570a9dde" controls="controls" style="max-width: 730px;"></video>

## Who Should Use Mirascope?

Mirascope is ideal for:

- **Professional Developers**: Who need fine-grained control and transparency in their LLM interactions.
- **AI Application Builders**: Looking for a tool that can grow with their project from prototype to production.
- **Teams**: Who value clean, maintainable code and want to avoid the "black box" problem of many AI frameworks.
- **Researchers and Experimenters**: Who need the flexibility to quickly try out new ideas without fighting their tools.

## Getting Started

Ready to experience the Mirascope difference? Check out our [Learn](./learn/index.md) documentation to begin learning how to build cleaner, more maintainable LLM applications today.

By choosing Mirascope, you're opting for a tool that respects your expertise as a developer while providing the conveniences you need to work efficiently with LLMs. We believe that the best tools get out of your way and let you focus on building great applications.
