mycel

module
v0.4.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 3, 2026 License: MIT

README

mycel

CI Release Go License

AI agents are powerful alone — chaotic when they work together. mycel fixes that.

Coordinate teams of Claude, Gemini, Cursor, and other AI agents with isolated worktrees, shared channels, and cost controls. One binary. No login. MIT licensed.

Install

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/rpuneet/mycel/main/scripts/install.sh | bash

# Homebrew
brew install rpuneet/mycel/mycel

# Go
go install github.com/rpuneet/mycel/cmd/mycel@latest

# From source
git clone https://github.com/rpuneet/mycel && cd mycel && make install-local-mycel

Prerequisites: Go 1.25+, tmux, git. For the web UI / desktop app: Bun.

Quick Start

mycel up                      # Start server + web UI on localhost:9374 (bootstraps ~/.mycel)
mycel agent create eng-01 \
  --role engineer \
  --tool claude               # Spawn an agent
mycel status                  # See what's running
mycel agent peek eng-01       # Watch agent output
mycel cost show               # Check spending

Open http://localhost:9374 for the web dashboard.

What mycel Does

Without mycel: One agent at a time. Context lost between sessions. Merge conflicts from parallel edits. No visibility. Surprise bills.

With mycel: Multiple agents in parallel. Each gets its own git worktree — zero conflicts. Persistent channels for structured communication. Per-agent budgets with hard stops. Everything observable in real time.

How It Works
  1. Isolated by design — Each agent runs in its own tmux session (or Docker container) with a dedicated git worktree. They can't step on each other's work.

  2. Structured communication — Agents talk through persistent channels with mentions, reviews, and handoffs. Not through you.

  3. Full visibility — Costs, activity, resource usage — all in real time through the CLI, web dashboard, or desktop app.

Supported Agents

Agent Status
Claude Code Fully supported
Gemini CLI Fully supported
Cursor Supported
Codex Supported
Custom Any CLI tool via provider config

Commands

Core
Command Description
mycel Boot the server and open the web dashboard
mycel up Start server (foreground); bootstraps ~/.mycel
mycel up -d Start server (daemon)
mycel down Stop server
mycel status Show agent status
mycel doctor Diagnose setup issues
Agents
Command Description
mycel agent create [name] Create agent with role and tool
mycel agent list List all agents
mycel agent attach <agent> Attach to agent's tmux session
mycel agent peek <agent> Watch agent output
mycel agent send <agent> <msg> Send message to agent
mycel agent stop <agent> Stop agent
mycel agent delete <agent> Delete agent
Channels
Command Description
mycel channel list List channels
mycel channel create <name> Create channel
mycel channel send <ch> <msg> Send message
mycel channel history <ch> View history
Costs
Command Description
mycel cost show Cost summary (computed from provider session logs)
mycel cost budget show Budget status
mycel cost daily Daily spend series
Configuration
Command Description
mycel config show Show configuration
mycel config set <key> <val> Set config value
mycel secret set <name> Store encrypted secret
mycel tool list List available tools
mycel mcp list List MCP servers
mycel template list List agent templates

Full reference: mycel --help or mycel <command> --help

Architecture

┌─────────────────────────────────────────────────┐
│                  mycel binary                    │
│                                                  │
│  ┌──────────┐  ┌───────────────────────────┐    │
│  │   CLI    │  │  HTTP Server              │    │
│  │ (Cobra)  │  │  + embedded Web UI        │    │
│  │          │  │  + MCP + SSE + Apps       │    │
│  └────┬─────┘  └────────────┬──────────────┘    │
│       │                     │                    │
│  ┌────┴─────────────────────┴─────────────────┐  │
│  │              pkg/ (Go packages)            │  │
│  │  agent · app · cost · gateway · mcp        │  │
│  │  provider · runtime · secret · home        │  │
│  └────────────────────┬───────────────────────┘  │
│                       │                          │
│  ┌────────────────────┴───────────────────────┐  │
│  │           Agent Runtimes                   │  │
│  │     tmux sessions │ Docker containers      │  │
│  │     git worktrees │ ~/.mycel entity state  │  │
│  └────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────┘
                        │
            ┌───────────┼───────────┐
            │           │           │
         Claude      Gemini     Cursor ...
  • Single binary — CLI, server, web UI, MCP all in one
  • SQLite storage — zero external dependencies
  • Agent isolation — each agent gets its own git worktree and tmux/Docker session
  • Apps — 28 plugin integrations (Slack, Telegram, Discord, GitHub, …) with credentials in an encrypted vault

Configuration

