openweavr/Openweavr: Self-hosted workflow automation with AI Agents


Openweavr

Self-hosted workflow automation with AI agents.
Weave your workflows together.

CI
Release
npm
License: MIT
Node.js 22+

Openweavr Dashboard


Weavr connects AI agents with your developer toolsβ€”GitHub, Linear, Notion, Slack, databases, CI/CD, and more. Think Zapier/n8n, but with native AI agent support and full data sovereignty.

  • 🏠 Self-hosted β€” Your workflows, your data, your infrastructure
  • πŸ€– AI Agents β€” Autonomous agents with web search, tool use, and multi-step reasoning
  • πŸ”Œ Plugin ecosystem β€” Extensible integrations for any tool
  • πŸ“‘ Real-time β€” WebSocket-powered event streaming
  • 🎯 DAG execution β€” Parallel steps, retries, error handling
  • πŸ–₯️ CLI + Web UI β€” Terminal power users and visual builders welcome
  • πŸ’¬ Messaging β€” Built-in WhatsApp, Telegram, and iMessage support
# Install
npm install -g @openweavr/weavr

# Setup
weavr onboard

# Start the gateway
weavr serve

# Create your first workflow
weavr create
name: daily-market-research
description: AI agent researches market data and sends a report

trigger:
  type: cron.schedule
  with:
    expression: "0 9 * * *"  # Every day at 9am

steps:
  - id: research
    action: ai.agent
    with:
      tools: "web_search,web_fetch"
      task: |
        Research current market conditions:
        - Gold and silver prices vs USD
        - Top investment opportunities
        - Key financial news from reliable sources
        Compile into an easy-to-read report.

  - id: notify
    action: whatsapp.send
    needs: [research]
    with:
      to: "+1234567890"
      text: "{{ steps.research.result }}"

GitHub to Slack Notifications

name: bug-to-slack
description: Notify Slack when GitHub issues are labeled 'bug'

trigger:
  type: github.issue.labeled
  with:
    label: bug

steps:
  - id: notify
    action: slack.post
    with:
      channel: "#bugs"
      message: "πŸ› New bug: {{ trigger.issue.title }}\n{{ trigger.issue.html_url }}"

See more examples in the examples/ directory.

# Setup & Diagnostics
weavr onboard          # Interactive setup wizard
weavr doctor           # Diagnose configuration issues

# Server
weavr serve            # Start gateway server
weavr serve --port 3847

# Workflows
weavr list             # List all workflows
weavr run name>       # Run a workflow manually
weavr create           # Create new workflow (interactive)

# AI (coming soon)
weavr ask "When PR is merged, deploy to staging"
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      Gateway Server                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚  HTTP API   β”‚  β”‚  WebSocket  β”‚  β”‚  Webhook Receiver   β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
              β–Ό               β–Ό               β–Ό
      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
      β”‚   Engine    β”‚ β”‚   Plugins   β”‚ β”‚  AI Agent   β”‚
      β”‚ (DAG exec)  β”‚ β”‚  (GitHub,   β”‚ β”‚  (Natural   β”‚
      β”‚             β”‚ β”‚  Slack...)  β”‚ β”‚  language)  β”‚
      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Configure your AI provider during onboarding or in Settings:

  • Anthropic (Claude) – Recommended
  • OpenAI (GPT-4)
  • Ollama (Local models)

Web Search (for AI Agents)

AI agents need a search API to browse the web. Get a free Brave Search API key:

  1. Sign up at brave.com/search/api
  2. Choose “Data for Search” plan (2,000 free queries/month)
  3. Add your API key in Settings or set BRAVE_API_KEY environment variable
~/.weavr/
β”œβ”€β”€ config.yaml        # Global configuration
β”œβ”€β”€ workflows/         # Your workflow definitions
β”œβ”€β”€ plugins/           # Installed plugins
β”œβ”€β”€ logs/              # Execution logs
└── scheduler.db       # Scheduler queue/state (configurable)

You can override the scheduler database location in ~/.weavr/config.yaml:

scheduler:
  dbPath: /path/to/scheduler.db
import { definePlugin, defineAction } from 'weavr/plugins';

export default definePlugin({
  name: 'my-plugin',
  version: '1.0.0',

  actions: [
    defineAction({
      name: 'greet',
      execute: async (ctx) => {
        const name = ctx.config.name as string;
        ctx.log(`Hello, ${name}!`);
        return { greeted: name };
      },
    }),
  ],
});

We welcome contributions! AI-assisted PRs are explicitly encouraged.

See CONTRIBUTING.md for guidelines.

MIT Β© Weavr Contributors



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *