Sandbox
@getcrew44/crew44

Local workspace for specialist agent orchestration

Crew44 turns installed coding-agent CLIs into named roles that can hand work to each other in one shared workspace. Each role can use its own model and attached skills, while project state stays in plain files under `~/.crew44/`. The app has a Go daemon for runtime discovery and state, an Electron and React desktop UI, and a mobile companion for remote viewing. It is built to run locally without a Crew44 cloud account or telemetry.

359 stars11 forksGoUpdated 3mo ago
Who it's for

Builders who want their coding agents to share memory, skills, and handoffs across one project workspace.

What it delivers

You can run specialist agents with shared project memory instead of re-explaining context to each one.

What it does

Role-based agent orchestration

Lets you bind named agents to specific runtimes and models, then pass work between them with handovers.

Local plain-file state

Stores projects, chats, and skills under `~/.crew44/` so the workspace stays on your machine.

Skill attachment

Loads file-based skills (`SKILL.md` plus assets) into an agent session when that agent runs.

Worktree-based tasks

Can spin up an isolated git worktree for a chat so a crew works on its own branch.

Goal verification

Supports locked criteria checklists and a fresh verifier session for checking task outcomes.

Mobile companion

Includes a mobile app that can pair to a running crew over an encrypted tunnel.

How to get it

  1. 1Run
    npm install
    npm run dev

README

Crew44

Crew44

A local-first orchestrator for running specialist AI agents on your own machine.

CI License: MIT Platforms Free

Download · Website · What's new

Crew44 - Turn coding agents into specialist teams | Product Hunt


Crew44 turns the AI agents you already run — Claude Code, Codex, Gemini, Cursor, and more — into a coordinated team. Instead of one generalist agent re-explaining context to itself all day, you assemble specialists, bind each to the model that wins at its job, and let them hand work off to each other inside one shared workspace.

Everything runs on your machine. State is plain files under ~/.crew44/. No cloud account, no subscription, no telemetry — the only network traffic is whatever your underlying coding agent already makes.

https://github.com/user-attachments/assets/ce6e5293-6c58-4c37-8e00-74d654d2277c

Download

Grab a signed desktop build for your platform — free, no account required:

PlatformFormat
macOS (Apple Silicon).dmg
Windows (x64).exe installer
Linux (ARM64).AppImage / .deb

crew44.io/download

Prefer to build it yourself? See Getting started.

Why Crew44

The old way — one agentWith Crew44 — a crew of specialists
A new contractor every morning: never seen your repo, never learned your conventions.Per-project memory. Monday's fix is in the crew's muscle memory by Thursday.
Skills never compound — whatever it figured out is gone by next task.Skills that compound. Capture a workflow once as SKILL.md; every agent you attach it to gets it on every turn, across providers.
One generalist plans, builds, and reviews — no deep expertise in any role.Specialists in parallel. Planner drafts while builder codes while reviewer checks. Handovers ship the baton, not the whole context.
Locked to a single model: pays Opus rates for a rename, runs a fast model on a hard call.The right model per role. Opus plans, GPT-5.5 codes, a local model reviews — swap per task, not per app.

Supported runtimes

Crew44 detects and routes to any of these installed on your machine:

Claude Code · Codex · Cursor Agent · Gemini CLI · Hermes · Kimi · OpenCode · OpenClaw · Pi · Qoder · Qwen Code

The same skills folder runs across every provider, so you're never locked in. Have another CLI? The runtime layer is a small Go interface — add an adapter under daemon/internal/backendagent/ and it shows up in the picker.

Core concepts

ConceptWhat it is
RuntimeA coding-agent CLI on disk (Claude, Codex, Cursor, …) discovered by scanning.
AgentA named persona bound to one runtime + model, with an instruction and attached skills.
SkillA file-based capability (SKILL.md + assets) injected into the runtime session when its agent runs.
ProjectA working directory plus the chats that belong to it. Stored under Documents/Crew44/ or a folder you pick.
ChatA turn-by-turn thread. One in-flight response at a time; events are an append-only events.jsonl.
WorktreeAn optional isolated git checkout for a chat. Toggle it on a new task and the crew works on its own crew/… branch without touching your working tree.
HandoverA marker an agent emits to pass the turn to a teammate, with a one-line brief.
GoalAn optional verifiable outcome for a task. The crew scopes it into a locked criteria checklist, and an independent verifier — fresh session, no chat history — must confirm every criterion before you sign off.

The default crew ships with a Partner, an Engineer, a Product Lead, and a Designer — each owning a role, a model, and its own skills folder.

