Skip to content

woojubb/robota

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3,879 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Robota — Composable AI Agent Libraries

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

Quick Start — Embed the Library

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

Higher-level assembly — createQuery

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/');

Reference app — the CLI coding assistant

# 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
robota

No 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 | iex

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

Robota CLI

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.

Architecture

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

Packages

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

Documentation

Full documentation at robota.io

Repository Scope

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.

Development

pnpm install
pnpm build
pnpm test

Node.js 22+ required. See Development Guide for details.

License

Robota is dual-licensed under the GNU AGPL-3.0 or a commercial license. See LICENSING.md.

About

TypeScript framework for building AI agents — multi-provider (Anthropic, OpenAI, Google), tool calling, permissions, hooks, streaming, and CLI coding assistant

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages