https://github.com/juacker/clai
Desktop multi-agent orchestration and monitoring app with MCP-native tools, shared workspaces, and scheduled automations.
https://github.com/juacker/clai
agent-orchestration agents-fleet ai-agents automation desktop-app mcp monitoring multi-agent observability rust tauri
Last synced: 2 months ago
JSON representation
Desktop multi-agent orchestration and monitoring app with MCP-native tools, shared workspaces, and scheduled automations.
- Host: GitHub
- URL: https://github.com/juacker/clai
- Owner: juacker
- License: mit
- Created: 2025-10-30T23:24:08.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2026-04-04T18:57:18.000Z (3 months ago)
- Last Synced: 2026-04-04T20:59:18.083Z (3 months ago)
- Topics: agent-orchestration, agents-fleet, ai-agents, automation, desktop-app, mcp, monitoring, multi-agent, observability, rust, tauri
- Language: JavaScript
- Homepage:
- Size: 2.34 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
CLAI
A desktop multi-agent orchestration app with MCP-native tools, local execution capabilities, shared workspaces, and scheduled automations.

## Features
- **MCP-Native Assistant** - Attach MCP servers to a tab and the assistant uses their tools directly. Each tab scopes its own capability access.
- **Scheduled Automations** - Create automations that run on a schedule with their own MCP servers, filesystem grants, and shell policies.
- **Local Execution** - Agents get a private workspace directory and can optionally read/write additional paths and run shell commands, controlled by per-agent allow/block lists.
- **Shell Access Modes** - Three modes per agent: *Off* (no shell), *Restricted* (only explicitly allowed command prefixes can run), and *Full* (anything not blocked). Prefix matching supports subcommands — allowing `kubectl get` permits `kubectl get pods` but not `kubectl delete`.
- **Run Notices** - When an agent hits a policy denial, the run completes with an amber "warnings" state instead of failing silently. The Fleet view surfaces these so you can adjust permissions.
- **Workspace Orchestration** - The assistant can split tiles, add canvas nodes, open anomalies panels, and create dashboard charts as part of a workflow.
- **Canvas and Dashboards** - Automations and chat sessions create visual artifacts directly in the workspace with explicit targets.
- **Tabbed Capability Scopes** - Normal tabs start with no MCP access until you attach servers. Automation tabs inherit their MCP and execution config.
- **Provider Flexibility** - Connect any OpenAI-compatible provider and model, including OpenAI, together.ai, Groq, and local endpoints.
> **Important: local execution is not sandboxed.** Shell commands run as your OS user with full privileges. The allow/block lists control *which commands* the agent can invoke, but do not restrict *what those commands can access* — if you allow `cat`, the agent can read any file your user can, not just the paths in the grant list. Path grants only apply to the built-in `fs.read`/`fs.write` tools, not to shell commands. LLMs can also chain commands in unexpected ways. Always use *Restricted* mode with a minimal allow list, and review run notices to catch anything you didn't anticipate.
## Installation
Download the latest release for your platform from the [Releases page](https://github.com/juacker/clai/releases):
| Platform | Download |
|----------|----------|
| Windows | `.msi` or `.exe` |
| macOS | `.dmg` |
| Linux | `.deb`, `.rpm`, or `.flatpak` |
## Getting Started
1. **Connect a provider** - In Settings, add an OpenAI-compatible provider and choose a default model
2. **Add MCP servers** - Register local or remote MCP servers in Settings
3. **Attach servers to a tab** - Use the `Add MCP` badge in the tab context bar to grant tools
4. **Chat or orchestrate** - Ask the assistant to inspect tools, fetch data, open panels, or build visualizations
5. **Create agents** - Set up scheduled automations with their own MCP servers and local execution policies
6. **Configure local execution** - Grant filesystem paths and shell access per agent, starting with Restricted mode
## Capability Model
CLAI scopes every capability explicitly:
- **MCP servers** are configured globally in Settings, then attached per tab or per automation
- **Normal tabs** have no MCP access until you attach servers
- **Automations** use the MCP servers and execution policy from their config
- **Built-in tools** handle workspace orchestration — tabs, canvas, dashboards, anomalies panels
- **Local execution** is per agent: a private workspace directory, optional extra path grants (read-only or read-write), and shell access with prefix-based allow/block lists
- **Domain tools** come from MCP servers
## Provider Setup
CLAI uses a configured provider plus a default model for chat, Fleet interventions, and scheduled automations.
In Settings:
- connect an **OpenAI-compatible** provider using an API key
- optionally set a custom base URL for compatible providers
- choose the default model for assistant sessions and automations
Compatible with **OpenAI**, **together.ai**, **Groq**, **local OpenAI-compatible endpoints**, and other compatible providers.
## Netdata Cloud Integration
Adding a [Netdata Cloud](https://www.netdata.cloud) MCP server unlocks extra workspace tools:
- **Dashboard charts** — the assistant can add live metric charts directly to the workspace
- **Anomaly panels** — open dedicated anomaly investigation views for any monitored node
- **Canvas visualizations** — build visual topologies with metric chart nodes, status badges, and markdown
These tools (`dashboard.addChart`, `canvas.addChart`, `anomalies.open`) appear automatically when a Netdata-capable MCP server is attached to the session.
## Development
```bash
# Clone and install
git clone https://github.com/juacker/clai.git
cd clai
npm install
# Run the desktop app in development
make dev
# Verify builds
npm run build
cargo check --manifest-path src-tauri/Cargo.toml
```
## Architecture
- **Frontend**: React + Tauri
- **Workspace runtime**: tabs, split tiles, canvas, dashboards, anomalies panels
- **Assistant runtime**: session-scoped built-ins + MCP tools, optional fs/shell access
- **Automation runtime**: scheduled agents with private workspaces and execution policies
- **MCP support**: per-server config, optional bearer auth, HTTP and stdio transports
## License
MIT