Self-hosted workflow automation with AI agents.
Weave your workflows together.
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, 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
# Install
npm install -g @openweavr/weavr
# Setup
weavr onboard
# Start the gateway
weavr serve
# Create your first workflow
weavr createname: 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 }}"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 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.
| 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 |
| send | β | |
| imessage | send | β |
| linear | create_issue, update_issue | β |
| notion | create_page, update_page, query | β |
| send | β | |
| calendar | create_event, list_events | β |
| http | request, fetch | webhook |
| cron | β | schedule |
| shell | exec | β |
| filesystem | read, write, list | β |
# 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 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 providerAI agents need a search API to browse the web. Get a free Brave Search API key:
- Sign up at brave.com/search/api
- Choose "Data for Search" plan (2,000 free queries/month)
- Add your API key in Settings or set
BRAVE_API_KEYenvironment variable
Alternatively, you can use Tavily Search API by setting TAVILY_API_KEY.
| 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) |
~/.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.dbimport { 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 };
},
}),
],
});Full documentation is available at openweavr.github.io/Openweavr.
We welcome contributions! AI-assisted PRs are explicitly encouraged.
See CONTRIBUTING.md for guidelines.
MIT Β© Weavr Contributors