Everything lives under ~/.mycel/ — your repos stay pristine. Config is one file, ~/.mycel/prefs.json:

{
  "version": 3,
  "server": {
    "host": "127.0.0.1",
    "port": 9374
  },
  "providers": {
    "default": "claude"
  },
  "runtime": {
    "default": "docker"
  },
  "storage": {
    "default": "sqlite"
  }
}

Vision

mycel treats agents as team members, not scripts:

  • Dedicated worktree — an isolated git workspace per agent, so parallel work never conflicts
  • Defined role — engineer, manager, reviewer, etc., with capabilities scoped to the role
  • Structured collaboration — agents communicate through channels, not ad hoc chat
  • Human oversight — you set budgets, define roles, review and merge PRs, and monitor activity from the CLI, web dashboard, or desktop app
Feature mycel Single-agent tools
Multiple parallel agents Yes No
Role-based hierarchy Yes No
Inter-agent communication Yes No
Git worktree isolation Yes No
Cost tracking per agent Yes Limited
Persistent agent memory Yes Session-only

Design principles: isolation by default, explicit (logged) inter-agent communication, cost awareness on every action, human-in-the-loop for critical decisions, and a CLI-first architecture with no infrastructure to stand up.

Roadmap: multi-repository orchestration, deeper CI/CD pipeline integrations, cost optimization recommendations, and (longer-term) distributed agent execution, cross-team agent collaboration, and enterprise features (SSO, audit logs).

Development

make build            # Build everything
make test             # Run all tests
make lint             # Run linters
make check            # Full quality gate
make run-mycel        # Run from source
make run-web          # Web UI dev server (hot reload)

See make help for all targets.

Contributing

Contributions welcome. Please run make check before submitting PRs.

License

MIT

Directories

Path Synopsis
cmd
gendocs command
Package main generates CLI reference documentation from Cobra commands.
Package main generates CLI reference documentation from Cobra commands.
mycel command
Package main is the entry point for the mycel CLI.
Package main is the entry point for the mycel CLI.
internal
cmd
Package cmd implements the mycel CLI commands.
Package cmd implements the mycel CLI commands.
pkg
agent
Package agent provides agent lifecycle management for mycel.
Package agent provides agent lifecycle management for mycel.
app
Package app defines the plugin contract for external integrations ("apps").
Package app defines the plugin contract for external integrations ("apps").
app/builtin
Package builtin registers the built-in app plugins with the default registry via side-effect imports.
Package builtin registers the built-in app plugins with the default registry via side-effect imports.
attachment
Package attachment provides file storage for channel attachments.
Package attachment provides file storage for channel attachments.
avatar
Package avatar renders an agent's deterministic mycelium character — the same mushroom creature the web UI draws in web/src/components/agent-ui — as a standalone SVG (and PNG, see png.go) so it can serve as the agent's public identity: its mycel UI avatar and its Slack profile picture.
Package avatar renders an agent's deterministic mycelium character — the same mushroom creature the web UI draws in web/src/components/agent-ui — as a standalone SVG (and PNG, see png.go) so it can serve as the agent's public identity: its mycel UI avatar and its Slack profile picture.
client
Package client provides an HTTP client for the daemon daemon.
Package client provides an HTTP client for the daemon daemon.
container
Package container implements a Docker-based runtime backend for agent sessions.
Package container implements a Docker-based runtime backend for agent sessions.
cost
Package cost computes cost/usage analytics directly from provider session files (source-direct — there is no ledger).
Package cost computes cost/usage analytics directly from provider session files (source-direct — there is no ledger).
db
Package db provides unified SQLite database management for the mycel CLI.
Package db provides unified SQLite database management for the mycel CLI.
deps
Package deps implements the optional dependencies manager described in docs/proposals/multi-workspace-and-code-tab.md §7.
Package deps implements the optional dependencies manager described in docs/proposals/multi-workspace-and-code-tab.md §7.
doctor
daemon.go — health check against the running mycel daemon.
daemon.go — health check against the running mycel daemon.
envpath
Package envpath makes GUI-launched mycel processes find Homebrew (and other well-known) binaries the same way an interactive shell would.
Package envpath makes GUI-launched mycel processes find Homebrew (and other well-known) binaries the same way an interactive shell would.
events
Package events provides an append-only event log for mycel.
Package events provides an append-only event log for mycel.
files
Package files exposes shared filesystem helpers.
Package files exposes shared filesystem helpers.
gateway
Package gateway provides external messaging platform integrations.
Package gateway provides external messaging platform integrations.
gateway/bitbucket
Package bitbucket implements the gateway.NotificationAdapter for Bitbucket webhooks.
Package bitbucket implements the gateway.NotificationAdapter for Bitbucket webhooks.
gateway/datadog
Package datadog implements the gateway.NotificationAdapter for Datadog webhooks.
Package datadog implements the gateway.NotificationAdapter for Datadog webhooks.
gateway/discord
Package discord implements the gateway.NotificationAdapter for Discord.
Package discord implements the gateway.NotificationAdapter for Discord.
gateway/github
Package github implements the gateway.NotificationAdapter for GitHub webhooks.
Package github implements the gateway.NotificationAdapter for GitHub webhooks.
gateway/gitlab
Package gitlab implements the gateway.NotificationAdapter for GitLab webhooks.
Package gitlab implements the gateway.NotificationAdapter for GitLab webhooks.
gateway/gmail
Package gmailgw implements a gateway.NotificationAdapter for Gmail.
Package gmailgw implements a gateway.NotificationAdapter for Gmail.
gateway/grafana
Package grafana implements the gateway.NotificationAdapter for Grafana alert webhooks.
Package grafana implements the gateway.NotificationAdapter for Grafana alert webhooks.
gateway/imessage
Package imessage implements a gateway.NotificationAdapter that polls the BlueBubbles API for new iMessage messages.
Package imessage implements a gateway.NotificationAdapter that polls the BlueBubbles API for new iMessage messages.
gateway/irc
Package irc implements a gateway.NotificationAdapter for IRC channels using the ergochat/irc-go library.
Package irc implements a gateway.NotificationAdapter for IRC channels using the ergochat/irc-go library.
gateway/jira
Package jira implements the gateway.NotificationAdapter for Jira webhooks.
Package jira implements the gateway.NotificationAdapter for Jira webhooks.
gateway/line
Package line implements a gateway.NotificationAdapter for LINE Messaging API webhooks with HMAC-SHA256 signature validation.
Package line implements a gateway.NotificationAdapter for LINE Messaging API webhooks with HMAC-SHA256 signature validation.
gateway/linear
Package linear implements the gateway.NotificationAdapter for Linear webhooks.
Package linear implements the gateway.NotificationAdapter for Linear webhooks.
gateway/matrix
Package matrix implements a gateway.NotificationAdapter that polls the Matrix client-server API /sync endpoint for new events.
Package matrix implements a gateway.NotificationAdapter that polls the Matrix client-server API /sync endpoint for new events.
gateway/mattermost
Package mattermost implements a gateway.NotificationAdapter using the Mattermost WebSocket API for real-time message events.
Package mattermost implements a gateway.NotificationAdapter using the Mattermost WebSocket API for real-time message events.
gateway/mqtt
Package mqtt implements a gateway.NotificationAdapter for MQTT topics using the Eclipse Paho MQTT client.
Package mqtt implements a gateway.NotificationAdapter for MQTT topics using the Eclipse Paho MQTT client.
gateway/netlify
Package netlify implements the gateway.NotificationAdapter for Netlify webhooks.
Package netlify implements the gateway.NotificationAdapter for Netlify webhooks.
gateway/notion
Package notion implements a gateway.NotificationAdapter that polls the Notion API for recently updated pages and databases.
Package notion implements a gateway.NotificationAdapter that polls the Notion API for recently updated pages and databases.
gateway/pagerduty
Package pagerduty implements the gateway.NotificationAdapter for PagerDuty webhooks.
Package pagerduty implements the gateway.NotificationAdapter for PagerDuty webhooks.
gateway/reddit
Package reddit implements a gateway.NotificationAdapter that polls the Reddit API for new posts and comments in a subreddit.
Package reddit implements a gateway.NotificationAdapter that polls the Reddit API for new posts and comments in a subreddit.
gateway/rss
Package rss implements a gateway.NotificationAdapter that polls RSS 2.0 and Atom feeds on a configurable interval.
Package rss implements a gateway.NotificationAdapter that polls RSS 2.0 and Atom feeds on a configurable interval.
gateway/sentry
Package sentry implements the gateway.NotificationAdapter for Sentry webhooks.
Package sentry implements the gateway.NotificationAdapter for Sentry webhooks.
gateway/signal
Package signal implements a gateway.NotificationAdapter that polls a signal-cli REST API for new messages.
Package signal implements a gateway.NotificationAdapter that polls a signal-cli REST API for new messages.
gateway/slack
Package slackgw implements the gateway.NotificationAdapter for Slack.
Package slackgw implements the gateway.NotificationAdapter for Slack.
gateway/stripe
Package stripe implements the gateway.NotificationAdapter for Stripe webhooks.
Package stripe implements the gateway.NotificationAdapter for Stripe webhooks.
gateway/telegram
Package telegram implements the gateway.NotificationAdapter for Telegram Bot API.
Package telegram implements the gateway.NotificationAdapter for Telegram Bot API.
gateway/twitch
Package twitch implements a gateway.NotificationAdapter for Twitch EventSub webhooks with HMAC signature validation.
Package twitch implements a gateway.NotificationAdapter for Twitch EventSub webhooks with HMAC signature validation.
gateway/vercel
Package vercel implements the gateway.NotificationAdapter for Vercel webhooks.
Package vercel implements the gateway.NotificationAdapter for Vercel webhooks.
gateway/webhook
Package webhook implements a generic gateway.NotificationAdapter that receives arbitrary JSON payloads via HTTP POST.
Package webhook implements a generic gateway.NotificationAdapter that receives arbitrary JSON payloads via HTTP POST.
gateway/whatsapp
Package whatsapp implements a gateway.NotificationAdapter using whatsmeow (WhatsApp Web multi-device protocol).
Package whatsapp implements a gateway.NotificationAdapter using whatsmeow (WhatsApp Web multi-device protocol).
home
Repo discovery helpers — see open.go for the main package doc.
Repo discovery helpers — see open.go for the main package doc.
log
Package log provides structured logging for mycel using log/slog.
Package log provides structured logging for mycel using log/slog.
marketplace
Package marketplace provides a live aggregator for MCP servers, skills, and prompt templates from public registries and the local mycel template store.
Package marketplace provides a live aggregator for MCP servers, skills, and prompt templates from public registries and the local mycel template store.
mcp
Package mcp provides SQLite-backed storage for MCP server configurations.
Package mcp provides SQLite-backed storage for MCP server configurations.
names
Package names provides random name generation for agents.
Package names provides random name generation for agents.
notify
Package notify implements the notification gateway for delivering external platform events (Slack, Telegram, Discord, etc.) to subscribed mycel agents via tmux send-keys.
Package notify implements the notification gateway for delivering external platform events (Slack, Telegram, Discord, etc.) to subscribed mycel agents via tmux send-keys.
oauth
Package oauth provides a generic loopback (localhost redirect) OAuth 2.0 authorization-code + PKCE flow that runs entirely on the local machine.
Package oauth provides a generic loopback (localhost redirect) OAuth 2.0 authorization-code + PKCE flow that runs entirely on the local machine.
provider
Package provider — ConfigAdapter extends Provider with config file setup.
Package provider — ConfigAdapter extends Provider with config file setup.
runtime
Package runtime provides a backend-agnostic interface for agent session management.
Package runtime provides a backend-agnostic interface for agent session management.
secret
Package secret provides encrypted secrets management for mycel workspaces.
Package secret provides encrypted secrets management for mycel workspaces.
stats
Package stats provides fleet metrics and statistics tracking.
Package stats provides fleet metrics and statistics tracking.
template
Package template provides agent template definitions and file-based storage.
Package template provides agent template definitions and file-based storage.
tmux
Package tmux provides tmux session management for agent orchestration.
Package tmux provides tmux session management for agent orchestration.
token
Package token reads Claude Code session JSONL files from agent volume mounts and aggregates token usage per agent.
Package token reads Claude Code session JSONL files from agent volume mounts and aggregates token usage per agent.
tool
Package tool provides persistent storage and management for AI tool providers.
Package tool provides persistent storage and management for AI tool providers.
ui
Package ui provides consistent CLI output formatting utilities.
Package ui provides consistent CLI output formatting utilities.
worktree
Package worktree manages git worktree lifecycle for agent isolation.
Package worktree manages git worktree lifecycle for agent isolation.
build_services.go — factory for the single the daemon service bundle.
build_services.go — factory for the single the daemon service bundle.
handlers
Package handlers: apps.go implements the /api/apps surface — the data-driven replacement for per-platform gateway CRUD.
Package handlers: apps.go implements the /api/apps surface — the data-driven replacement for per-platform gateway CRUD.
mcp
Package mcp is the agent-facing MCP server embedded in the mycel daemon.
Package mcp is the agent-facing MCP server embedded in the mycel daemon.
ws
Package ws implements a Server-Sent Events (SSE) hub for real-time event broadcasting to connected web clients.
Package ws implements a Server-Sent Events (SSE) hub for real-time event broadcasting to connected web clients.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL