Skip to main content
Glama
README.md
<div align="center">
  <h1>🧙‍♂️ MAGI Orchestrator (magi)</h1>
  <p><strong>The Task-Based AI Orchestrator & MCP Server</strong></p>
  <p>
    <a href="https://www.npmjs.com/package/magi-orchestrator"><img src="https://img.shields.io/npm/v/magi-orchestrator?color=cyan&label=npm" alt="NPM Version" /></a>
    <img src="https://img.shields.io/badge/Model_Context_Protocol-Ready-blue" alt="MCP Ready" />
    <img src="https://img.shields.io/badge/Agents-Gemini_|_Claude_|_OpenAI-purple" alt="Supported Agents" />
    <img src="https://img.shields.io/badge/License-MIT-green" alt="License" />
  </p>
</div>

---

**MAGI** is a high-performance, task-based AI orchestrator designed to bring structure, persistence, and specialized intelligence to autonomous development. It operates as a bridge between your preferred AI models and your local environment, functioning simultaneously as a **powerful interactive CLI** and a background **Model Context Protocol (MCP) server**.

## 🌟 Why MAGI? (Key Benefits)

*   **Professional Interactive UI**: Inspired by Claude Code, featuring dimmed reasoning for better focus, real-time action spinners, and clean result boxes.
*   **Hybrid Power**: Use it directly in your terminal for dedicated focus, or annex it to your favorite AI client (Gemini CLI, Claude Desktop) via MCP.
*   **Persistent Orchestration**: Unlike standard chat interfaces, MAGI manages its own state in a local `.magi` directory, including progress logs, activity history, and strict **Guardrails** (Signs) to prevent AI loops.
*   **Native SDK Integration**: Fast and secure connections to official Google Gemini, Anthropic Claude, and OpenAI SDKs. No middleman proxies.
*   **Zero-Touch Automation**: Registration and skill installation happen automatically. Just install and start orquestrating.

---

## 📦 Installation

Install **MAGI Orchestrator** globally via npm to get the `magi` command:

```bash
# Official installation
npm install -g magi-orchestrator
```

*Note: The automatic registration script (`postinstall`) will detect your Gemini CLI and Claude Desktop configurations and inject the MAGI server/skill automatically.*

---

## 🚀 How it Operates (Quick Start)

### Option 1: Interactive CLI Mode (Recommended for Focus)
Run tasks directly from your terminal with rich, stylized feedback.

```bash
# Execute a task iteration interactively
magi run "build-auth-layer"
```

### Option 2: The "Annexed" Mode (Skill Injection)
Open your **Gemini CLI** and use the native skill:
> `/magi fix-login-bug`
> *MAGI will run in the background and report progress directly in your chat session.*

---

## ⚙️ Configuration

MAGI looks for a `magi-config.json` file in your project directory. If not found, it uses sensible defaults.

```json
{
  "agents": [
    {
      "name": "gemini-flash",
      "type": "gemini",
      "model": "gemini-2.0-flash"
    },
    {
      "name": "claude-sonnet",
      "type": "claude",
      "model": "claude-3-5-sonnet-20241022"
    }
  ],
  "defaultAgent": "gemini-flash",
  "stateDirectory": ".magi"
}
```

### 🔑 Authentication
Set your API keys as environment variables:
*   `GEMINI_API_KEY`, `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`.

---

## 🛠 Operation Mechanics: The .magi Directory

MAGI keeps your project context clean by orchestrating everything inside the `.magi` folder:
*   **`progress.md`**: Tracking success criteria and current status.
*   **`guardrails.md`**: Active "Signs" learned from previous failures to guide the AI.
*   **`activity.log`**: Detailed history of every decision and action.

---

## 🛠 Available CLI Commands

| Command | Description |
|---------|-------------|
| `magi run <task>` | Start/Continue a task iteration interactively. |
| `magi setup` | Manually trigger auto-registration in AI clients. |
| `magi serve` | Start the MCP server (STDIO). |
| `magi --version` | Report the current version (v1.2.1). |

---

<div align="center">
  <p>Built with 🩵 by <a href="https://github.com/reaper1067MSX">Santiago Arguello</a></p>
  <p><em>"Bringing divine structure to chaotic agents."</em></p>
</div>

TDQS

A3.9/5.0

Scored across 2 tools

Disambiguation5/5

get_magi_status and run_magi_iteration have clearly distinct purposes: one retrieves runtime status, the other executes an iteration. No overlap or ambiguity.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern: get_magi_status and run_magi_iteration, using snake_case throughout.

Tool Count3/5

With only 2 tools, the server feels thin for an 'Orchestrator' concept. However, the tools cover basic status and execution, so it is borderline appropriate.

Completeness2/5

The tool surface lacks many expected operations for an orchestrator, such as agent management, task listing, or configuration. Significant gaps exist.

Maintenance

ActivityInactive
ResponsivenessNo issues