Dev & Engineering javascriptmulti-agent-systemskanban-boardlangchain-jsworkflow-orchestrationstate-managementexternal-coding-agents

KaibanJS

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

FollowAgents review · FARS-2.1
Not recommended
33/ 100 5-point scale 1.7 / 5
1 2 3 4 5 6
Per-dimension scores and reasoning
1Trust0 / 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.

2Reliability5 / 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.

3Adaptability9 / 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.

4Convention9 / 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.

5Effectiveness7 / 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.

6Verifiability3 / 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.

Evidence confidence: Low Reviewed Aug 09, 2026 Reviewed revision ef2edabbdd56
Safety controls not found in source: least-privilege scoping, confirmation before acting, data-flow disclosure, sensitive-data handling, dependency security, disclosed external effects, rollback or recovery path, verifiable attribution
Before you use it
  • 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.
Review evidence [1][2][3][4][5][6][7][8]
See the full review method →

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.

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 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.

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.

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}.

Compare agents like this one

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

Related agents