Robota is a composable TypeScript library collection for building AI agents — strict types,
multi-provider, tool calling, and an extensible plugin/event architecture. You assemble agents
from neutral building blocks; @robota-sdk/agent-cli (an AI coding assistant) is a reference
app built from these same libraries, not the product itself.
Evaluating with an AI agent? Start at
llms.txt— the consumer map (identity, minimal package set, capability matrix, behavior contracts).
Where this is going:
VISION.md— Robota builds Robota. The goal is a general development agent capable enough to build even Robota; developing the Robota repo is the validation benchmark (the hardest dogfood), not a Robota-dedicated tool. The capability roadmap lives in.agents/backlog/SELFHOST-*.
The minimal set is three packages: agent-core + agent-provider + agent-tools.
import { Robota } from '@robota-sdk/agent-core';
import { AnthropicProvider } from '@robota-sdk/agent-provider-anthropic';
const agent = new Robota({
name: 'MyAgent',
aiProviders: [new AnthropicProvider({ apiKey: process.env.ANTHROPIC_API_KEY })],
defaultModel: {
provider: 'anthropic',
model: 'claude-sonnet-4-6',
},
systemMessage: 'You are a helpful assistant.',
});
const response = await agent.run('Hello!');Any OpenAI-compatible endpoint works too — AI gateways, Azure, vLLM, local servers — via the
OpenAI provider's baseURL (see the quickstart's gateway section).
agent-framework assembles CLI tools, permissions, and config/context loading on top:
import { createQuery } from '@robota-sdk/agent-framework';
import { AnthropicProvider } from '@robota-sdk/agent-provider-anthropic';
const query = createQuery({
provider: new AnthropicProvider({ apiKey: process.env.ANTHROPIC_API_KEY }),
});
const response = await query('List all TypeScript files in src/');# Try the reference product built from these libraries (no install needed)
npx @robota-sdk/agent-cli
# Or install globally
npm install -g @robota-sdk/agent-cli
robotaNo Node.js? Install the standalone binary (macOS / Linux / Windows — nothing else required):
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/woojubb/robota/main/scripts/install.sh | bash# Windows PowerShell
irm https://raw.githubusercontent.com/woojubb/robota/main/scripts/install.ps1 | iexThe installer detects your OS/CPU, downloads the matching release binary, checksum-verifies it, and puts robota
on your PATH. Pin a version with ROBOTA_VERSION=v3.0.0-beta.79. Binaries are unsigned — macOS/Windows may warn.
Beta: Robota is currently
3.0.0-beta. Core features are stable but APIs may change before 1.0. See CHANGELOG.md for upgrade notes.
macOS users: Korean/CJK IME input may crash macOS Terminal.app. Use iTerm2 instead. This is a known Ink + Terminal.app issue shared with Claude Code.
Libraries below, products on top. Everything under packages/ is universal and neutral; apps and
the reference CLI are opinionated assemblies OF the libraries.
agent-cli ← Reference product: terminal AI coding assistant
agent-transport-{tui,http,ws,mcp} ← Standalone transports; agent-transport = lean core
↓
agent-framework ← Assembly layer: InteractiveSession, createQuery(), config/context loading
↓
agent-session ← Session lifecycle: permissions, hooks, compaction
agent-tools ← Tool infrastructure + 9 built-in tools
agent-provider ← Protocol clients (sub-paths: /anthropic, /openai, /gemini, …)
agent-plugin ← 8 consolidated lifecycle plugins
↓
agent-core ← Foundation: Robota engine, abstractions, plugin contracts
Start here (embedding) — the minimal set:
| Package | Description |
|---|---|
@robota-sdk/agent-core |
Robota engine: run/runStream, history, structured output, plugins |
@robota-sdk/agent-provider-anthropic |
Anthropic provider client |
@robota-sdk/agent-provider-openai |
OpenAI provider client |
@robota-sdk/agent-provider-openai-compatible |
OpenAI-compatible clients (DeepSeek, Qwen, Gemma) |
@robota-sdk/agent-provider-gemini |
Gemini / Google provider client |
@robota-sdk/agent-provider-bytedance |
ByteDance media/video provider client |
@robota-sdk/agent-tools |
Tool registry, zod-validated function tools, 9 built-in tools |
App assembly — add when you need sessions, permissions, or plugins:
| Package | Description |
|---|---|
@robota-sdk/agent-framework |
Assembly layer with config/context loading and createQuery() |
@robota-sdk/agent-session |
Session with permissions, hooks, and compaction |
@robota-sdk/agent-plugin |
8 consolidated lifecycle plugins (logging, usage, limits, performance, webhook, …) |
@robota-sdk/agent-executor |
Execution engine for the agentic loop |
@robota-sdk/agent-subagent-runner |
Subagent dispatch runner |
@robota-sdk/agent-session-analytics |
Session log timing analysis |
@robota-sdk/agent-testing (internal, not published) |
Real-PTY E2E test harness |
Products & transports — the reference CLI and its interaction surfaces:
| Package | Description |
|---|---|
@robota-sdk/agent-cli |
Reference product: interactive terminal AI coding assistant. Self-contained bundle; includes the private DAG/workflow subsystem surfaced as /workflows create "<natural language>" (authors a workflow, runs it, saves it to .workflows/<name>.json) |
@robota-sdk/agent-command |
Slash command modules (/agent, /help, /provider, /preset, /schedule, …) |
@robota-sdk/agent-preset |
Named agent profiles (preset system) |
@robota-sdk/agent-interface-transport |
Transport type contracts (zero deps) |
@robota-sdk/agent-interface-tui |
TUI interaction type contracts (zero deps) |
@robota-sdk/agent-transport |
Lean transport core (/headless, /testing, /programmatic) |
@robota-sdk/agent-transport-tui |
TUI transport (Ink/React) |
@robota-sdk/agent-transport-http |
HTTP/REST transport |
@robota-sdk/agent-transport-ws |
WebSocket transport |
@robota-sdk/agent-transport-mcp |
MCP transport |
Full documentation at robota.io
This repository owns the Robota agent SDK, providers, transports, the reference CLI, and related apps.
It also hosts the DAG / workflow subsystem (packages/dag-*, packages/agent-command-workflows):
this is a private, unpublished line — none of these packages are released to npm on their own.
Instead, the whole subsystem is bundled into @robota-sdk/agent-cli (INFRA-028: agent-cli
publishes as a self-contained bundle) and surfaced to users through the /workflows command. It is
developed here alongside the agent libraries but is not a separately published @robota-sdk/dag-* set.
pnpm install
pnpm build
pnpm testNode.js 22+ required. See Development Guide for details.
Robota is dual-licensed under the GNU AGPL-3.0 or a commercial license. See LICENSING.md.