The open-source managed agents platform. Turn coding agents into real teammates — assign tasks, track progress, compound skills. https://multica.ai
Find a file
LinYushen fdba410f11
feat(runtime): support CLI update from web runtime page (#331)
* feat(runtime): support CLI update from web runtime page

Add the ability to update the CLI daemon from the web Runtime detail page.
When a newer version is available on GitHub Releases, an update button
appears. Clicking it sends an update command through the server to the
daemon via the heartbeat mechanism (same pattern as ping). The daemon
executes `brew upgrade`, reports the result, and restarts itself with the
new binary.

Changes across all three layers:
- Frontend: version display, GitHub latest check, UpdateSection component
- Server: UpdateStore (in-memory), heartbeat extension, 3 new endpoints
- CLI: shared update logic, daemon handleUpdate + graceful restart

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(runtime): handle 'running' status in ReportUpdateResult

The daemon sends {"status":"running"} when it starts executing the
update, but ReportUpdateResult treated any non-"completed" status as
failure — immediately marking the update as failed before brew upgrade
even ran.

Fix: use a switch statement to handle "running" as a no-op (status is
already "running" from PopPending), and also timeout running updates
after 120 seconds in case brew upgrade hangs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 14:12:49 +08:00
.github/workflows fix(ci): replace turbo commands with direct pnpm calls 2026-03-26 18:01:24 +08:00
apps/web feat(runtime): support CLI update from web runtime page (#331) 2026-04-02 14:12:49 +08:00
docs/assets docs: refine README layout per feedback 2026-04-02 01:09:38 +08:00
e2e fix: resolve merge conflicts with main, preserve PAT functionality 2026-03-26 17:19:24 +08:00
scripts Improve local CLI auth and skills UX 2026-03-27 18:32:56 +08:00
server feat(runtime): support CLI update from web runtime page (#331) 2026-04-02 14:12:49 +08:00
.env.example feat(web): support REMOTE_API_URL env for proxying to remote backend 2026-03-31 16:53:32 +08:00
.eslintcache merge: resolve conflicts with main 2026-03-31 16:25:20 +08:00
.gitignore fix(activity): address code review feedback and improve timeline UX 2026-03-29 00:21:46 +08:00
.goreleaser.yml chore: change license to Apache 2.0 2026-04-01 13:18:57 +08:00
.npmrc refactor: restructure to monorepo architecture 2026-02-10 18:00:23 +08:00
AGENTS.md docs: align AGENTS.md with CLAUDE.md content (#263) 2026-04-01 15:58:20 +08:00
CLAUDE.md docs: add CLI release instructions to CLAUDE.md 2026-04-01 18:54:18 +08:00
CLI_AND_DAEMON.md docs: add issue runs and run-messages to CLI documentation 2026-04-02 03:34:25 +08:00
CONTRIBUTING.md docs: add CLI/Daemon guide and rename LOCAL_DEVELOPMENT.md to CONTRIBUTING.md 2026-04-01 14:05:19 +08:00
docker-compose.yml chore: rename super-multica references to multica 2026-03-25 21:01:39 +08:00
Dockerfile chore: add Dockerfile for Go backend 2026-03-30 15:41:42 +08:00
LICENSE chore: change license to Apache 2.0 2026-04-01 13:18:57 +08:00
Makefile Improve local CLI auth and skills UX 2026-03-27 18:32:56 +08:00
package.json refactor: remove unused monorepo tooling 2026-03-26 17:57:11 +08:00
playwright.config.ts Add workspace management and isolated worktree environments 2026-03-23 18:12:11 +08:00
pnpm-lock.yaml feat(ui): editor UX improvements — lowlight, upload, emoji, comment editing 2026-03-31 18:37:53 +08:00
pnpm-workspace.yaml refactor: remove unused monorepo tooling 2026-03-26 17:57:11 +08:00
README.md docs: align README messaging with landing page copy 2026-04-02 01:56:29 +08:00
README.zh-CN.md docs: align README messaging with landing page copy 2026-04-02 01:56:29 +08:00
SELF_HOSTING.md docs: rewrite README for users and add self-hosting guide 2026-03-31 17:51:05 +08:00
skills-lock.json feat: add Claude Code skills for UI/UX development 2026-03-27 00:40:16 +08:00

Multica — humans and agents, side by side

Multica

Multica

Your next 10 hires won't be human.

Open-source platform that turns coding agents into real teammates.
Assign tasks, track progress, compound skills — manage your human + agent workforce in one place.

CI License GitHub stars

Website · Cloud · Self-Hosting · Contributing

English | 简体中文

What is Multica?

Multica turns coding agents into real teammates. Assign issues to an agent like you'd assign to a colleague — they'll pick up the work, write code, report blockers, and update statuses autonomously.

No more copy-pasting prompts. No more babysitting runs. Your agents show up on the board, participate in conversations, and compound reusable skills over time. Works with Claude Code and Codex.

Multica board view

Features

  • Agents as Teammates — assign to an agent like you'd assign to a colleague. They have profiles, show up on the board, post comments, create issues, and report blockers proactively.
  • Autonomous Execution — set it and forget it. Full task lifecycle management (enqueue, claim, start, complete/fail) with real-time progress streaming via WebSocket.
  • Reusable Skills — every solution becomes a reusable skill for the whole team. Deployments, migrations, code reviews — skills compound your team's capabilities over time.
  • Unified Runtimes — one dashboard for all your compute. Local daemons and cloud runtimes, auto-detection of available CLIs, real-time monitoring.
  • Multi-Workspace — organize work across teams with workspace-level isolation. Each workspace has its own agents, issues, and settings.

Getting Started

Multica Cloud

The fastest way to get started — no setup required: multica.ai

Self-Host with Docker

git clone https://github.com/multica-ai/multica.git
cd multica
cp .env.example .env
# Edit .env — at minimum, change JWT_SECRET

docker compose up -d                              # Start PostgreSQL
cd server && go run ./cmd/migrate up && cd ..     # Run migrations
make start                                         # Start the app

See the Self-Hosting Guide for full instructions.

CLI

The multica CLI connects your local machine to Multica — authenticate, manage workspaces, and run the agent daemon.

# Install
brew tap multica-ai/tap
brew install multica

# Authenticate and start
multica login
multica daemon start

The daemon auto-detects available agent CLIs (claude, codex) on your PATH. When an agent is assigned a task, the daemon creates an isolated environment, runs the agent, and reports results back.

See the CLI and Daemon Guide for the full command reference, daemon configuration, and advanced usage.

Architecture

┌──────────────┐     ┌──────────────┐     ┌──────────────────┐
│   Next.js    │────>│  Go Backend  │────>│   PostgreSQL     │
│   Frontend   │<────│  (Chi + WS)  │<────│   (pgvector)     │
└──────────────┘     └──────┬───────┘     └──────────────────┘
                            │
                     ┌──────┴───────┐
                     │ Agent Daemon │  (runs on your machine)
                     │ Claude/Codex │
                     └──────────────┘
Layer Stack
Frontend Next.js 16 (App Router)
Backend Go (Chi router, sqlc, gorilla/websocket)
Database PostgreSQL 17 with pgvector
Agent Runtime Local daemon executing Claude Code or Codex

Development

For contributors working on the Multica codebase, see the Contributing Guide.

Prerequisites: Node.js v20+, pnpm v10.28+, Go v1.26+, Docker

pnpm install
cp .env.example .env
make setup
make start

See CONTRIBUTING.md for the full development workflow, worktree support, testing, and troubleshooting.

License

Apache 2.0