Skip to content

cloudyview/stable

Repository files navigation

🐴 Stable

One Mac. Every AI Agent. Zero Chaos.

The open-source multi-agent management platform for your machine.

License: MIT TypeScript Next.js

English Β· δΈ­ζ–‡


πŸ”₯ The Problem

You've got OpenClaw running your chatbots. Claude Code writing your code. DeerFlow doing deep research. Hermes thinking for you. Each one needs its own port, its own API key, its own runtime, its own process.

Right now? They're all loose cannons. Scattered terminals. Forgotten processes. API keys in plaintext files. Port collisions at 2 AM. One agent crashes and you don't notice for hours.

Your Mac is a Wild West saloon. Every agent is a gunslinger. Nobody's in charge.

🏠 What is Stable

Stable (马厩) is the stable for your AI agents. One dashboard. One command center. Every agent accounted for.

Think of it as:

  • Docker Compose β€” but for AI agents, not containers
  • pm2 β€” but with GUI, API key management, and per-agent isolation
  • A mission control center β€” for the AI startup team living inside your Mac
No Docker. No Kubernetes. No cloud dependency.
Just your Mac, your agents, and a beautiful dashboard.

⚑ What It Does

Feature Description
🎯 One-Click Spawn Create agent instances from built-in recipes. OpenClaw, Hermes, Claude Code, DeerFlow β€” ready in seconds.
πŸ”Œ Port Management Auto-allocate ports. No more EADDRINUSE at 2 AM.
πŸ”‘ API Key Vault Centralized key management with feed bindings. One key, many agents β€” safely.
πŸ›‘οΈ Process Isolation Each agent lives in its own Paddock β€” separate env, separate runtime, separate workspace.
πŸ“Š Real-time Dashboard See every agent's status, resource usage, and logs. Beautiful dark-themed UI.
πŸ–₯️ CLI + GUI Full-featured CLI for scripts, gorgeous dashboard for humans. Use both.
πŸ’€ Crash Recovery Auto-restart on failure (up to 3 attempts). Your agents don't stay down.
πŸ”’ Native Security No Docker overhead. Native processes with filesystem scope isolation.

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                  Stable Dashboard                β”‚
β”‚          (Next.js + React + shadcn/ui)           β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚   Recipes  β”‚  Instances  β”‚      Feed Bin         β”‚
β”‚  (Blueprint)β”‚  (Running)  β”‚   (API Key Pool)      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚              Core Engine (TypeScript)             β”‚
β”‚  Process Manager Β· Port Allocator Β· Config Mgr   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚              Paddock Isolation Layer              β”‚
β”‚  .mise.toml Β· .env Β· workspace/ Β· logs/          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                  SQLite (WAL)                     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Three Pillars

Pillar Name Purpose
πŸ‡ Paddock Isolation Each instance gets its own directory with runtime config, env vars, and workspace
πŸͺ– Reins Permissions Filesystem scope control β€” paddock-only, workspace, or home access
🌾 FeedBin Token Management Bind API keys to instances with exclusive/shared/unlimited sharing modes

πŸš€ Quick Start

# Clone
git clone https://github.com/cloudyview/stable.git
cd stable

# Install
npm install

# Initialize
npm run stable -- init

# Start the dashboard
npm run dev
# β†’ Open http://localhost:3000

That's it. You're running Stable.

πŸ“‹ CLI Commands

# See what's available
npm run stable -- recipes

# Spawn an agent
npm run stable -- create openclaw my-claw-1
npm run stable -- create deerflow deep-research

# Life cycle
npm run stable -- start my-claw-1
npm run stable -- stop my-claw-1
npm run stable -- restart my-claw-1

# Observe
npm run stable -- list
npm run stable -- status my-claw-1
npm run stable -- logs my-claw-1
npm run stable -- system

# API keys
npm run stable -- keys add anthropic sk-ant-xxx "My Key"
npm run stable -- keys
npm run stable -- keys rm <key-id>

# Cleanup
npm run stable -- delete my-claw-1

🐎 Built-in Recipes

Agent Category Mode Description
🦞 OpenClaw Messaging Daemon Personal AI assistant gateway β€” 20+ messaging platforms
🧠 Hermes Agent General Daemon Self-evolving AI agent with persistent memory + skill system
πŸ€– Claude Code Coding Task Anthropic's CLI coding agent
🦌 DeerFlow Research Daemon ByteDance's Super Agent framework β€” deep research & coding

More recipes coming. Or write your own β€” it's just a TypeScript object.

πŸŒ‰ REST API

Every CLI operation has a REST equivalent. Build your own tools on top.

GET    /api/instances                    # List all instances
POST   /api/instances                    # Create instance
GET    /api/instances/:id                # Get instance details
DELETE /api/instances/:id                # Delete instance
POST   /api/instances/:id/start          # Start instance
POST   /api/instances/:id/stop           # Stop instance
POST   /api/instances/:id/restart        # Restart instance
GET    /api/instances/:id/logs           # Get logs (supports SSE)
GET    /api/recipes                       # List all recipes
GET    /api/system                        # System resource info
GET    /api/keys                          # List API keys
POST   /api/keys                          # Add API key
DELETE /api/keys?id=<key-id>              # Delete API key

πŸ› οΈ Tech Stack

Layer Tech
Frontend Next.js 16, React 19, Tailwind CSS 4, shadcn/ui
Backend Next.js API Routes (Server Actions)
Database SQLite (better-sqlite3, WAL mode)
Process Node.js child_process + mise for runtime isolation
Language TypeScript 5 (strict mode, zero any)

Zero Docker. Zero containers. Zero cloud. Native processes on your Mac.

πŸ—ΊοΈ Roadmap

Phase 1 βœ… (Current)

  • Dashboard with real-time agent status
  • CLI tool (14 commands)
  • REST API (10 endpoints)
  • Recipe β†’ Instance system
  • API Key management (FeedBin)
  • Process lifecycle (start/stop/restart/crash recovery)
  • 4 built-in recipes

Phase 2 (Next)

  • Agent installation automation (git clone + build + verify)
  • Agent health monitoring (HTTP health checks)
  • Token usage tracking & budget alerts
  • Agent-to-agent communication bus
  • Real-time log streaming in dashboard

Phase 3 (Future)

  • ToolShed β€” centralized MCP Server management
  • Agent marketplace β€” community recipes
  • Multi-machine support (SSH remote agents)
  • Permission sandboxing (macOS sandbox-exec)
  • Plugin system

🀝 Contributing

We welcome contributions! Especially:

  • New Recipes β€” Got an agent you love? Write a recipe for it.
  • UI Improvements β€” The dashboard can always be prettier.
  • Bug Fixes β€” Found something broken? Fix it.
  • Documentation β€” Help others understand how to use Stable.

πŸ“œ License

MIT License. Use it, fork it, build on it. Just give credit where it's due.


Every AI agent deserves a stable home.

⭐ Star this repo Β· πŸ› Report Bug Β· πŸ’‘ Request Feature

About

🐴 One Mac. Every AI Agent. Zero Chaos. β€” The open-source multi-agent management platform

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors