JSPM

  • Created
  • Published
  • Downloads 4776
  • Score
    100M100P100Q113568F
  • License BUSL-1.1

Distributed multi-machine AI agent team platform

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (openkrew) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    OpenKrew

    OpenKrew

    AI agents on separate machines, working as a team.

    CI status GitHub release BSL 1.1 License


    OpenKrew runs named AI agents on different physical machines and lets them work together on projects. Each agent has its own identity, role, and permissions. They coordinate through Slack and a central Hub API.

    Most multi-agent frameworks run everything in one process. OpenKrew doesn't. Your agents are actually distributed, each on its own box, talking to each other over real channels. Think less "threads sharing memory" and more "remote coworkers in a Slack workspace."

    Project Vision

    How it works

    Primary Machine (Hub) -- Always On
    ├── Agent Registry API (:4000)
    ├── Shared Memory DB (PostgreSQL + pgvector)
    ├── Task Queue (Redis / BullMQ)
    ├── Provisioning Service (SSH)
    └── Agent: "Quinn" -- Dev Lead
    
    Spoke 1 (e.g., MacBook Mini)
    └── Agent: "Morgan" -- Frontend Developer
    
    Spoke 2 (e.g., Linux Server)
    └── Agent: "Reese" -- Infrastructure / DevOps

    The Hub runs the registry, shared memory, and task queue. Spokes are remote machines, each running one agent. Agents talk through Slack for conversation and the Hub API for structured handoffs.

    What's in the box

    Agents run on separate machines, not threads. Each one has a name, role, and personality defined in YAML. They share a three tier memory system: personal (local files), team (PostgreSQL + pgvector), and project scoped. You set per-agent permissions for shell access, filesystem, git, packages, and secrets.

    Slack is the communication layer. Works with Claude, GPT, DeepSeek, Ollama, LM Studio, and others. SSH provisioning handles remote setup. A privilege broker lets agents request elevated access without holding root credentials directly.

    Agent config

    Each agent gets a YAML file:

    agent:
      name: Quinn
      role: dev-lead
      machine: mac-mini-lan
      model: claude-opus-4-6
      teammates:
        - name: Morgan
          role: frontend
          channel: "#frontend"
        - name: Reese
          role: infra
          channel: "#infrastructure"
      tools: [git, gh, dotnet-cli, docker]
      mcps: [context7, sequential-thinking]

    Permissions

    You control what each agent can do. Morgan here can push code and open PRs but can't merge, can't sudo, and can't touch anything outside the UI and docs folders:

    agent: Morgan
    role: frontend
    
    shell:
      enabled: true
      sudo: false
      blocked_commands: [rm -rf /, shutdown, reboot]
    
    filesystem:
      mode: scoped
      allowed_paths:
        - ~/projects/my-app/UI/**
        - ~/projects/my-app/docs/**
    
    git:
      push: true
      create_pr: true
      merge_pr: false # Only lead can merge
      force_push: false
    
    packages:
      install: true
      managers: [npm, npx]
    
    secrets:
      access: false

    Memory

    Tier Scope Storage Example
    Personal One agent Local filesystem "I prefer TDD"
    Team All agents PostgreSQL + pgvector "API uses .NET 10, frontend is Next.js 14"
    Project Current project Shared DB, scoped "Stage 2 of auth migration, blocked on OAuth"

    Tech stack

    Component Technology
    Hub API Node.js (Fastify) or .NET, REST + WebSocket
    Shared memory PostgreSQL + pgvector
    Task queue Redis / BullMQ
    Agent runtime Node.js (Pi agent framework)
    Messaging Slack (via Slack Bolt)
    SSH provisioning node-ssh
    LLM support Model agnostic, 12+ providers

    Building from source

    Needs Node 22.16+ (24 recommended).

    git clone https://github.com/OpenKrew/openkrew.git
    cd openkrew
    
    pnpm install
    pnpm build

    Roadmap

    We're starting with the basics: get two agents talking on one machine, nail the communication and memory protocols. After that, SSH provisioning for actual multi machine setups, then the interactive setup wizard, then the permission system. Agent to agent coordination (handoffs, conflict resolution) comes last. Then we open source it properly.

    Origin

    OpenKrew started as a fork of OpenClaw (MIT). We kept the Gateway, Pi agent framework, LLM adapters, and Slack integration. Everything else -- multi machine distribution, shared memory, role based permissions, team coordination -- is new.

    See THIRD_PARTY_LICENSES.md for attribution.

    License

    Business Source License 1.1 -- free for non-commercial and internal use. Converts to Apache 2.0 after 3 years per version. Commercial licensing available at licensing@openkrew.com.