{"id":34497406,"url":"https://github.com/woojubb/robota","last_synced_at":"2026-07-13T17:00:41.254Z","repository":{"id":294018546,"uuid":"985758352","full_name":"woojubb/robota","owner":"woojubb","description":"TypeScript framework for building AI agents — multi-provider (Anthropic, OpenAI, Google), tool calling, permissions, hooks, streaming, and CLI coding assistant","archived":false,"fork":false,"pushed_at":"2026-07-10T18:24:43.000Z","size":40422,"stargazers_count":19,"open_issues_count":3,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-07-10T19:12:12.987Z","etag":null,"topics":["agent","agent-workflow","agentic-ai","ai","ai-agent","anthropic","claude","cli","function-calling","gemini","llm","openai","sdk","tool-calling","typescript"],"latest_commit_sha":null,"homepage":"https://robota.io","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/woojubb.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-05-18T13:19:51.000Z","updated_at":"2026-07-10T18:26:03.000Z","dependencies_parsed_at":"2025-06-24T17:26:38.757Z","dependency_job_id":"c1984acd-0673-494e-a971-a4b0fe1838b0","html_url":"https://github.com/woojubb/robota","commit_stats":null,"previous_names":["woojubb/robota"],"tags_count":75,"template":false,"template_full_name":null,"purl":"pkg:github/woojubb/robota","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woojubb%2Frobota","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woojubb%2Frobota/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woojubb%2Frobota/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woojubb%2Frobota/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/woojubb","download_url":"https://codeload.github.com/woojubb/robota/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woojubb%2Frobota/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35429403,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-13T02:00:06.543Z","response_time":119,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","agent-workflow","agentic-ai","ai","ai-agent","anthropic","claude","cli","function-calling","gemini","llm","openai","sdk","tool-calling","typescript"],"created_at":"2025-12-24T01:30:59.497Z","updated_at":"2026-07-13T17:00:41.248Z","avatar_url":"https://github.com/woojubb.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Robota — Composable AI Agent Libraries\n\nRobota is a **composable TypeScript library collection for building AI agents** — strict types,\nmulti-provider, tool calling, and an extensible plugin/event architecture. You assemble agents\nfrom neutral building blocks; `@robota-sdk/agent-cli` (an AI coding assistant) is a **reference\napp built from these same libraries**, not the product itself.\n\n\u003e Evaluating with an AI agent? Start at [`llms.txt`](./llms.txt) — the consumer map (identity,\n\u003e minimal package set, capability matrix, behavior contracts).\n\n## Quick Start — Embed the Library\n\nThe minimal set is three packages: `agent-core` + `agent-provider` + `agent-tools`.\n\n```typescript\nimport { Robota } from '@robota-sdk/agent-core';\nimport { AnthropicProvider } from '@robota-sdk/agent-provider-anthropic';\n\nconst agent = new Robota({\n  name: 'MyAgent',\n  aiProviders: [new AnthropicProvider({ apiKey: process.env.ANTHROPIC_API_KEY })],\n  defaultModel: {\n    provider: 'anthropic',\n    model: 'claude-sonnet-4-6',\n  },\n  systemMessage: 'You are a helpful assistant.',\n});\n\nconst response = await agent.run('Hello!');\n```\n\nAny OpenAI-compatible endpoint works too — AI gateways, Azure, vLLM, local servers — via the\nOpenAI provider's `baseURL` (see the [quickstart's gateway section](./content/quickstart.md)).\n\n### Higher-level assembly — `createQuery`\n\n`agent-framework` assembles CLI tools, permissions, and config/context loading on top:\n\n```typescript\nimport { createQuery } from '@robota-sdk/agent-framework';\nimport { AnthropicProvider } from '@robota-sdk/agent-provider-anthropic';\n\nconst query = createQuery({\n  provider: new AnthropicProvider({ apiKey: process.env.ANTHROPIC_API_KEY }),\n});\nconst response = await query('List all TypeScript files in src/');\n```\n\n### Reference app — the CLI coding assistant\n\n```bash\n# Try the reference product built from these libraries (no install needed)\nnpx @robota-sdk/agent-cli\n\n# Or install globally\nnpm install -g @robota-sdk/agent-cli\nrobota\n```\n\n**No Node.js? Install the standalone binary** (macOS / Linux / Windows — nothing else required):\n\n```bash\n# macOS / Linux\ncurl -fsSL https://raw.githubusercontent.com/woojubb/robota/main/scripts/install.sh | bash\n```\n\n```powershell\n# Windows PowerShell\nirm https://raw.githubusercontent.com/woojubb/robota/main/scripts/install.ps1 | iex\n```\n\nThe installer detects your OS/CPU, downloads the matching release binary, checksum-verifies it, and puts `robota`\non your PATH. Pin a version with `ROBOTA_VERSION=v3.0.0-beta.79`. Binaries are unsigned — macOS/Windows may warn.\n\n![Robota CLI](https://raw.githubusercontent.com/woojubb/robota/main/content/images/cli-demo.png)\n\n\u003e **Beta**: Robota is currently `3.0.0-beta`. Core features are stable but APIs may change before 1.0. See [CHANGELOG.md](./CHANGELOG.md) for upgrade notes.\n\n\u003e **macOS users**: Korean/CJK IME input may crash macOS Terminal.app. Use **[iTerm2](https://iterm2.com/)** instead. This is a known Ink + Terminal.app issue shared with Claude Code.\n\n## Architecture\n\nLibraries below, products on top. Everything under `packages/` is universal and neutral; apps and\nthe reference CLI are opinionated assemblies OF the libraries.\n\n```\nagent-cli                       ← Reference product: terminal AI coding assistant\nagent-transport-{tui,http,ws,mcp} ← Standalone transports; agent-transport = lean core\n  ↓\nagent-framework        ← Assembly layer: InteractiveSession, createQuery(), config/context loading\n  ↓\nagent-session          ← Session lifecycle: permissions, hooks, compaction\nagent-tools            ← Tool infrastructure + 9 built-in tools\nagent-provider         ← Protocol clients (sub-paths: /anthropic, /openai, /gemini, …)\nagent-plugin           ← 8 consolidated lifecycle plugins\n  ↓\nagent-core             ← Foundation: Robota engine, abstractions, plugin contracts\n```\n\n## Packages\n\n**Start here (embedding)** — the minimal set:\n\n| Package                                                                                                                      | Description                                                         |\n| ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |\n| [`@robota-sdk/agent-core`](https://www.npmjs.com/package/@robota-sdk/agent-core)                                             | `Robota` engine: run/runStream, history, structured output, plugins |\n| [`@robota-sdk/agent-provider-anthropic`](https://www.npmjs.com/package/@robota-sdk/agent-provider-anthropic)                 | Anthropic provider client                                           |\n| [`@robota-sdk/agent-provider-openai`](https://www.npmjs.com/package/@robota-sdk/agent-provider-openai)                       | OpenAI provider client                                              |\n| [`@robota-sdk/agent-provider-openai-compatible`](https://www.npmjs.com/package/@robota-sdk/agent-provider-openai-compatible) | OpenAI-compatible clients (DeepSeek, Qwen, Gemma)                   |\n| [`@robota-sdk/agent-provider-gemini`](https://www.npmjs.com/package/@robota-sdk/agent-provider-gemini)                       | Gemini / Google provider client                                     |\n| [`@robota-sdk/agent-provider-bytedance`](https://www.npmjs.com/package/@robota-sdk/agent-provider-bytedance)                 | ByteDance media/video provider client                               |\n| [`@robota-sdk/agent-tools`](https://www.npmjs.com/package/@robota-sdk/agent-tools)                                           | Tool registry, zod-validated function tools, 9 built-in tools       |\n\n**App assembly** — add when you need sessions, permissions, or plugins:\n\n| Package                                                                                                    | Description                                                                        |\n| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |\n| [`@robota-sdk/agent-framework`](https://www.npmjs.com/package/@robota-sdk/agent-framework)                 | Assembly layer with config/context loading and `createQuery()`                     |\n| [`@robota-sdk/agent-session`](https://www.npmjs.com/package/@robota-sdk/agent-session)                     | Session with permissions, hooks, and compaction                                    |\n| [`@robota-sdk/agent-plugin`](https://www.npmjs.com/package/@robota-sdk/agent-plugin)                       | 8 consolidated lifecycle plugins (logging, usage, limits, performance, webhook, …) |\n| [`@robota-sdk/agent-executor`](https://www.npmjs.com/package/@robota-sdk/agent-executor)                   | Execution engine for the agentic loop                                              |\n| [`@robota-sdk/agent-subagent-runner`](https://www.npmjs.com/package/@robota-sdk/agent-subagent-runner)     | Subagent dispatch runner                                                           |\n| [`@robota-sdk/agent-session-analytics`](https://www.npmjs.com/package/@robota-sdk/agent-session-analytics) | Session log timing analysis                                                        |\n| `@robota-sdk/agent-testing` _(internal, not published)_                                                    | Real-PTY E2E test harness                                                          |\n\n**Products \u0026 transports** — the reference CLI and its interaction surfaces:\n\n| Package                                                                                                        | Description                                                                                                                                                                                                                                              |\n| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| [`@robota-sdk/agent-cli`](https://www.npmjs.com/package/@robota-sdk/agent-cli)                                 | Reference product: interactive terminal AI coding assistant. Self-contained bundle; includes the private DAG/workflow subsystem surfaced as `/workflows create \"\u003cnatural language\u003e\"` (authors a workflow, runs it, saves it to `.workflows/\u003cname\u003e.json`) |\n| [`@robota-sdk/agent-command`](https://www.npmjs.com/package/@robota-sdk/agent-command)                         | Slash command modules (`/agent`, `/help`, `/provider`, `/preset`, `/schedule`, …)                                                                                                                                                                        |\n| [`@robota-sdk/agent-preset`](https://www.npmjs.com/package/@robota-sdk/agent-preset)                           | Named agent profiles (preset system)                                                                                                                                                                                                                     |\n| [`@robota-sdk/agent-interface-transport`](https://www.npmjs.com/package/@robota-sdk/agent-interface-transport) | Transport type contracts (zero deps)                                                                                                                                                                                                                     |\n| [`@robota-sdk/agent-interface-tui`](https://www.npmjs.com/package/@robota-sdk/agent-interface-tui)             | TUI interaction type contracts (zero deps)                                                                                                                                                                                                               |\n| [`@robota-sdk/agent-transport`](https://www.npmjs.com/package/@robota-sdk/agent-transport)                     | Lean transport core (`/headless`, `/testing`, `/programmatic`)                                                                                                                                                                                           |\n| [`@robota-sdk/agent-transport-tui`](https://www.npmjs.com/package/@robota-sdk/agent-transport-tui)             | TUI transport (Ink/React)                                                                                                                                                                                                                                |\n| [`@robota-sdk/agent-transport-http`](https://www.npmjs.com/package/@robota-sdk/agent-transport-http)           | HTTP/REST transport                                                                                                                                                                                                                                      |\n| [`@robota-sdk/agent-transport-ws`](https://www.npmjs.com/package/@robota-sdk/agent-transport-ws)               | WebSocket transport                                                                                                                                                                                                                                      |\n| [`@robota-sdk/agent-transport-mcp`](https://www.npmjs.com/package/@robota-sdk/agent-transport-mcp)             | MCP transport                                                                                                                                                                                                                                            |\n\n## Documentation\n\nFull documentation at **[robota.io](https://robota.io)**\n\n- [Getting Started](https://robota.io/getting-started/)\n- [Building Agents](https://robota.io/guide/building-agents.html)\n- [SDK Usage](https://robota.io/guide/sdk.html)\n- [CLI Reference](https://robota.io/guide/cli.html)\n- [Examples](https://robota.io/examples/)\n\n## Repository Scope\n\nThis repository owns the Robota agent SDK, providers, transports, the reference CLI, and related apps.\n\nIt also hosts the **DAG / workflow subsystem** (`packages/dag-*`, `packages/agent-command-workflows`):\nthis is a **private, unpublished** line — none of these packages are released to npm on their own.\nInstead, the whole subsystem is **bundled into `@robota-sdk/agent-cli`** (INFRA-028: agent-cli\npublishes as a self-contained bundle) and surfaced to users through the `/workflows` command. It is\ndeveloped here alongside the agent libraries but is not a separately published `@robota-sdk/dag-*` set.\n\n## Development\n\n```bash\npnpm install\npnpm build\npnpm test\n```\n\nNode.js 22+ required. See [Development Guide](https://robota.io/development/) for details.\n\n## License\n\nRobota is dual-licensed under the [GNU AGPL-3.0](LICENSE) or a [commercial license](COMMERCIAL.md). See [LICENSING.md](LICENSING.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoojubb%2Frobota","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwoojubb%2Frobota","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoojubb%2Frobota/lists"}