How it works

┌─────────────────┐  WebSocket JSON-RPC   ┌──────────────────┐    spawn    ┌─────────────────┐
│  Electron / UI  │ ◄───────────────────► │   Go daemon      │ ──────────► │  agent CLIs     │
│  React 19       │                       │   127.0.0.1      │             │  (claude, codex,│
└─────────────────┘                       └──────────────────┘             │   cursor, …)    │
                                                   │                       └─────────────────┘
                                                   ▼
                                          ~/.crew44/  (plain-file state)
  • Daemon — a single Go process at daemon/. Owns runtime discovery, agent/skill/chat state, and the JSON-RPC + event-stream surface. Auth is a per-launch bearer token; only /health is unauthenticated.
  • Renderer — React 19 app in src/. Routes for Crew (agents, skills, runtimes), Tasks (chat threads with live streaming), New Task, Auto (suggestions), and Onboarding.
  • Mobile — Expo app in packages/mobile/ pairs over an end-to-end encrypted Noise tunnel through a small relay, so you can read or nudge a running crew from your phone.

Privacy

  • All UI, state, and orchestration happens on 127.0.0.1. Crew44 itself does not call out to any remote service.
  • The only outbound traffic is whatever the underlying coding-agent CLI you chose (claude, codex, …) makes on its own — including the on-demand headless browser, which fetches its Playwright package and Chromium via npm and visits the URLs the agent navigates to.
  • Mobile pairing, when enabled, uses a relay for NAT traversal, but the payload is end-to-end encrypted with Noise, so the relay only sees ciphertext. You can self-host the relay if you prefer; the URL is configurable.
  • No analytics, no error reporting, no phone-home.

Getting started

Prerequisites

  • macOS, Windows, or Linux
  • Node 20+ and Go 1.26+
  • At least one coding-agent CLI installed (claude, codex, cursor, …)

Run the desktop app

npm install
npm run dev

This builds the Go daemon, starts Vite, launches Electron, and connects the renderer once the daemon reports healthy.

Project layout

.
├── electron/              Electron main process, preload, app assets
├── src/                   React renderer
├── packages/mobile/       Expo mobile app
├── daemon/                Go module
│   ├── cmd/crew44-daemon  daemon entrypoint
│   ├── internal/          app, rpc, httpapi, store, runtime, agent adapters
│   └── test-utils/
├── docs/                  manual e2e harnesses + design notes
└── public/                renderer static assets

Development

npm run dev      # development app
npm run build    # renderer build + local app
npm run web:dev  # daemon + bare Vite development server
npm run test     # Go tests + renderer tests + mobile tests
npm run clean    # remove local build artifacts

Daemon configuration via env vars:

VariableDefaultDescription
HOST / CREW44_DAEMON_HOST127.0.0.1TCP listen host.
PORT / CREW44_DAEMON_PORT8080TCP listen port.
AUTH_TOKEN / CREW44_AUTH_TOKENemptyWebSocket bearer subprotocol token. Empty = dev mode.
CREW44_STATE_DIR~/.crew44Root directory for persisted state.

When auth is enabled, /rpc requires WebSocket subprotocols:

new WebSocket("ws://127.0.0.1:8080/rpc", [
  "crew44.rpc.v1",
  `crew44.bearer.${token}`,
])

License

MIT © 2026

Orchestrating teams of specialist agents in one workspace.

Files in the repo

Repository payload15 top-level entries
  • .github
  • daemon
  • electron
  • packages
  • public
  • src
  • .gitignore
  • .npmrc.example
  • CHANGELOG.md
  • index.html
  • LICENSE
  • package-lock.json
  • package.json
  • README.md
  • vite.config.js

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More agents

Hmbown/
Codewhale

Open-source coding agent for your terminal, built in Rust and on a journey of continuous community improvement. Issues and PRs welcome.

41k

A lightweight alternative to OpenClaw that runs in containers for security. Connects to WhatsApp, Telegram, Slack, Discord, Gmail and other messaging apps,, has memory, scheduled jobs, and runs directly on Anthropic's Agents SDK

31k
TokenRhythm/
opensquilla

OpenSquilla — Token-Efficient AI Agent with same budget, higher intelligence density

7k

An open-source AI coding agent that lives in your terminal.

28k
Untrivial-ai/
agent-orchestrator

Run and supervise teams of coding agents from planning to merge. Any harness (Claude code, codex, +25 more). Desktop, web, mobile, and cloud agents.

11k