Deprecated: Function get_magic_quotes_gpc() is deprecated in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 99

Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 619

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1169

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176
8000 GitHub - iml1111/musashi: Blueprint engine for designing autonomous AI agents as structured flows
Nothing Special   »   [go: up one dir, main page]

Skip to content

iml1111/musashi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

52 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ—‘οΈ Musashi - AI Agent Workflow Design Tool

Open-Source Visual Workflow Designer for AI Agent Systems

Version License Docker Ready GHCR Platforms

🎯 Flow Sharp, Ship Fast.

Design complex AI agent workflows visually, without writing code.


✨ Why Musashi?

Musashi is designed specifically for AI workflow design without execution, focusing on:

  • 🎯 Design-First Approach - Pure workflow design tool without runtime overhead
  • πŸš€ Lightweight & Fast - Minimal dependencies, optimized Docker image (~150MB)
  • πŸ”§ Framework Agnostic - Export workflows as JSON for any execution engine
  • 🌐 Open Source - MIT licensed, community-driven development

🎨 Core Features

Visual Workflow Designer

  • πŸ–±οΈ Drag & Drop Interface - Intuitive node-based editor powered by React Flow
  • πŸ“ Auto Layout - Automatic graph alignment using Dagre algorithm
  • πŸ”Œ Rich Node Types - Agent, Function, MCP Server, User Input, Output nodes
  • πŸ”— Smart Connections - Type-safe input/output matching with validation

Team Collaboration

  • πŸ‘₯ Multi-User Support - Real-time collaboration with conflict resolution
  • πŸ” Role-Based Access - Admin, Editor, Viewer permissions per workspace
  • πŸ“Š Workflow History - Track changes with detailed update logs
  • πŸ”„ Version Control - Optimistic locking prevents conflicting edits

Developer Experience

  • πŸ“¦ JSON Export/Import - Git-friendly workflow format
  • πŸ” TypeScript Support - Full type safety in frontend
  • πŸ“ OpenAPI Docs - Auto-generated API documentation
  • 🐳 Docker First - Production-ready containerized deployment

Security & Compliance

  • πŸ”’ JWT Authentication - Secure token-based access control
  • βœ… Container Signing - Cosign-verified Docker images
  • πŸ›‘οΈ Security Scanning - Automated Trivy vulnerability checks
  • πŸ“‹ SBOM Generation - Software bill of materials included

πŸ–ΌοΈ Screenshots

View Workflow Editor
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Musashi Workflow Editor                      βš™οΈ πŸ” β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚
β”‚  β”‚   User   │───▢│  Agent   │───▢│  Output  β”‚     β”‚
β”‚  β”‚  Input   β”‚    β”‚   GPT-4  β”‚    β”‚  Result  β”‚     β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚
β”‚        β”‚              β”‚                β”‚           β”‚
β”‚        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜           β”‚
β”‚                       β–Ό                            β”‚
β”‚                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                       β”‚
β”‚                 β”‚ Function β”‚                       β”‚
β”‚                 β”‚  Process β”‚                       β”‚
β”‚                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quick Start

1-Minute Installation - Docker Run (GHCR)

# Pull the latest image from GitHub Container Registry
docker pull ghcr.io/iml1111/musashi:latest

# Run with a single command (requires external MongoDB)
docker run -d \
  --name musashi \
  --restart unless-stopped \
  -p 80:8080 \
  -e MONGODB_URL="mongodb://host.docker.internal:27017" \
  -e DATABASE_NAME="musashi" \
  -e SECRET_KEY="$(openssl rand -hex 32)" \
  --add-host host.docker.internal:host-gateway \
  ghcr.io/iml1111/musashi:latest

# Access in browser
open http://localhost

Note:

  • The image path follows lowercase convention: ghcr.io/iml1111/musashi
  • For first-time publishing, set the package to Public in GitHub Packages for anonymous pull
  • The image includes OCI labels like org.opencontainers.image.source linking back to this repository

Docker Compose (Recommended)

# Download and run with one command
curl -O https://raw.githubusercontent.com/iml1111/musashi/main/docker-compose.yml
echo "SECRET_KEY=$(openssl rand -hex 32)" > .env
docker-compose up -d

# Access at http://localhost

For detailed installation options, see INSTALL.md

πŸ” Default Admin Credentials

When Musashi starts for the first time, it automatically creates an admin account:

Field Value Note
Username admin Default administrator account
Password 1234 ⚠️ Change immediately after first login

Security Notice:

  • The admin account is created automatically on first startup
  • For production deployments, immediately change the default password
  • Create individual user accounts for team members
  • Never expose the default credentials in production environments

πŸ”§ Environment Variables

Variable Description Default Required
MONGODB_URL MongoDB connection URL (Currently only MongoDB is supported, RDBMS integration planned) mongodb://localhost:27017 βœ…
DATABASE_NAME Database name musashi βœ…
SECRET_KEY JWT signing secret key (32+ characters) - βœ…
BACKEND_CORS_ORIGINS CORS allowed origins http://localhost ❌
ENVIRONMENT Runtime environment (development/production) production ❌
DEBUG Debug mode false ❌
LOG_LEVEL Log level (debug/info/warning/error) info ❌
ACCESS_TOKEN_EXPIRE_MINUTES Token expiration time (minutes) 11520 ❌

For complete environment variable reference and examples, see INSTALL.md


🌐 Ports and Health Checks

Port Configuration

Port Service Description
8080 Web Application Nginx serving Frontend + API proxy
27017 MongoDB Database (external) - RDBMS support planned

Note: The container exposes only port 8080, which serves both the frontend and proxies API requests to the backend internally.

Health Check Endpoints

# Health check
curl http://localhost/api/v1/health
# Response: {"status": "healthy", "api": "v1"}

# API health check (via nginx proxy)
curl http://localhost:8080/api/v1/health
# Response: {"status": "healthy", "api": "v1"}

# Docker health check status
docker inspect musashi --format='{{.State.Health.Status}}'
# Response: healthy

πŸ”„ Upgrade Guide

# Pull new image and restart
docker-compose pull
docker-compose up -d

❓ FAQ

Q: MongoDB connection error occurs

# Test MongoDB connection
docker exec musashi python -c "
from pymongo import MongoClient
client = MongoClient('mongodb://host.docker.internal:27017')
print(client.server_info()['version'])
"

# Solutions
# 1. Check if MongoDB is running
docker ps | grep mongo

# 2. Check network settings (macOS/Windows)
--add-host host.docker.internal:host-gateway

Q: What is the default admin account?

Automatically created on first run:

  • Username: admin
  • Password: changeme123! (immediate change recommended)

Q: I want to change the ports

# Map to different host port
docker run -d --name musashi -p 8888:8080 ghcr.io/iml1111/musashi:latest

Q: How to set up SSL/TLS?

We recommend using a reverse proxy:

server {
    listen 443 ssl;
    server_name musashi.example.com;
    
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    
    location / {
        proxy_pass http://localhost:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Q: How to backup and restore?

See INSTALL.md for backup and restore procedures.

Q: Multi-platform support?

Supports both AMD64 and ARM64 architectures:

  • linux/amd64: Intel/AMD processors
  • linux/arm64: Apple Silicon (M1/M2), ARM servers

Q: How to check logs?

# Real-time logs
docker logs -f musashi

# Last 100 lines
docker logs --tail 100 musashi

# Since specific time
docker logs --since 2h musashi

πŸ“š Additional Documentation


πŸ—οΈ Technology Stack

🎨 Frontend βš™οΈ Backend πŸ’Ύ Database πŸš€ DevOps
  • React 18 + TypeScript 5.2
  • React Flow 11.11 (Workflow Editor)
  • Dagre 0.8.5 (Auto Layout)
  • Tailwind CSS 3.3
  • Vite 7.1 (Build Tool)
  • Zustand (State Management)
  • Vitest (Testing)
  • Python 3.12
  • FastAPI 0.104+
  • Pydantic 2.5+ (Validation)
  • Motor 3.3+ (Async MongoDB)
  • python-jose (JWT Auth)
  • passlib (Password Hashing)
  • pytest (Testing)
  • MongoDB 7.0+
  • Document Store
  • Async Operations
  • Index Optimization
  • GridFS (planned)
  • Docker + Alpine Linux
  • GitHub Actions CI/CD
  • Cosign (Image Signing)
  • Trivy (Security Scan)
  • GHCR (Registry)
  • Nginx (Reverse Proxy)

🀝 Contributing

Musashi is an open-source project. Contributions are welcome!

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

For more details, see CONTRIBUTING.md.


πŸ“„ License

This project is distributed under the MIT License. For more details, see the LICENSE file.


πŸ”— Links


Built with ❀️ by the Musashi Team
Β© 2024-2025 Musashi Team. All rights reserved.

About

Blueprint engine for designing autonomous AI agents as structured flows

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors 3

  •  
  •  
  •  
0