Shuttl

Shuttl

Build AI Agents That Actually Work

Shuttl is a developer-first framework for building, deploying, and managing AI agents. Stop wrestling with complex infrastructure and start shipping intelligent agents in minutes.


  • 🚀 Get Started in 5 Minutes


    Install the CLI, define your agent, and deploy. It's that simple.

    ➡️ Quick Start

  • 🧠 Powerful Agent Primitives


    Agents, Tools, Triggers, and Outcomes—composable building blocks for any AI workflow.

    ➡️ Core Concepts

  • 🔧 Batteries Included


    Built-in support for OpenAI, scheduled tasks, webhooks, and more. Extend with custom tools.

    ➡️ Examples

  • :terminal: Developer Experience First


    Hot reload, streaming responses, and a TUI for real-time debugging. Build with confidence.

    ➡️ CLI Reference


Why Shuttl?

Building AI agents shouldn't require a PhD in distributed systems. Shuttl abstracts away the complexity so you can focus on what matters: making your agents smart.

⚡ From Zero to Agent in Minutes

import { Agent, Model, Secret, Schema } from "@shuttl-io/core";

const weatherTool = {
    name: "get_weather",
    description: "Get current weather for a location",
    schema: Schema.objectValue({
        location: Schema.stringValue("City name").isRequired(),
    }),
    execute: async (args) => {
        // Your logic here
        return { temperature: 72, condition: "sunny" };
    },
};

export const weatherAgent = new Agent({
    name: "WeatherBot",
    systemPrompt: "You help users check the weather.",
    model: Model.openAI("gpt-4", Secret.fromEnv("OPENAI_KEY")),
    tools: [weatherTool],
});

That's it. Run shuttl dev and your agent is live.

🔁 Triggers for Every Use Case

Agents that respond to the world, not just API calls:

Trigger Description
API Expose your agent as an HTTP endpoint
Rate Schedule agents with cron or intervals
Email React to incoming emails
File Watch for file system changes
import { Rate, StreamingOutcome } from "@shuttl-io/core";

// Run every hour
triggers: [Rate.hours(1).bindOutcome(new StreamingOutcome())]

// Or use cron for precise scheduling
triggers: [Rate.cron("0 9 * * MON-FRI", "America/New_York")]

📦 Tools & Toolkits

Give your agents superpowers with reusable tools:

const searchTool = {
    name: "search",
    description: "Search the knowledge base",
    schema: Schema.objectValue({
        query: Schema.stringValue("Search query").isRequired(),
        limit: Schema.numberValue("Max results").defaultTo(10),
    }),
    execute: async ({ query, limit }) => {
        return await searchKnowledgeBase(query, limit);
    },
};

Group related tools into Toolkits for clean, modular agent design.

📈 Production-Ready

  • Streaming responses for real-time UX
  • Automatic retries with exponential backoff
  • Thread management for multi-turn conversations
  • Outcome routing to Slack, webhooks, or custom destinations

Quick Install

=== "npm"

```bash
npm install @shuttl-io/core
```

=== "pnpm"

```bash
pnpm add @shuttl-io/core
```

=== "yarn"

```bash
yarn add @shuttl-io/core
```

Install the CLI:

# Download the latest release
curl -fsSL https://shuttl.io/install.sh | bash

# Or build from source
git clone https://github.com/shuttl-io/shuttl
cd shuttl/apps/cli && go build -o shuttl

What Can You Build?

  • Customer Support Bots


    Agents that understand context, access your knowledge base, and escalate when needed.

  • Automated Workflows


    Schedule agents to process data, generate reports, or sync systems on a cadence.

  • Internal Tools


    Give your team AI-powered assistants that integrate with your existing stack.

  • Content Pipelines


    Agents that create, review, and publish content across channels.


Ready to Build?