KaibanJS

A JavaScript framework for orchestrating and observing multi-agent work through a Kanban-style workflow.

Stars
★ 1.5k
Last updated
5mo ago
License
MIT
Primary language
TypeScript

At a glance

How it runs
CLILibrary / SDKFramework
Works with
Universal · cross-platformCodex · Claude Code · OpenAI API · Claude API
Cost
Free software; you pay for model usage
Setup effort
Low · running in minutes
You'll need
Node.jsShell / CLINetwork access
Typical use
A JavaScript content team wants separate research, writing, and editing tasks, with research output passed into later tasks.
Not a fit if
  • Teams needing stable production APIs, not beta-stage changes
  • Browser-only developers wanting external coding agents

What does this agent do, and when should you use it?

KaibanJS is a JavaScript-native framework built around Agent, Task, and Team objects for multi-agent systems. A Team starts the workflow, coordinates task-to-task result flow, and can be observed through the Kaiban Board in real time. It can be installed as an npm library in projects such as React and Node.js, used with a custom UI, or run without a UI. The repository documents team-level memory, Redux-inspired state management, workflow logs, and per-agent model configuration. It also provides WorkflowDrivenAgent for deterministic workflows and ExternalCodingAgent for local Claude Code, OpenCode, or Codex CLI delegation in Node or server runtimes.

You define roles, goals, backgrounds, tools, and llmConfig with new Agent(); define task descriptions, expected outputs, and assignees with new Task(); then assemble agents, tasks, inputs, env, and memory in new Team(). Calling team.start() executes the workflow and resolves to an output with result; later task descriptions can consume earlier output through {taskResult:taskN}. The Kaiban Board displays task movement from “To Do” to “Done,” while useStore() exposes agents, tasks, workflowResult, and workflowLogs for custom interfaces or subscriptions to state changes, duration, LLM usage, and cost details. Tool supports LangchainJS-compatible tools, WorkflowDrivenAgent runs workflows built with createStep and createWorkflow from @kaibanjs/workflow, and ExternalCodingAgent launches local coding CLIs through child_process.

  1. A JavaScript content team wants separate research, writing, and editing tasks, with research output passed into later tasks.
  2. A React application needs to render agent and task status plus workflowResult from useStore() in its own interface.
  3. A Node.js service needs to run a Team without a UI and consume the result returned by team.start().
  4. A team wants to assign Google, Anthropic, and OpenAI models to different roles through each agent’s llmConfig.
  5. A local developer wants one task delegated to Claude Code, OpenCode, or Codex instead of an LLM call through LangChain.
  6. A workflow needs deterministic steps with suspension and resumption for manual intervention, using WorkflowDrivenAgent.

How do you install or deploy this agent?

From the project directory, run:

npx kaibanjs@latest init

Add an AI-service key to .env, for example:

VITE_OPENAI_API_KEY=your-api-key-here

Then run:

npm run kaiban

For manual setup:

npm install kaibanjs

ExternalCodingAgent is intended for Node or a server runtime. For Codex, run codex login first or supply OPENAI_API_KEY.

How do you use this agent?

Import with import { Agent, Task, Team } from 'kaibanjs'; create an Agent, assign it to a Task, and create a Team with agents, tasks, and env. Call team.start() and read output.result from the resolved result; handle rejected promises for workflow errors. For the board flow, run npm run kaiban, select “Start Workflow,” and inspect progress in the Task Board and output in Results Overview. Use {taskResult:taskN} in a task description when it needs a preceding task’s output, and choose memory: true or memory: false to control automatic access to previous results.

What are this agent's strengths and limitations?

Pros
  • Uses explicit Agent, Task, and Team objects, with documented {taskResult:taskN} passing between tasks.
  • Provides both a Kaiban Board and useStore()/workflowLogs hooks for visual status and custom observability.
  • Supports per-agent Google, Anthropic, and OpenAI model configuration alongside LangchainJS-compatible tools.
  • WorkflowDrivenAgent supports deterministic step execution, suspension, and resumption without LLM reasoning.
  • ExternalCodingAgent can delegate tasks to Claude Code, OpenCode, Codex, or a mock backend.
Limitations
  • The README labels the project beta, so adopters should plan for validation and potential interface changes.
  • LLM workflows require provider credentials; the setup example requires VITE_OPENAI_API_KEY.
  • External coding agents depend on local CLIs, authentication, and a Node or server runtime; browser bundles mark node:child_process as external.
  • The material says it aims to work with React, Vue, Angular, NextJS, and Node.js, but does not provide a version matrix or complete deployment details for each environment.

How does this agent compare with similar options?

The README compares the Kaiban Board to Trello or Asana for agents and humans: both use a board to track work, while KaibanJS specifically models and executes work through Agent, Task, and Team objects.

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
KaibanJS This agent 33 · Major gaps CLIFree + model costs ★ 1.5k 5mo ago TypeScript Codex · Claude Code · OpenAI API · Claude API
Dynamiq Agent Orchestration 61 · Some gaps Library / SDKFree + model costs ★ 1.1k 1d ago Python OpenAI API
amux Agent Control Plane 77 · Good Self-hosted serviceFree + model costs ★ 554 today Rust Codex · Claude Code
acpx 57 · Major gaps CLIFree + model costs ★ 3.4k 1d ago TypeScript Codex · Claude Code

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Major gaps
33/ 100 5-point scale 1.7 / 5
Trust 0/29
Reliability 5/14
Adaptability 9/18
Convention 9/18
Effectiveness 7/13
Verifiability 3/8
Why each dimension lost points
Trust0 / 29 · 0.0/5

Evidence shows the framework requires API keys (e.g., OPENAI_API_KEY) and may execute external CLI commands (e.g., claude-code), but no mechanisms for least privilege, user confirmation, or data flow transparency are provided. Sensitive data handling (e.g., API keys) is not clearly specified for storage and transmission. Many dependencies (e.g., langchain, zustand) are present, but no security audit or vulnerability scanning evidence is provided. External effects (e.g., calling external APIs, executing CLI) are not clearly restricted or warned. Rollback mechanisms are not mentioned. Source attribution (e.g., author, copyright) is clear in LICENSE, but publisher identity is unverified. Therefore, all trust criteria score 0.

Reliability5 / 14 · 1.8/5

Self-consistency: README and package.json are mostly consistent, but some inconsistencies exist (e.g., README mentions 'Kaiban Board', but no corresponding script in package.json). Dependency availability: Dependency list is complete, but no lock file or integrity checks are provided. Failure messages: Code may have error handling, but no specific examples are provided. Hence each scores 1.

Adaptability9 / 18 · 2.5/5

Audience and scenarios: README clearly targets JavaScript developers and provides multiple integration scenarios (React, Node.js, etc.), scoring 2. Capability boundaries: Documentation describes various features (e.g., WorkflowDrivenAgent, ExternalCodingAgent), but does not clearly define limitations or boundaries, scoring 1. Trigger precision: Tasks and agents are clearly defined, but no precise trigger conditions are provided, scoring 1. Environment fit: Supports multiple frameworks and Node.js, but no browser-side support details, scoring 2.

Convention9 / 18 · 2.5/5

Information architecture: README is well-structured with a table of contents and detailed sections, scoring 2. Install notes: Provides npm installation and initialization commands, scoring 2. Naming stability: Version number exists, but no naming conventions or stability statements, scoring 1. Examples and FAQ: Provides multiple code examples, but no FAQ, scoring 2. Known limitations: Not explicitly listed, scoring 1. License: MIT license is clear, scoring 2. Versioning and changelog: Version number exists, but no CHANGELOG file, scoring 1. Maintenance responsibility: Contribution guidelines and community support exist, but publisher is unverified, scoring 1.

Effectiveness7 / 13 · 2.7/5

Output usability: Provides clear output examples (e.g., workflowResult), scoring 2. Marginal value: Offers a multi-agent framework for the JavaScript ecosystem, providing unique value, scoring 2. Cost-benefit: No performance or cost data provided, scoring 1.

Verifiability3 / 8 · 1.9/5

Claim traceability: Feature claims in README are not linked to specific code or tests, scoring 1. Cross-source corroboration: Test files exist (e.g., opentelemetry tests), but do not cover all claims, scoring 1. Fact-inference separation: Documentation distinguishes feature descriptions and examples, but does not explicitly label inferences, scoring 1.

Risks and how to mitigate them
  • Not found in source: least-privilege scopingGrant only what the task needs: a dedicated account or read-only token, scoped to specific directories and repos.
  • Not found in source: confirmation before actingTurn on (or add) a confirmation step before it acts, and try it in a sandbox or test environment before real data.
  • Not found in source: data-flow disclosureWatch which external services it contacts (proxy or firewall logs) and keep sensitive data out until you know where it goes.
  • Not found in source: sensitive-data handlingUse dedicated, low-privilege, revocable API keys — never production credentials — and keep secrets out of logs.
  • Not found in source: dependency securityPin versions and run a dependency audit (npm audit, pip-audit) before installing; prefer running it in a container.
  • Not found in source: disclosed external effectsEstablish which external systems it writes to, sends to or changes, and verify with test accounts or repos before production.
  • Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
  • Not found in source: verifiable attributionInstall from the official repo or registry and check the publisher and URL to avoid look-alike packages.
  • The framework requires API keys, but no guidance on secure storage or transmission is provided, posing a leak risk.
  • External CLI execution (e.g., claude-code) may introduce security risks; use with caution.
  • Many dependencies are present, but no security audit or vulnerability scanning evidence is provided, leaving supply chain risks unknown.
  • Publisher identity is unverified; assess trustworthiness with caution.
Evidence confidence: Low Reviewed Aug 09, 2026 Reviewed revision ef2edabbdd56
See the full review method →

Recent releases

Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.

  1. v0.24.1
    Release notes excerpt
    KaibanJS v0.24.1 🚀 🤖 External Coding Agents: delegate tasks to Claude Code & OpenCode KaibanJS introduces ExternalCodingAgent — a new agent type that runs your task prompt through a local coding CLI instead of routing inference through LangChain. Use it for headless coding workflows, repo-aware answers, and two-step “planner + reviewer” style teams where each step is a separate CLI invocation. The agent is built for Node / server runtimes (it uses child_process; browser bundles treat node:child_process as external). What you can plug in | Backend | Behavior | …
    View on GitHub ↗
  2. v0.23.0
    Release notes excerpt
    KaibanJS v0.23.0 🚀 🤖 WorkflowDrivenAgent: Deterministic Workflow Execution KaibanJS introduces WorkflowDrivenAgent — a revolutionary new agent type that executes predefined workflows instead of using traditional LLM-based reasoning. This enables deterministic, structured execution with full control over workflow patterns and state management. The WorkflowDrivenAgent is the centerpiece of this release, bringing workflow-driven automation to multi-agent systems with support for: - Sequential Processing: Linear workflow execution with step-by-step control …
    View on GitHub ↗
  3. v0.22.0
    Release notes excerpt
    KaibanJS v0.22.0 🚀 🤖 xAI Grok Model Support (Including Grok-4) KaibanJS now supports the latest Grok-4 model from [xAI](https://x.ai) — bringing advanced LLM reasoning into your multi-agent workflows. Alongside Grok-4, this release also adds compatibility with additional xAI variants: - grok-3 - grok-3-mini - grok-3-mini-fast Whether you're building lightweight prototypes or full-scale agentic systems, KaibanJS now offers native support for all current xAI model versions. 🌐 How to Use …
    View on GitHub ↗

FAQ

Is it limited to OpenAI models?
No. The examples show Google, Anthropic, and OpenAI llmConfig values. Using a provider requires that provider’s credentials.
Must I use the Kaiban Board?
No. The repository states that KaibanJS can be integrated directly into projects, used with a custom UI, or run without a UI.
How does Codex integration work?
Create an ExternalCodingAgent with codingBackend: 'codex'. It invokes non-interactive codex exec; authenticate with codex login or provide OPENAI_API_KEY, and run it in Node or a server runtime.
How is cross-task context controlled?
With memory: true, tasks automatically receive previous task results. With memory: false, reference required results explicitly as {taskResult:taskN}.
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents