Skip to content

openweavr/Openweavr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

117 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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.

✨ Features

  • 🏠 Self-hosted β€” Your workflows, your data, your infrastructure
  • πŸ€– AI Agents β€” Autonomous agents with web search, file access, shell commands, and multi-step reasoning
  • πŸ”Œ Plugin ecosystem β€” Built-in integrations for GitHub, Slack, Discord, Telegram, Linear, Notion, and more
  • 🧩 MCP Support β€” Extend AI agents with any Model Context Protocol server
  • πŸ“‘ Real-time β€” WebSocket-powered event streaming
  • 🎯 DAG execution β€” Parallel steps, conditional logic, retries, error handling
  • πŸ–₯️ CLI + Web UI β€” Terminal power users and visual builders welcome
  • πŸ’¬ Messaging β€” Built-in WhatsApp, Telegram, Discord, and iMessage support
  • πŸ“§ Email & Calendar β€” Send emails and manage calendar events

πŸš€ Quick Start

# Install
npm install -g @openweavr/weavr

# Setup
weavr onboard

# Start the gateway
weavr serve

# Create your first workflow
weavr create

πŸ“– Example Workflows

AI Research Agent

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.

πŸ€– AI Agent Tools

AI agents (ai.agent action) can use these built-in tools:

Tool Description
web_search Search the web (requires Brave or Tavily API key)
web_fetch Fetch and extract content from URLs
http_request Make HTTP/API requests
read_file Read file contents
write_file Create or modify files
list_directory List files in a directory
shell_exec Execute shell commands

Specify tools in your workflow:

- id: research
  action: ai.agent
  with:
    tools: "web_search,web_fetch"  # or "all" for all tools
    task: "Research the latest news on AI"

You can also extend agents with MCP servers for custom tool access.

πŸ”Œ Built-in Integrations

Plugin Actions Triggers
ai agent, complete, summarize, classify, sentiment β€”
github create_issue, comment, get_issue, add_label push, pull_request, issue, release, etc.
slack post, reply message, reaction
discord send, reply message
telegram send, reply message
whatsapp send β€”
imessage send β€”
linear create_issue, update_issue β€”
notion create_page, update_page, query β€”
email send β€”
calendar create_event, list_events β€”
http request, fetch webhook
cron β€” schedule
shell exec β€”
filesystem read, write, list β€”

πŸ› οΈ CLI Commands

# 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"

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      Gateway Server                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚  HTTP API   β”‚  β”‚  WebSocket  β”‚  β”‚  Webhook Receiver   β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
              β–Ό               β–Ό               β–Ό
      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
      β”‚   Engine    β”‚ β”‚   Plugins   β”‚ β”‚  AI Agent   β”‚
      β”‚ (DAG exec)  β”‚ β”‚  (GitHub,   β”‚ β”‚  (Natural   β”‚
      β”‚             β”‚ β”‚  Slack...)  β”‚ β”‚  language)  β”‚
      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

βš™οΈ Configuration

AI Provider

Configure your AI provider during onboarding or in Settings:

  • Anthropic β€” Claude models (default: claude-sonnet-4-20250514)
  • OpenAI β€” GPT models (default: gpt-4o). Supports OAuth sign-in or API key.
  • Ollama β€” Local models (default: llama3.2). Any Ollama-supported model works.

You can specify any model your provider supports in ~/.weavr/config.yaml:

provider: anthropic  # or openai, ollama
model: claude-sonnet-4-20250514  # any model ID supported by your provider

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

Alternatively, you can use Tavily Search API by setting TAVILY_API_KEY.

Environment Variables

Variable Description
ANTHROPIC_API_KEY Anthropic API key for Claude models
OPENAI_API_KEY OpenAI API key for GPT models
BRAVE_API_KEY Brave Search API key (for AI agent web search)
TAVILY_API_KEY Tavily Search API key (alternative to Brave)
GITHUB_TOKEN GitHub personal access token (for GitHub triggers/actions)
SLACK_BOT_TOKEN Slack bot token (for Slack integration)
DISCORD_BOT_TOKEN Discord bot token (for Discord integration)
TELEGRAM_BOT_TOKEN Telegram bot token (for Telegram integration)
LINEAR_API_KEY Linear API key (for Linear integration)

πŸ“ Project Structure

~/.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

πŸ”Œ Creating Plugins

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 };
      },
    }),
  ],
});

πŸ“š Documentation

Full documentation is available at openweavr.github.io/Openweavr.

🀝 Contributing

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

See CONTRIBUTING.md for guidelines.

πŸ“œ License

MIT Β© Weavr Contributors

About

Self-hosted workflow automation with AI Agents

Topics

Resources

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •