Overview
Eko (pronounced like 'echo') is a JavaScript framework for building agents that go from a single natural-language instruction to a multi-step workflow. Its distinguishing choice is the runtime target: rather than being a server-side Python library, Eko is pure JavaScript designed to run in both computer and browser environments — Node.js, a web page, or a Chrome extension — behind one unified interface.
A task is described in a sentence and planned into a workflow the framework executes, with agents composed from built-in pieces such as `BrowserAgent` and `FileAgent` or custom ones you define. Version 3.0 added dependency-aware parallel agent execution so independent branches run at the same time, plus pause, resume and interrupt controls with `task_snapshot` recovery; version 4.0 added chat conversations and reworked the agent logic.
Models are configured per-task as a map, so a workflow can mix providers — Anthropic, Google and any OpenAI-compatible endpoint including Qwen via DashScope or Doubao via Volcengine — and pick different models for different steps. MCP servers connect natively for tools, and human-in-the-loop hooks let a person intervene at the points that matter. The project warns explicitly against putting API keys in browser or front-end code: configure a backend proxy via `baseURL` and request headers instead.
What it does
- Pure JavaScript, built for both Node.js and browsers — including Chrome-extension deployment
- One sentence to a multi-step workflow, with stream planning for dynamic rendering as the plan forms
- Dependency-aware parallel execution of independent agent branches (Eko 3.0)
- Pause, resume and interrupt controls with `task_snapshot` workflow recovery
- Multi-agent composition with built-in `BrowserAgent` and `FileAgent`, plus custom agents and tools in a line of code
- Dynamic LLM selection: a per-task map of providers, so different steps can use different models
- Native MCP support for connecting external tool servers
- Human-in-the-loop hooks to intervene mid-workflow
Getting started
Eko installs as a set of npm packages and is driven from TypeScript. The repository ships three workspace examples under `example/` — a browser extension, a Node.js automation demo and a web login demo.
Install the package
Add the core package to your project. The framework is published as `@eko-ai/eko`, with environment packages `@eko-ai/eko-nodejs`, `@eko-ai/eko-web` and `@eko-ai/eko-extension`.
pnpm install @eko-ai/ekoConfigure models and run a task
Define an `llms` map, pick your agents, and hand Eko a sentence. OpenAI-compatible providers such as Qwen or Doubao are configured through `provider: "openai"` plus a `baseURL`.
const llms: LLMs = {
default: {
provider: "anthropic",
model: "claude-sonnet-4-5-20250929",
apiKey: "your-api-key"
},
qwen: {
provider: "openai",
model: "qwen-plus",
apiKey: "your-qwen-api-key",
config: {
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
}
}
};
let agents: Agent[] = [new BrowserAgent(), new FileAgent()];
let eko = new Eko({ llms, agents });
let result = await eko.run("Search for the latest news about Musk, summarize and save to the desktop as Musk.md");Keep API keys out of the browser
The project flags this as a security warning: never put API keys in browser or front-end code, since it exposes your credentials. In web environments, route requests through a backend API proxy configured via `baseURL` and request headers.
Run the Node.js example
From the repository root, install and build the core packages first, then run the Playwright-driven automation demo with at least one model key set.
pnpm install
pnpm build
cd example/nodejs
pnpm install
pnpm playwright install # first time only, installs browsers
pnpm run build
OPENAI_API_KEY=... ANTHROPIC_API_KEY=... pnpm run startOr load it as a browser extension
Build the extension example, then load the generated `dist` directory through Chrome's developer mode. Configure your API key in the extension options before running a task.
cd example/extension
pnpm install
pnpm run build
# chrome://extensions → Developer Mode → Load unpacked → select dist/Commands and code are distilled from the project's own documentation — always check the official repo for the latest.
When to use it
- Browser automation and web scraping driven by a natural-language instruction rather than a hand-written script
- Shipping an agent inside a Chrome extension, where a Python framework cannot run
- Workflows whose independent steps should run in parallel, with the framework resolving the dependency graph
- Long-running automation that a person needs to pause, inspect and resume rather than watch run to completion
How Eko compares
Eko alongside other open-source agent frameworks & builders tools AI/TLDR tracks, ranked by GitHub stars.
| Tool | Stars | What it does |
|---|---|---|
| DeepSeek Harness | ★ 229k | DeepSeek AI's open-source agent harness (dsh), built on Cordis, where models, tools, skills, sessions, sandboxes, storage and the UI are all plugins composed through profiles. |
| AutoGPT | ★ 187k | One of the earliest autonomous agent projects, now a platform for building and running agents from reusable blocks and workflows. |
| DeerFlow | ★ 82.6k | ByteDance's open-source super agent harness built on LangGraph: skills, sub-agents, sandboxes, a filesystem and long-term memory for long-horizon research, coding and content tasks. |
| nanobot | ★ 48.3k | Lightweight self-hosted personal AI agent framework in Python, with a WebUI, terminal and chat-app channels, tools, long-term memory, MCP and scheduled automations. |
| Agno | ★ 42.2k | A fast Python framework (formerly Phidata) for building agents with memory, tools, and multimodal inputs, plus a runtime for deploying them in production. |
| LangGraph | ★ 41.9k | A library from the LangChain team for building stateful, graph-based agent workflows with explicit control over steps, memory, and human-in-the-loop checkpoints. |
| AgentGPT | ★ 36.3k | AgentGPT lets you name a custom AI, give it a goal, and watch it plan tasks, run them, and learn from the results, all from a web browser. |
| Eko | ★ 5k | JavaScript agent framework that turns one sentence into a multi-step workflow, in Node.js or the browser |